在secureCRT软件上运行一些简单的python脚本
Unix/LinuxC技术 jackxiang 2019-1-3 13:56
背影:买了个Mac本,无法用.vbs脚本,输入个密码啥的更快一些。
xiangdongAutoEnterPasswd*.py
secureCRT支持运行.js和.vbs以及.py格式的脚本,无奈mac上识别前两个格式的脚本只能写一写python脚本,
举个简单的例子,利用脚本直接ssh连接一台机器,
在View菜单中勾选Button Bar让这个菜单在下方显示出来,
在下方的Default右方右键出现一个菜单点击New Button按钮,在显示框的Function一栏选择Run Script中间选择编写好的.py文件
.py文件的内容大致如下:
另外一个:
来自:https://blog.csdn.net/medivhq/article/details/52119572
xiangdongAutoEnterPasswd*.py
secureCRT支持运行.js和.vbs以及.py格式的脚本,无奈mac上识别前两个格式的脚本只能写一写python脚本,
举个简单的例子,利用脚本直接ssh连接一台机器,
在View菜单中勾选Button Bar让这个菜单在下方显示出来,
在下方的Default右方右键出现一个菜单点击New Button按钮,在显示框的Function一栏选择Run Script中间选择编写好的.py文件
.py文件的内容大致如下:
另外一个:
来自:https://blog.csdn.net/medivhq/article/details/52119572
[实践OK]Macbook下使用 git log、git diff 命令时出现 ESC[33 和 ESC[m 乱码的解决办法
Unix/LinuxC技术 jackxiang 2019-1-3 10:28
好不容易买个Mac,最近一段时间在使用 git log 和 git diff 命令的时候一直有乱码出现,具体表现为在行首出现 ESC[33,而在行尾出现 ESC[m,如下所示:
解决
经过搜索之后了解到,出现该问题的原因是 git 使用的默认分页程序是 less,而默认的直接运行 less 的话,会无法正确解析转义字符。但是如果以 -r 命令来运行 less 的话,就可以解决了。故解决办法就是将 git 的默认分页程序改为 “less -r” 来运行,如下:
git config --global core.pager "less -r" 后:
好了,买个Mac花了十年,用它得花一年。
Git log 和Git diff显示正常:
方向来自:https://blog.yongli1992.com/2015/08/14/git-log-diff-esc-garbled/
解决
经过搜索之后了解到,出现该问题的原因是 git 使用的默认分页程序是 less,而默认的直接运行 less 的话,会无法正确解析转义字符。但是如果以 -r 命令来运行 less 的话,就可以解决了。故解决办法就是将 git 的默认分页程序改为 “less -r” 来运行,如下:
git config --global core.pager "less -r" 后:
好了,买个Mac花了十年,用它得花一年。
Git log 和Git diff显示正常:
方向来自:https://blog.yongli1992.com/2015/08/14/git-log-diff-esc-garbled/
[实践OK]马哥Linux使用的系统ExTiX ,Installation of ExTiX to a 磁盘,不是U盘。Based on Debian/Ubuntu with Deepin/LXQt/KDE and kernel 4.20-rc4自带安装器,不用最新版本那么麻烦。
Unix/LinuxC技术 jackxiang 2018-12-30 21:38
装在台式机上,先在笔记本上用一个USB给Win上用软件UltraISO把extix-19.1-64bit-kde-kodi18-refracta-calamares-nvidia-1970mb-181228.iso给写入硬盘映像,开机启动BIOS设置从这个U盘启动,然后,再用一个U盘给把这个extix-19.1-64bit-kde-kodi18-refracta-calamares-nvidia-1970mb-181228.iso给拷贝进去,再插入到台式机上,这个ExTix会自动识别为/dev/sdc,用fdisk -l也能看到,于是把这台式机的那个磁盘/dev/sda给格式化:
mkfs.ext4 /dev/sda
cp extix-19.0-64bit-deepin-refracta-calamares-kodi18-1760mb-181208.iso /dev/sda
重启,设置BIOS从台式机磁盘启动,OK。但是空间没有500G和之前U盘一样大,怎么办?
https://blog.csdn.net/huanghai381/article/details/50033775
From:https://www.extix.se/?page_id=24
ExTiX - The Ultimate Linux System
Based on Debian/Ubuntu with Deepin/LXQt/KDE and kernel 4.20-rc4
Deepin: https://sourceforge.net/projects/extix/files/
https://cytranet.dl.sourceforge.net/project/extix/extix-19.0-64bit-deepin-refracta-calamares-kodi18-1760mb-181208.iso
mkfs.ext4 /dev/sda
cp extix-19.0-64bit-deepin-refracta-calamares-kodi18-1760mb-181208.iso /dev/sda
重启,设置BIOS从台式机磁盘启动,OK。但是空间没有500G和之前U盘一样大,怎么办?
https://blog.csdn.net/huanghai381/article/details/50033775
From:https://www.extix.se/?page_id=24
ExTiX - The Ultimate Linux System
Based on Debian/Ubuntu with Deepin/LXQt/KDE and kernel 4.20-rc4
Deepin: https://sourceforge.net/projects/extix/files/
https://cytranet.dl.sourceforge.net/project/extix/extix-19.0-64bit-deepin-refracta-calamares-kodi18-1760mb-181208.iso
[实践OK]统计redis中某类key的数量,代替keys指令
Cache与Store jackxiang 2018-12-29 15:44
./redis_keycount.sh 'SESS*'
processing....
SESS*
./redis_keycount.sh
SESS* count:21798578
ok!
来自:https://studygolang.com/articles/14275?fr=sidebar
[实践OK]centos安装php版本对应的扩展xdebug链接以及因Xdebug版本太高WinCacheGrind无法解析只得采用kcachegrind并安装用kcachegrind系统分析,后缀变为callgrind。支持swoole的Xdebug版本。
Php/Js/Shell/Go jackxiang 2018-12-25 14:45
支持swoole的Xdebug版本:https://github.com/mabu233/sdebug支持swoole的Xdebug扩展
MacBook下面需要自己编译:
https://tekkie.ro/computer-setup/how-to-install-kcachegrind-qcachegrind-on-mac-osx/
https://blog.josephscott.org/2013/07/03/qcachegrind-kcachegrind-on-mac-os-x/
xdebug是和PHP的版本对应起来的,这一步很重要,如下:
https://xdebug.org/wizard.php
centos安装php版本对应的扩展xdebug链接:
使用图形分析工具wincachedgrind分析生成的文件
下载地址:http://sourceforge.net/projects/wincachegrind/files/
centos安装php扩展xdebug安装以及用kcachegrind系统分析
Download:
https://phoenixnap.dl.sourceforge.net/project/precompiledbin/kcachegrind.zip
kali linux:
Install kcachegrind Using apt
Update apt database with apt using the following command.
sudo apt update
After updating apt database, We can install kcachegrind using apt by running the following command:
sudo apt -y install kcachegrind
来自:https://installati.one/kalilinux/kcachegrind/
百度网盘。
实践发现:
找开kcachegrind文件时要以它的后缀结尾,直接贴进去地址就成。
之前的后缀是cache,现在修改一下它这个后缀即可:
xdebug.profiler_output_name="cachegrind.out.%H.%u.%s"
修改为:
xdebug.profiler_output_name="callgrind.out.%H.%u.%s" #kcachegrind在Win下面只认这个前缀的才能打开分析,直接拖cachegrind.out*进去是打不开的。
解决kcachegrind在Win下面只认这个前缀的才能打开分析批量xdebug的文件重命名的办法:
shell下的文本替换,Shell字符串替换学习---武明瑶:https://jackxiang.com/post/9922/
mkdir -p /data/logs/xdebug
chown -R www /data/logs/xdebug
chmod -R 755 /data/logs/xdebug
打成RPM包的SPEC文件:
下载图形化工具kcachegrind在windows下的可执行版 下载地址http://sourceforge.net/projects/precompiledbin/files 用kcachegrind来看会更形象,注意需要修改从linux中执行的文件的php文件路径,这样就可以了sourcecode.
原文:https://blog.csdn.net/gdfjhc/article/details/84194948
MacBook下面需要自己编译:
https://tekkie.ro/computer-setup/how-to-install-kcachegrind-qcachegrind-on-mac-osx/
https://blog.josephscott.org/2013/07/03/qcachegrind-kcachegrind-on-mac-os-x/
xdebug是和PHP的版本对应起来的,这一步很重要,如下:
https://xdebug.org/wizard.php
centos安装php版本对应的扩展xdebug链接:
使用图形分析工具wincachedgrind分析生成的文件
下载地址:http://sourceforge.net/projects/wincachegrind/files/
centos安装php扩展xdebug安装以及用kcachegrind系统分析
Download:
https://phoenixnap.dl.sourceforge.net/project/precompiledbin/kcachegrind.zip
kali linux:
Install kcachegrind Using apt
Update apt database with apt using the following command.
sudo apt update
After updating apt database, We can install kcachegrind using apt by running the following command:
sudo apt -y install kcachegrind
来自:https://installati.one/kalilinux/kcachegrind/
百度网盘。
实践发现:
找开kcachegrind文件时要以它的后缀结尾,直接贴进去地址就成。
之前的后缀是cache,现在修改一下它这个后缀即可:
xdebug.profiler_output_name="cachegrind.out.%H.%u.%s"
修改为:
xdebug.profiler_output_name="callgrind.out.%H.%u.%s" #kcachegrind在Win下面只认这个前缀的才能打开分析,直接拖cachegrind.out*进去是打不开的。
解决kcachegrind在Win下面只认这个前缀的才能打开分析批量xdebug的文件重命名的办法:
shell下的文本替换,Shell字符串替换学习---武明瑶:https://jackxiang.com/post/9922/
mkdir -p /data/logs/xdebug
chown -R www /data/logs/xdebug
chmod -R 755 /data/logs/xdebug
打成RPM包的SPEC文件:
下载图形化工具kcachegrind在windows下的可执行版 下载地址http://sourceforge.net/projects/precompiledbin/files 用kcachegrind来看会更形象,注意需要修改从linux中执行的文件的php文件路径,这样就可以了sourcecode.
原文:https://blog.csdn.net/gdfjhc/article/details/84194948
[调试用到]利用Linux信号SIGUSR1调试嵌入式程序
Unix/LinuxC技术 jackxiang 2018-12-25 08:13
Linux嵌入式由于诸多的限制,调试方法有限,常常出现面对Bug束手无策的情况,现在介绍一种通过信号处理对Linux嵌入式应用程序进行调试的方法。
linux中一共有32种信号,在/usr/include/bits/signum.h 头文件中可以看到,具体如下:SIGHUP ;SIGINT ;SIGQUIT ;SIGILL ;SIGTRAP ;SIGABRT ;SIGIOT ;SIGBUS ;SIGFPE ;SIGKILL ;SIGUSR1 ;SIGSEGV ;SIGUSR2 ;SIGPIPE ;SIGALRM ;SIGTERM ;SIGSTKFLT ;SIGCLD ;SIGCHLD ;SIGCONT ;SIGSTOP ;SIGTSTP ;SIGTTIN ;SIGTTOU ;SIGURG ;SIGXCPU ;SIGXFSZ ;SIGVTALRM ;SIGPROF ;SIGWINCH ;SIGPOLL ;SIGIO ;SIGPWR ;SIGSYS ;SIGUNUSED
以上来自:https://blog.csdn.net/u010133805/article/details/53899667 ,他用的c++,改成c研究研究,如下:
看编号,用kill -l,SIGUSR1编号为10,如下所示:
#kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
其中SIGUSER1信号用户可以自己定义其处理行为,处理范例如下:
#make usr1
cc usr1.c -o usr1
./usr1
ps -ef|grep usr1
kill -s SIGUSR1 17331
sig_num=10
flag is true!
sig_num=10
flag is false
flag is false
linux中一共有32种信号,在/usr/include/bits/signum.h 头文件中可以看到,具体如下:SIGHUP ;SIGINT ;SIGQUIT ;SIGILL ;SIGTRAP ;SIGABRT ;SIGIOT ;SIGBUS ;SIGFPE ;SIGKILL ;SIGUSR1 ;SIGSEGV ;SIGUSR2 ;SIGPIPE ;SIGALRM ;SIGTERM ;SIGSTKFLT ;SIGCLD ;SIGCHLD ;SIGCONT ;SIGSTOP ;SIGTSTP ;SIGTTIN ;SIGTTOU ;SIGURG ;SIGXCPU ;SIGXFSZ ;SIGVTALRM ;SIGPROF ;SIGWINCH ;SIGPOLL ;SIGIO ;SIGPWR ;SIGSYS ;SIGUNUSED
以上来自:https://blog.csdn.net/u010133805/article/details/53899667 ,他用的c++,改成c研究研究,如下:
看编号,用kill -l,SIGUSR1编号为10,如下所示:
#kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
其中SIGUSER1信号用户可以自己定义其处理行为,处理范例如下:
#make usr1
cc usr1.c -o usr1
./usr1
ps -ef|grep usr1
kill -s SIGUSR1 17331
sig_num=10
flag is true!
sig_num=10
flag is false
flag is false
Mac OS升级之后,使用Android studio 运行SVN出现如下错误:
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools),
missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
1
解决方式,打开命令行工具运行如下的命令:
xcode-select --install
---------------------
原文:https://blog.csdn.net/Zhangxichao100/article/details/76138145
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools),
missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
1
解决方式,打开命令行工具运行如下的命令:
xcode-select --install
---------------------
原文:https://blog.csdn.net/Zhangxichao100/article/details/76138145
附常用工具:
在线正则测试:http://tool.oschina.net/regex/
生成正则图片:https://regexper.com
==================================
在日常工作中,经常会用到正则操作。但是对于大多数人来说,操作正则表达式简直就是抓瞎。
本篇文章主要整理了正则表达式匹配的规则,使用中的一些要点,以及用图形化的方式列举出一些常见的正则表达式,希望能给大家带来一定的帮助,能在以后的工作中,用上正则,爱上正则。
PS:不同语言中的正则表达式的规则不完全相同,但是大部分都可以适用。
正则是什么
正则表达式是为了对字符串进行有效 数据提取 以及 匹配 的一种机制,字符串在匹配的过程中将会从第一个位置开始匹配,然后从左往右进行依次匹配,每尝试匹配一次,就会把控制权交由下一个位置,直到匹配结束。
正则表达式是由 普通字符(例如字符 a 到 z)以及 特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
正则的诞生
正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。Warren McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。
1956 年, 一位叫 Stephen Kleene 的美国数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为「神经网事件的表示法」的论文,引入了正则表达式的概念。
正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。
随后,人们发现可以将这一工作应用于使用Ken Thompson 的计算搜索算法的一些早期研究,Ken Thompson是Unix 的主要发明人。正则表达式的第一个实用应用程序就是 Unix 中的qed 编辑器。从那时起直至现在正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分。具有完整语法的正则表达式使用在字符的格式匹配方面上,后来被应用到熔融信息技术领域。自从那时起,正则表达式经过几个时期的发展,现在的标准已经被ISO(国际标准组织)批准和被Open Group组织认定。
匹配规则
下面将正则中的一些基本的匹配规则列出来如下表所示:
要点
贪与不贪
举个例子,假设有以下这段html字符,我想拿到a标签中的内容:
<a>
南京长江大桥
</a>
哈哈
<a>
南京市长江大桥
</a>
然后我写了这样一个正则: <a>(.)*</a>
在线测试的结果如下(注意:这个点包起来,*没有包起来):
<a>1212</a><a>2222</a>
这个结果与我们的预期不符,正常我应该得到两个匹配的结果才对,但是现在却只匹配到一个结果。
现在把刚刚的正则改成这样: <a>(.)*?</a>
在线测试的结果如下:
共找到 2 处匹配:
<a>1212</a>
<a>2222</a>
贪 说的是正则在不约束的情况下会继续自动向右进行匹配,直到匹配结束,只要匹配的数据与正则的最后一个值匹配就算是匹配到了。
不贪 说的是只要匹配到就结束,不继续向右进行匹配了。
问号 ? 就解决了贪婪的问题,使得问号前面的字符匹配到之后就结束,但是并不是把 ?放在哪里都可以解决贪婪的,在正则里,有一些属于贪婪模式量词,比如以下这些:
{m,n}
{m,}
?
*
+
断言与零宽
在java中我们知道 断言 可以用来声明一个应该为 true 的事实,只有当断言为真时才会继续进行后续的操作。
在正则中也有 断言 的概念,但是在正则中除了 断言 还有 零宽 的概念。
断言:
通俗点将断言就是 “我断定某某情况是真的” ,而正则中的断言,就是说正则可以断定在 指定的内容 的 前面 或 后面 会出现满足指定规则的内容。比如 "aa1bb2cc3",正则可以用断言找出 bb2 前面有 aa1,也可以找出 bb2 后面有 cc3。
零宽:
零宽就是没有宽度,在正则中,断言只是匹配位置,不占字符,也就是说,匹配结果里是不会返回断言本身的。
断言一共有四种情况:
<span class="read-cnt">阅读数:1024</span>
\d+(?=</span>)
分组
正则表达式中用小括号 () 来做分组,也就是括号中的内容作为一个整体。
因此当我们要匹配分组 he 的时候,可以用下面这个表达式 :
(he)
he is a great man,she is a greate woman
(he)
共找到 2 处匹配:
he
he
我们看到正则表达式用小括号来做分组,那么问题来了:
如果要匹配的字符串中本身就包含小括号,那应该怎么办?
针对这种情况,正则提供了转义的方式,也就是要把这些元字符、限定符或者关键字转义成普通的字符,做法很简单,就是在要转义的字符前面加个斜杠(\)即可。
因此当我们要匹配分组 (he) 的时候,可以用下面这个表达式 :
(he) is a great man,(she) is a greate woman
(\(he\))
共找到 1 处匹配:
(he)
aa122bb233cc344
(\w)(\w)\2
共找到 3 处匹配:
122
233
344
From:
https://mp.weixin.qq.com/s/9zdQYSkZdcbWioDECwz56g
在线正则测试:http://tool.oschina.net/regex/
生成正则图片:https://regexper.com
==================================
在日常工作中,经常会用到正则操作。但是对于大多数人来说,操作正则表达式简直就是抓瞎。
本篇文章主要整理了正则表达式匹配的规则,使用中的一些要点,以及用图形化的方式列举出一些常见的正则表达式,希望能给大家带来一定的帮助,能在以后的工作中,用上正则,爱上正则。
PS:不同语言中的正则表达式的规则不完全相同,但是大部分都可以适用。
正则是什么
正则表达式是为了对字符串进行有效 数据提取 以及 匹配 的一种机制,字符串在匹配的过程中将会从第一个位置开始匹配,然后从左往右进行依次匹配,每尝试匹配一次,就会把控制权交由下一个位置,直到匹配结束。
正则表达式是由 普通字符(例如字符 a 到 z)以及 特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
正则的诞生
正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。Warren McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。
1956 年, 一位叫 Stephen Kleene 的美国数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为「神经网事件的表示法」的论文,引入了正则表达式的概念。
正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。
随后,人们发现可以将这一工作应用于使用Ken Thompson 的计算搜索算法的一些早期研究,Ken Thompson是Unix 的主要发明人。正则表达式的第一个实用应用程序就是 Unix 中的qed 编辑器。从那时起直至现在正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分。具有完整语法的正则表达式使用在字符的格式匹配方面上,后来被应用到熔融信息技术领域。自从那时起,正则表达式经过几个时期的发展,现在的标准已经被ISO(国际标准组织)批准和被Open Group组织认定。
匹配规则
下面将正则中的一些基本的匹配规则列出来如下表所示:
要点
贪与不贪
举个例子,假设有以下这段html字符,我想拿到a标签中的内容:
<a>
南京长江大桥
</a>
哈哈
<a>
南京市长江大桥
</a>
然后我写了这样一个正则: <a>(.)*</a>
在线测试的结果如下(注意:这个点包起来,*没有包起来):
<a>1212</a><a>2222</a>
这个结果与我们的预期不符,正常我应该得到两个匹配的结果才对,但是现在却只匹配到一个结果。
现在把刚刚的正则改成这样: <a>(.)*?</a>
在线测试的结果如下:
共找到 2 处匹配:
<a>1212</a>
<a>2222</a>
贪 说的是正则在不约束的情况下会继续自动向右进行匹配,直到匹配结束,只要匹配的数据与正则的最后一个值匹配就算是匹配到了。
不贪 说的是只要匹配到就结束,不继续向右进行匹配了。
问号 ? 就解决了贪婪的问题,使得问号前面的字符匹配到之后就结束,但是并不是把 ?放在哪里都可以解决贪婪的,在正则里,有一些属于贪婪模式量词,比如以下这些:
{m,n}
{m,}
?
*
+
断言与零宽
在java中我们知道 断言 可以用来声明一个应该为 true 的事实,只有当断言为真时才会继续进行后续的操作。
在正则中也有 断言 的概念,但是在正则中除了 断言 还有 零宽 的概念。
断言:
通俗点将断言就是 “我断定某某情况是真的” ,而正则中的断言,就是说正则可以断定在 指定的内容 的 前面 或 后面 会出现满足指定规则的内容。比如 "aa1bb2cc3",正则可以用断言找出 bb2 前面有 aa1,也可以找出 bb2 后面有 cc3。
零宽:
零宽就是没有宽度,在正则中,断言只是匹配位置,不占字符,也就是说,匹配结果里是不会返回断言本身的。
断言一共有四种情况:
<span class="read-cnt">阅读数:1024</span>
\d+(?=</span>)
分组
正则表达式中用小括号 () 来做分组,也就是括号中的内容作为一个整体。
因此当我们要匹配分组 he 的时候,可以用下面这个表达式 :
(he)
he is a great man,she is a greate woman
(he)
共找到 2 处匹配:
he
he
我们看到正则表达式用小括号来做分组,那么问题来了:
如果要匹配的字符串中本身就包含小括号,那应该怎么办?
针对这种情况,正则提供了转义的方式,也就是要把这些元字符、限定符或者关键字转义成普通的字符,做法很简单,就是在要转义的字符前面加个斜杠(\)即可。
因此当我们要匹配分组 (he) 的时候,可以用下面这个表达式 :
(he) is a great man,(she) is a greate woman
(\(he\))
共找到 1 处匹配:
(he)
aa122bb233cc344
(\w)(\w)\2
共找到 3 处匹配:
122
233
344
From:
https://mp.weixin.qq.com/s/9zdQYSkZdcbWioDECwz56g
背景:Win10是在T60P上安装的,内存4G有点紧张,于是想禁用一些没有用的进程,譬如:小娜Cortana。
————————
出现不让重命名的,以及结束进程又起来了的情况,于是,用下在这个方法也就解决了问题,如下:
C:\Windows\SystemApps\Microsoft.Windows.Cortana_cw5n1h2txyewy> taskkill /f /im SearchUI.exe
成功: 已终止进程 "SearchUI.exe",其 PID 为 5964。
后又起来了。
C:\Windows\SystemApps\Microsoft.Windows.Cortana_cw5n1h2txyewy>del SearchUI.exe
C:\Windows\SystemApps\Microsoft.Windows.Cortana_cw5n1h2txyewy\SearchUI.exe
拒绝访问。
最后, 这个进程也就没有了,如下确认没有运行了:
C:\Windows\SystemApps\Microsoft.Windows.Cortana_cw5n1h2txyewy> taskkill /f /im SearchUI.exe
错误: 没有找到进程 "SearchUI.exe"。
————————
出现不让重命名的,以及结束进程又起来了的情况,于是,用下在这个方法也就解决了问题,如下:
C:\Windows\SystemApps\Microsoft.Windows.Cortana_cw5n1h2txyewy> taskkill /f /im SearchUI.exe
成功: 已终止进程 "SearchUI.exe",其 PID 为 5964。
后又起来了。
C:\Windows\SystemApps\Microsoft.Windows.Cortana_cw5n1h2txyewy>del SearchUI.exe
C:\Windows\SystemApps\Microsoft.Windows.Cortana_cw5n1h2txyewy\SearchUI.exe
拒绝访问。
最后, 这个进程也就没有了,如下确认没有运行了:
C:\Windows\SystemApps\Microsoft.Windows.Cortana_cw5n1h2txyewy> taskkill /f /im SearchUI.exe
错误: 没有找到进程 "SearchUI.exe"。
sudo useradd -m -s /bin/bash xiangdong -g irdcops #添加用户
DownLoad:
https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
出现缺少库ModuleNotFoundError: No module named '_ctypes',再次加上,关于在centos下安装python3.7.0以上版本时报错ModuleNotFoundError: No module named '_ctypes'的解决办法:
而Raspberry Pi读取的是libffi-dev ,如下:
来自:https://blog.csdn.net/wang725/article/details/79905612
编译Python3.7.1教程:https://blog.csdn.net/RambleMY/article/details/82109788
安装numpy:
如果成功安装好了pip,安装numpy及其他任何Python包都非常方便了
运行pip install numpy
pip会先自动下载与我们Python版本对应的numpy-xxx.whl文件,然后安装
矩阵计算:
画曲线:
sudo su -
pip3 install matplotlib #失败
sudo apt-get install python3-matplotlib # 安装成功,但是写代码时引用失败,如下:
>>> import matplotlib.pyplot as plt
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'matplotlib' ,成功如下:
以上代码在树莓派的界面上运行成功输出一个新窗口的Sina曲线。
二)VNCServer的配置尤其是复制和开机启动相关:
cat /home/irdcops/shell/vncsvr/startvncsvr.sh
killall Xvnc >/dev/null 2>&1
vncserver -kill :1
rm -rf /tmp/.X*-lock
rm -rf /tmp/.X11-unix/X*
rm -rf /root/.vnc/*.log
rm -rf /root/.vnc/*.pid
vncserver :1 -geometry 1024x768
这个是手动,二是那个能从Windows里复制进去,还得要开机启动,如下配置:
cat /etc/init.d/vncserver
chmod 755 /etc/init.d/vncserver
sudo update-rc.d vncserver defaults
继续解决复制问题,如下步骤:
找不到:vncconfig,在红帽里找了一下,发现在:
rpm -qf /usr/bin/vncconfig
tigervnc-server-minimal-1.8.0-5.el7.x86_64 ,于是推测在Raspberry Pi里也是这样,指示了下:
apt-get install tigervnc-standalone-server
下列【新】软件包将被安装:
libgnutls30 libhogweed4 libnettle6 libxfont2 tigervnc-common tigervnc-standalone-server
apt-get install tigervnc-standalone-server #之前安装了一个: sudo apt-get install tightvncserver
root@raspberrypi:~# vncconfig
vncconfig: unable to open display ""
stat /usr/bin/vncconfig
最近改动:2018-12-16 19:23:52.760773550 +0800
据博文,在文件/root/.vnc/xstartup,加一行 vncconfig -iconic & ,有的说是加: vncconfig -nowin&
三)TensorFlow:https://www.raspberrypi.org/magpi/tensorflow-ai-raspberry-pi/
https://yq.aliyun.com/articles/623213
DownLoad:
https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
出现缺少库ModuleNotFoundError: No module named '_ctypes',再次加上,关于在centos下安装python3.7.0以上版本时报错ModuleNotFoundError: No module named '_ctypes'的解决办法:
而Raspberry Pi读取的是libffi-dev ,如下:
来自:https://blog.csdn.net/wang725/article/details/79905612
编译Python3.7.1教程:https://blog.csdn.net/RambleMY/article/details/82109788
安装numpy:
如果成功安装好了pip,安装numpy及其他任何Python包都非常方便了
运行pip install numpy
pip会先自动下载与我们Python版本对应的numpy-xxx.whl文件,然后安装
矩阵计算:
画曲线:
sudo su -
pip3 install matplotlib #失败
sudo apt-get install python3-matplotlib # 安装成功,但是写代码时引用失败,如下:
>>> import matplotlib.pyplot as plt
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'matplotlib' ,成功如下:
以上代码在树莓派的界面上运行成功输出一个新窗口的Sina曲线。
二)VNCServer的配置尤其是复制和开机启动相关:
cat /home/irdcops/shell/vncsvr/startvncsvr.sh
killall Xvnc >/dev/null 2>&1
vncserver -kill :1
rm -rf /tmp/.X*-lock
rm -rf /tmp/.X11-unix/X*
rm -rf /root/.vnc/*.log
rm -rf /root/.vnc/*.pid
vncserver :1 -geometry 1024x768
这个是手动,二是那个能从Windows里复制进去,还得要开机启动,如下配置:
cat /etc/init.d/vncserver
chmod 755 /etc/init.d/vncserver
sudo update-rc.d vncserver defaults
继续解决复制问题,如下步骤:
找不到:vncconfig,在红帽里找了一下,发现在:
rpm -qf /usr/bin/vncconfig
tigervnc-server-minimal-1.8.0-5.el7.x86_64 ,于是推测在Raspberry Pi里也是这样,指示了下:
apt-get install tigervnc-standalone-server
下列【新】软件包将被安装:
libgnutls30 libhogweed4 libnettle6 libxfont2 tigervnc-common tigervnc-standalone-server
apt-get install tigervnc-standalone-server #之前安装了一个: sudo apt-get install tightvncserver
root@raspberrypi:~# vncconfig
vncconfig: unable to open display ""
stat /usr/bin/vncconfig
最近改动:2018-12-16 19:23:52.760773550 +0800
据博文,在文件/root/.vnc/xstartup,加一行 vncconfig -iconic & ,有的说是加: vncconfig -nowin&
三)TensorFlow:https://www.raspberrypi.org/magpi/tensorflow-ai-raspberry-pi/
https://yq.aliyun.com/articles/623213
问:
屏幕休眠后不能继续下载(Wi-Fi会断)?
答:
你可以使用第三方下载工具(例如:迅雷)会有类似于“下载时防止电脑进入睡眠”的功能。
关着屏幕播放音乐,需要你连接电源适配器,进入“系统偏好设置>节能器”,勾选“当显示器关闭时防止电脑自动进入睡眠”,同时把“此时间段关闭显示器”滑杆拖至“永不”。 这时候,你可以通过亮度调节,把屏幕关闭。
但是你不可以合上屏幕来播放音乐,如果需要此功能,你依然需要使用第三方插件来实现。
来自:https://discussionschinese.apple.com/thread/30207
屏幕休眠后不能继续下载(Wi-Fi会断)?
答:
你可以使用第三方下载工具(例如:迅雷)会有类似于“下载时防止电脑进入睡眠”的功能。
关着屏幕播放音乐,需要你连接电源适配器,进入“系统偏好设置>节能器”,勾选“当显示器关闭时防止电脑自动进入睡眠”,同时把“此时间段关闭显示器”滑杆拖至“永不”。 这时候,你可以通过亮度调节,把屏幕关闭。
但是你不可以合上屏幕来播放音乐,如果需要此功能,你依然需要使用第三方插件来实现。
来自:https://discussionschinese.apple.com/thread/30207
[实践OK]dive - 用于探索docker image中每个图层的工具
虚拟云与Docker jackxiang 2018-12-10 09:51
Docker 容器镜像是一个轻量、独立、含有运行某个应用所需全部软件的可执行包,那么一个 Docker 镜像里面会包含什么东西?这个名为 Dive 的工具正是用来分析和浏览 Docker 镜像每层的内容。
通过分析 Docker 镜像,我们可以发现在各个层之间可能重复的文件,并通过移除它们来减小 Docker 镜像的大小。
Dive 是一个用 Go 语言编写的自由开源工具。Dive 工具不仅仅是一个 Docker 镜像分析工具,它还可以帮助使用者用于构建镜像。
RHEL/Centos
curl -OL https://github.com/wagoodman/dive/releases/download/v0.3.0/dive_0.3.0_linux_amd64.rpm
rpm -i dive_0.3.0_linux_amd64.rpm
来自:https://javascript.ctolib.com/wagoodman-dive.html
通过分析 Docker 镜像,我们可以发现在各个层之间可能重复的文件,并通过移除它们来减小 Docker 镜像的大小。
Dive 是一个用 Go 语言编写的自由开源工具。Dive 工具不仅仅是一个 Docker 镜像分析工具,它还可以帮助使用者用于构建镜像。
RHEL/Centos
curl -OL https://github.com/wagoodman/dive/releases/download/v0.3.0/dive_0.3.0_linux_amd64.rpm
rpm -i dive_0.3.0_linux_amd64.rpm
来自:https://javascript.ctolib.com/wagoodman-dive.html
Centos下_MysqL5.7(Server version: 5.7.12-log)在使用mysqldump命令备份数据库报错:mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysql -u zabbix -p'q1w2***4' -P 3306 -h 127.0.0.1 -e "show status like 'Threads_cached';"|grep -v Value |awk '{print $2}'
mysql: [Warning] Using a password on the command line interface can be insecure.
3
===========================================================================
一)Server version: 5.7.12-log Source distribution下用 2>/dev/null并不行:
mysql -u zabbix -*****' -P 3306 -h 127.0.0.1 -e "show s
tatus like 'Threads_cached';"|grep -v Value |awk '{print $2}' 2>/dev/null
mysql: [Warning] Using a password on the command line interface can be insecure.
二)export MYSQL_PWD=666666 也不行。
阅读全文
mysql -u zabbix -p'q1w2***4' -P 3306 -h 127.0.0.1 -e "show status like 'Threads_cached';"|grep -v Value |awk '{print $2}'
mysql: [Warning] Using a password on the command line interface can be insecure.
3
===========================================================================
一)Server version: 5.7.12-log Source distribution下用 2>/dev/null并不行:
mysql -u zabbix -*****' -P 3306 -h 127.0.0.1 -e "show s
tatus like 'Threads_cached';"|grep -v Value |awk '{print $2}' 2>/dev/null
mysql: [Warning] Using a password on the command line interface can be insecure.
二)export MYSQL_PWD=666666 也不行。
阅读全文
背景:装个电脑Wifi的驱动,发现提示TP-LINK无线网卡老提示找不到imagstr.dll.dll,客户端无法打开。
解决办法:Thunder Network ,迅雷看看播放器,都容易引发问题,用Everything工具批量搜索: thunder找到所有目录并结合Wholockme强制删干净。重启电脑。
官方说装D盘,我直接重装安装到: E:/Program Files/下得了,就装它得了。
工具/原料
电脑
方法/步骤
这个imagstr.dll.dll文件网上不太好找。
解决方法其实很简单,卸载驱动后重新安装,不要选择Autorun
据说找不到这个dll文件是迅雷软件作怪。
建议选择TL-WN725N文件夹里面的Setup手动安装到非迅雷盘
TP-LINK无线网卡提示找不到imagstr.dll.dll?
最后的界面是这样的。选择TP-LINK客户端应用程序即可
来自:https://jingyan.baidu.com/article/73c3ce281d10e2e50343d988.html
https://service.tp-link.com.cn/detail_article_3225.html
注册Dll:
先从网站下载下来imagstr.dll.文件之后,先将其解压(一般都是rar压缩包), 然后根据您系统的情况选择X86/X64,X86为32位电脑,X64为64位电脑。默认都是支持32位系统的。
3)Windows XP/WIN7系统,将此文件复制到c:\Windows\System32目录。
4)如果您的系统是64位的请将文件复制到C:\Windows\SysWOW64目录
2.然后打开"开始-运行-输入regsvr32 imagstr.dll.",回车即可解决错误提示
https://zhidao.baidu.com/question/1707740617078138540.html?qbl=relate_question_3&word=imagstr.dll.dll
解决办法:Thunder Network ,迅雷看看播放器,都容易引发问题,用Everything工具批量搜索: thunder找到所有目录并结合Wholockme强制删干净。重启电脑。
官方说装D盘,我直接重装安装到: E:/Program Files/下得了,就装它得了。
工具/原料
电脑
方法/步骤
这个imagstr.dll.dll文件网上不太好找。
解决方法其实很简单,卸载驱动后重新安装,不要选择Autorun
据说找不到这个dll文件是迅雷软件作怪。
建议选择TL-WN725N文件夹里面的Setup手动安装到非迅雷盘
TP-LINK无线网卡提示找不到imagstr.dll.dll?
最后的界面是这样的。选择TP-LINK客户端应用程序即可
来自:https://jingyan.baidu.com/article/73c3ce281d10e2e50343d988.html
https://service.tp-link.com.cn/detail_article_3225.html
注册Dll:
先从网站下载下来imagstr.dll.文件之后,先将其解压(一般都是rar压缩包), 然后根据您系统的情况选择X86/X64,X86为32位电脑,X64为64位电脑。默认都是支持32位系统的。
3)Windows XP/WIN7系统,将此文件复制到c:\Windows\System32目录。
4)如果您的系统是64位的请将文件复制到C:\Windows\SysWOW64目录
2.然后打开"开始-运行-输入regsvr32 imagstr.dll.",回车即可解决错误提示
https://zhidao.baidu.com/question/1707740617078138540.html?qbl=relate_question_3&word=imagstr.dll.dll
背景: 有时偶尔会用到从文本里转成Html在浏览器里看,这个Editplus直接Ctrl+b就能看,现在Mac上没有这个Editplus怎么办呢?看文章中一步一步用VSCode替代Editplus即可。
vscode怎么浏览器打开html预览?这里大家可以通过安装open in browser插件解决。
注意:这个得保存为Html后缀才行,否则,鼠标右键不会有Open in Default Browsers
来自:https://www.cnblogs.com/echolun/p/9527319.html
vscode怎么浏览器打开html预览?这里大家可以通过安装open in browser插件解决。
注意:这个得保存为Html后缀才行,否则,鼠标右键不会有Open in Default Browsers
来自:https://www.cnblogs.com/echolun/p/9527319.html
背景:今天突然发现刚买的Mac原装鼠标在有时候出现了MacBook上的鼠标指针没了,一会又好了。查了下原因。
主要是下面的原因造成的:
一、驱动兼容性不好或者系统不稳定。
1、安装驱动精灵,选择一键更新所有驱动,这样兼容性好一些。
2、更换鼠标USB接口,或者重新启动电脑。
二、如果是无线鼠标还可能是电力不足,导致连接不稳定。更换鼠标电池。
摘自:http://ask.zol.com.cn/x/1196882.html
主要是下面的原因造成的:
一、驱动兼容性不好或者系统不稳定。
1、安装驱动精灵,选择一键更新所有驱动,这样兼容性好一些。
2、更换鼠标USB接口,或者重新启动电脑。
二、如果是无线鼠标还可能是电力不足,导致连接不稳定。更换鼠标电池。
摘自:http://ask.zol.com.cn/x/1196882.html
[实践OK]macbook鼠标慢命令行设置,macbook截图用的微信的截图:Control+Command+a。,应用界面居中control+option+command+C,MAC下截屏命令是Command+Shift+3,部分截屏命令是Command+Shift+4。MAC下腾讯截屏软件snip快捷键和[V]在"终端"中搜索man页面索引冲突都是shift+command+a,退出VIrtualBox全屏命令是Command+C,鼠标退出来的命令是command.
Unix/LinuxC技术 jackxiang 2018-12-3 18:03
macbook鼠标慢命令行设置:
defaults read -g com.apple.mouse.scaling
defaults write -g com.apple.mouse.scaling 10.0
MAC下截屏命令是Command+Shift+3,部分截屏命令是Command+Shift+4。
---------
按下Command+Shift+4并按下空格键。 交叉十字图标将变为小照相机图标。
你可以再次按下空格键转换为交叉十字图标。
移动光标到你希望进行截图的窗口上。
当照相机图标移过不同窗口上时,窗口将程高亮蓝色显示。 ...
点击所需窗口。 和其他截图方法一样,所选窗口的截图将默认保存在桌面上。
MAC下退出VIrtualBox全屏命令是Command+C,鼠标退出来的命令是command.
snip快捷键和钉钉的截图快捷键冲突,需要将钉钉的截图删除掉。
钉钉-》偏好设置-》快捷键里修改或者删掉。
我用的是微信的截图,不一定登录上,只要打开就能截图,微信-设置-快捷键如下:
Control+Command+a。AddTime:2023-05-14.
应用界面居中control+option+command+C
defaults read -g com.apple.mouse.scaling
defaults write -g com.apple.mouse.scaling 10.0
MAC下截屏命令是Command+Shift+3,部分截屏命令是Command+Shift+4。
---------
按下Command+Shift+4并按下空格键。 交叉十字图标将变为小照相机图标。
你可以再次按下空格键转换为交叉十字图标。
移动光标到你希望进行截图的窗口上。
当照相机图标移过不同窗口上时,窗口将程高亮蓝色显示。 ...
点击所需窗口。 和其他截图方法一样,所选窗口的截图将默认保存在桌面上。
MAC下退出VIrtualBox全屏命令是Command+C,鼠标退出来的命令是command.
snip快捷键和钉钉的截图快捷键冲突,需要将钉钉的截图删除掉。
钉钉-》偏好设置-》快捷键里修改或者删掉。
我用的是微信的截图,不一定登录上,只要打开就能截图,微信-设置-快捷键如下:
Control+Command+a。AddTime:2023-05-14.
应用界面居中control+option+command+C