在Centos8环境中配置PHP出现如上报错:
 
原因是没有安装配置oniguruma导致的 
解决方法如下:
1、获取源码,2.并解压

wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz
tar -zxf oniguruma-6.9.4.tar.gz
cd oniguruma-6.9.4
备用下载: http://down.24kplus.com/linux/oniguruma/oniguruma-6.9.4.tar.gz

3、编译安装

./autogen.sh && ./configure --prefix=/usr
make && make install
如果是Centos7环境中的话:
 解决方法如下:

yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-6.7.0-1.el7.x86_64.rpm
yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-devel-6.7.0-1.el7.x86_64.rpm
备用下载:

oniguruma:http://down.24kplus.com/linux/oniguruma/oniguruma-6.7.0-1.el7.x86_64.rpm
oniguruma-devel:http://down.24kplus.com/linux/oniguruma/oniguruma-devel-6.7.0-1.el7.x86_64.rpm
————————————————
版权声明:本文为CSDN博主「薄凉小伙」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Kangshuo2471781030/article/details/107241779



python excelsearchKeyList.py k.txt
sys.argv[0] = excelsearchKeyList.py
sys.argv[1] = k.txt

二)判断字符为空:


python excelsearchKeyList.py  k.txt
原创视频
line is null
line is null



三)判断是否传入新的参数:


来自:https://blog.csdn.net/index20001/article/details/74294945#:~:text=Python%E7%A8%8B%E5%BA%8F%E6%9C%89%E4%B8%A4%E7%A7%8D,%E8%A7%A3%E9%87%8A%E5%99%A8%E5%B0%86%E4%BC%9A%E9%80%80%E5%87%BA%E3%80%82
问题:


rpm -qa *langpack*

cat /etc/locale.conf
LC_ALL="zh_CN.utf8"
LC_CTYPE="zh_CN.utf8"
LANG="zh_CN.utf8"

解决办法:
yum install glibc-langpack-zh -y
一、现象


Linux关机或重启时提示A stop job is running for ..


导致关机慢。


二、解决方法


编辑/etc/systemd/system.conf


修改下面两个变量为:


DefaultTimeoutStartSec=10s
DefaultTimeoutStopSec=10s
执行:systemctl daemon-reload



来自:https://blog.csdn.net/penge199761/article/details/79136826
质数定义:只有1和它本身两个约数,除此之外再没有其它约数。

示例1:

make zs
cc     zs.c   -o zs

#./zs
质数

示例2:


for循环介入:


引入scanf:



#./zs
5
质数
#./zs
6
合数

打印出约数:



#./zs
5
质数
#./zs
6
2 3 合数

更快一点,引入break:



#./zs
6
合数
#./zs
1000
合数



任一大于2的偶数都可以写成两个质数之和,采用部分穷举法,可以从1-100,1-10000啥的,但无法穷举所有:


#./zs
100
4=2+2
6=3+3
8=3+5
10=3+7
12=5+7
14=3+11
16=3+13
18=5+13
20=3+17
22=3+19
24=5+19
26=3+23
28=5+23
30=7+23
32=3+29
34=3+31
36=5+31
...
背景:有一篇朋友圈说是一个k8s里面Server的Pod销毁上报Zookeeper出现IP地址连接还是原来的,用到了zk的watcher,理论上不应该这样,于是查来查去,其大体意思就是说用了Go的多进程,有一个进程去读取配置了,因为配置还是老的,而用到了Go的多进程,于是文末那代码,我看了下,简单,但不明白,于是顺藤摸瓜学习一下这个rsync的原理。


——————————
#tree  -L 2 .|grep go
├── loop.go
├── pipe.go
├── waitgrouppointer.go
└── wg.go


#cat loop.go
package main

import (
    "fmt"
    //"time"
)

func main(){
    for i := 0; i < 100 ; i++{
        go fmt.Println(i)
    }
    //time.Sleep(time.Second)
}

这个说是运行太快,子进程没输出主进程就退了,啥也不输出。



#cat pipe.go
package main

import (
    "fmt"
    //"time"
)
func main() {
    c := make(chan bool, 100)
    for i := 0; i < 100; i++ {
        go func(i int) {
            fmt.Println(i)
            c <- true
        }(i)
    }

    for i := 0; i < 100; i++ {
        <-c
    }
}

这个说是管道要是上万,会耗尽系统管道资源。


#cat waitgroup.go      
package main

import (
    "fmt"
    "sync"
    //"time"
)
func main() {
    wg := sync.WaitGroup{}
    wg.Add(100)
    for i := 0; i < 100; i++ {
        go func(i int) {
            fmt.Println(i)
            wg.Done()
        }(i)
    }
    wg.Wait()
}


这个说是挺好的,因为它用到了原子加减法,这里好像C语言也有类似的函数,



再就是说它是用来阻塞方进程的,WaitGroup 对象内部有一个计数器,最初从0开始,它有三个方法:Add(), Done(), Wait() 用来控制计数器的数量。Add(n) 把计数器设置为n ,Done() 每次把计数器-1 ,wait() 会阻塞代码的运行,直到计数器地值减为0。

这里首先把wg 计数设置为100, 每个for循环运行完毕都把计数器减一,主函数中使用Wait() 一直阻塞,直到wg为零——也就是所有的100个for循环都运行完毕。相对于使用管道来说,WaitGroup 轻巧了许多。


最后,如果要搞裂成函数,得用引用传入,指针变量:
WaitGroup对象不是一个引用类型
WaitGroup对象不是一个引用类型,在通过函数传值的时候需要使用地址:

#cat waitgrouppointer.go
package main

import (
    "fmt"
    "sync"
    //"time"
)
func main() {
    wg := sync.WaitGroup{}
    wg.Add(100)
    for i := 0; i < 100; i++ {
        go f(i, &wg)
    }
    wg.Wait()
}

// 一定要通过指针传值,不然进程会进入死锁状态
func f(i int, wg *sync.WaitGroup) {
    fmt.Println(i)
    wg.Done()
}


以上来自:https://blog.csdn.net/u013474436/article/details/88749749

溯源来自:https://mp.weixin.qq.com/s/s9G6yDqfeFepbKT6DJASng



#cat wg.go
package main


import (
  "fmt"
  "sync"
)


func main() {
  ok := true
  for i := 0; i <1000; i ++ {
    var arr []int
    wg := sync.WaitGroup{}


    for j := 0; j <2; j ++ {
      wg.Add(1)


      go func() {
        defer wg.Done()
        arr = append(arr, i)
      }()
    }
    wg.Wait()


    if len(arr) < 2 {
      fmt.Printf("error:%d \n", i)
      ok = false
      break
    }
  }


  if ok {
    fmt.Println("ok")
  }
}

阅读全文
Server:echoServer.go


Client:echoClient.go


jackXiang@localhost  ~/golearning  ./echoClient
jack
read from socket:
jack
xiang
read from socket:
xiang

Q:果然Ok,两个问题探讨下:
1)        ip4 := net.ParseIP(ADDR).To4()
        sa := &syscall.SockaddrInet4{Port: PORT}
        copy(sa.Addr[:], ip4)  #这个sa.Addr[:] 冒号啥写法呢?

2)for { 这里面是epoll 吗?}

A:
1.
copy(sa.Addr[:], ip4)  #这个sa.Addr[:] 冒号啥写法呢?

sa.Addr 是一个数组,
sa.Addr[:] 将这个数组临时转为切片,底层数组指向sa.Addr数组
方便copy进行切片复制

2. 就是个for{}死循环,防止代码往下执行

来自:
https://mp.weixin.qq.com/s/dRADQ5kUCT80dX7oEAAXyA
https://mp.weixin.qq.com/s/kFHw73w_IIqjKeicesCpZw
背景:mac 的 Finder 中文件夹的显示选项只在当前目录生效,每次新目录都得重新选择显示选项,强迫症表示非常不爽,下面是如何一次性更改所有文件夹显示选项的方法。

打开 Finder,使劲点击 ⌘ + ↑ 数次,直到没反应可查看到磁盘的图标为止。
进入磁盘,右键空白处打开 查看显示选项 ,在显示选项内调整好自己想要的效果后点击下方 用作默认 。
打开终端界面输入以下命令,回车后根据提示输入你的账户密码再回车等待即可。

sudo find / -name .DS_Store -exec rm {} +
完成后,点击菜单栏左上角的小苹果图标选择 强制退出 ,在菜单内选择 Finder 后点击 重新开启 完成。

链接:https://juejin.cn/post/6844903688939667463
MacOS升级到新版本11 Big Sur以后,PD16会无法打开,运行虚拟机后系统会自动crash 重启。原因是使用的hypervisor有了变化。解决方法是需要更改虚拟机类型,由默认的Parallels改为Apple,修改的方法成功如下:
https://blog.csdn.net/weixin_51582445/article/details/112762446

上面实践摘录:
Parallels Desktop 16 在最新的macOS Big Sur 11.0系统上无法联网,并且无法连接USB设备。之前解决联网的办法是在终端通过命令启动 parallels desktop 的方法解决联网的问题,但是相对比较麻烦,而且还是无法解决Parallels Desktop 16 不能连接USB设备的问题。
为大家提供一个更好的方法解决 Parallels Desktop 16 不能联网与连接 USB 设备的问题。详细操作步骤如下:
1.鼠标右键点击访达图标,选择前往文件夹或者快捷键shift+command+G

2.输入以下路径:
/Library/Preferences/Parallels

3.使用编辑器(如BBEdit、 Sublime Text )
打开「network.desktop.xml」
找到第5行的-1 (也可能是 1 ),修改为 0 保存并退出,保存时会提示输入密码,输入系统密码确定即可;
同理,打开「dispatcher.desktop.xml」,如图:
按 command + F 查找0,修改为1保存并退出,保存时会提示输入密码,输入系统密码确定即可;
然后打开Parallels Desktop 16,可能会提示Parallels需要系统扩展 ,打开 系统偏好设置 ,进入 安全性与隐私 ,如图:
点击左下角的锁图标解锁,在点击下方【 来自开发者“Parallels International GmbH”的系统软件已被阻止载入。 】右侧的 允许 按钮,提示需要重启,点击确定重启电脑,再打开Parallels Desktop 16进入Windows系统即可正常上网和连接USB设备了。
背景:[实践OK]Macbook 升级到catalina 后的一些/data目录不见了等问题
:https://jackxiang.com/post/10397/,现在升级后,这个玩法被苹果给屏蔽更深了,怎么办?有人做这个,我不太敢接着搞下去了:
Big Sur 新增了 Signed System Volume 机制,对系统所在的 APFS Volume 增加了更多的保护

Reboot into recovery mode and run:重启mac,按住Command+R,等到系统进入安全模式。
命令 csrutil disable  ,sur还得加上这个:
csrutil authenticated-root disable

Reboot back into MacOS #正常重启进入系统
Find your root mount's device - run mount and chop off the last s, e.g. if your root is /dev/disk1s5s1, you'll mount /dev/disk1s5
Create a new directory, for example ~/mount
Run:sudo mount -o nobrowse -t apfs /dev/disk1s5 ~/mount  ,我这想:sudo mount -o nobrowse -t apfs /dev/disk1s5 /var/data

/dev/disk1s5s1 :https://iosre.com/t/big-sur/18051

升级到Big Sur后,以写模式挂载root报错(SIP已disable)

sudo mount -uw /

mount_apfs: volume could not be mounted: Permission denied

mount: / failed with 66

Big Sur 新增了 Signed System Volume 机制,对系统所在的 APFS Volume 增加了更多的保护

Reboot into recovery mode and run:
csrutil authenticated-root disable

Reboot back into MacOS
Find your root mount's device - run mount and chop off the last s, e.g. if your root is /dev/disk1s5s1, you'll mount /dev/disk1s5

Create a new directory, for example ~/mount
Run:sudo mount -o nobrowse -t apfs /dev/disk1s5 ~/mount

Modify the files under the mounted directory

Run:sudo bless --folder MOUNT_PATH/System/Library/CoreServices --bootefi --create-snapshot

Reboot your system, and the changes will take place

缺点:

修改后,无法再启用SSV机制,但是可以启用SIP机制,因为系统已修改,导致签名不一致,若启用SSV,则校验失败,报错禁止启动。

csrutil enable

csrutil authenticated-root disable



Big Sur 引入的 Signed System Volume 机制会给 System APFS Volume 的每个文件 /文件夹都设置一份 hash,在 bootloader 启动后,加载内核前会进行完整性校验,校验不通过的话会拒绝引导,并提示用户重装 macOS 。使用 mount 查看挂载点会发现 /多了个 sealed 标志。系统默认会从 SSV snapshot 启动,对用户无感知。

Big Sur’s Signed System Volume: added security protection


来自:https://www.quwenqing.com/archives/1597.html
背景:Chrome您的连接不是私密连接解决办法--一个比较实用的技巧分享,有的勾选确认,发现没有勾选按钮。怎么办?
方法:解决:就是在当前页面用键盘输入  thisisunsafe  ,不是在地址栏输入,就直接敲键盘就行了,页面即会自动刷新进入网页。

阅读全文
Mac / OS X 如何快速显示桌面:F4
Mac苹果电脑怎么设置Launchpad快捷键?F11
=============================
Mac / OS X 如何快速显示桌面(Desktop)?
https://www.zhihu.com/question/21448506

  【收藏】Mac苹果电脑怎么设置Launchpad快捷键?
来自:https://www.zhihu.com/question/21448506
分页: 1/337 第一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 下页 最后页 [ 显示模式: 摘要 | 列表 ]