[实践OK]CentOS下vim编辑器在可视模式下在secureCRT无法复制的办法。
Unix/LinuxC技术 jackxiang 2018-5-30 13:41
想鼠标切换又能复制,怎么办?
set mouse=a可视下,用:按住 shift 键,然后选择。
在~/.vimrc中加入 set mouse=a 后,vim鼠标右键变得不能复制了,解决办法如下:
按住 shift 键,然后选择,此时表示由 X 处理该选择,copy 选项就 enable 了。如果放掉shift键,则由 vim处理该选择。
所以配置文件中的set mouse=a启动了所有模式, vim接管了鼠标的控制。
其中涉及的背景知识是:
鼠标事件有两种处理方式,程序处理和 X 处理。
如果 X 负责处理,则是左键选择,中间粘贴。
要让 vim 中由 X 负责处理,有两个方法:
1. 按住 shift 键,然后选择,此时由 X 处理该选择,copy 选项就 enable 了。如果放掉shift键,则由 vim处理该选择。
2. 在 .vimrc 中设置 set mouse= (就是说清空),此时vim永远不再干涉鼠标选择,永远把处理权交给X,这个时候鼠标就处于无模式编辑状态, 当然也能用鼠标来切换vim里面的tab窗口了,vim中的编辑光标也不会跟随鼠标了。
实践Ok来自:https://blog.csdn.net/sinkary/article/details/7531747
:set mouse=v
但这样后,Vim的标签就无法用鼠标切换了,http://jackxiang.com/post/9110/
想用鼠标点vim里的Tab,能切换标签,得重新运行::set mouse=a ,实践是可行的。
阅读全文
set mouse=a可视下,用:按住 shift 键,然后选择。
在~/.vimrc中加入 set mouse=a 后,vim鼠标右键变得不能复制了,解决办法如下:
按住 shift 键,然后选择,此时表示由 X 处理该选择,copy 选项就 enable 了。如果放掉shift键,则由 vim处理该选择。
所以配置文件中的set mouse=a启动了所有模式, vim接管了鼠标的控制。
其中涉及的背景知识是:
鼠标事件有两种处理方式,程序处理和 X 处理。
如果 X 负责处理,则是左键选择,中间粘贴。
要让 vim 中由 X 负责处理,有两个方法:
1. 按住 shift 键,然后选择,此时由 X 处理该选择,copy 选项就 enable 了。如果放掉shift键,则由 vim处理该选择。
2. 在 .vimrc 中设置 set mouse= (就是说清空),此时vim永远不再干涉鼠标选择,永远把处理权交给X,这个时候鼠标就处于无模式编辑状态, 当然也能用鼠标来切换vim里面的tab窗口了,vim中的编辑光标也不会跟随鼠标了。
实践Ok来自:https://blog.csdn.net/sinkary/article/details/7531747
:set mouse=v
但这样后,Vim的标签就无法用鼠标切换了,http://jackxiang.com/post/9110/
想用鼠标点vim里的Tab,能切换标签,得重新运行::set mouse=a ,实践是可行的。
阅读全文
[实践OK]苹果Mac里输入文件路径的方法,Mac打开Finder快捷键.
Unix/LinuxC技术 jackxiang 2018-5-27 16:16
option + command + space打开Finder,command + shift + G;注意:打开finder后,再快捷键,然后输入“/”,前往根目录。
二)常用目录:硬盘图标拖拽至侧边栏。
三)shift + space :相当于快速查看目录大小。
1、通过“前往文件夹”快捷键组合
(1)打开finder,点击上部菜单栏“前往”,然后“个人”,直接跳转。
(2)快捷键组合:command + shift + G;注意:打开finder后,再快捷键,然后输入“/”,前往根目录。
2、将Macintosh HD快捷方式放入Finder侧边栏
对于经常要访问根目录的用户来说,将Macintosh HD快捷方式会更高效一些。在任何文件夹内(除了“我的所有文件”)右键点击标题栏(文件夹窗口最上面,居中的标题栏),然后选择Macintosh HD。最后将Macintosh HD左侧的硬盘图标拖拽至侧边栏即可完成操作。以后需要访问根目录时,只需点击侧边栏的快捷方式即可。
3、在桌面上显示硬盘
打开Finder的“偏好设置”,在“通用”模式下在“硬盘”前面的方块内勾选即可。这样桌面上就会有Macintosh HD,双击即可访问。
4、使用命令行迅速导航
导航打开终端应用,然后输入下面的命令即可迅速导航至根目录。
CD/
上面的命令是在终端中访问根目录,如果你想通过终端打开Finder的根目录,只需下面的命令即可:
open/
在Finder里,也不是类似下载文件夹里,输入:
Command+Shift+G
会弹出一个输入路径的框,输入路径也就跳转过去了。
---------------------------------------------------------------
option + command + space
直接通过Spotlight窗口就能打开Finder。简单吧!
| 设置Spotlight窗口的快捷键
在系统偏好设置-Spotlight中自行设置即可。
| 跳转到某个文件夹
进入Finder窗口后,shift+command+g后输入文件夹路径即可跳转到相应文件夹。
> 常见文件夹路径
跳转到根目录,输入
/
跳转到当前目录,默认为apple目录,输入
~
来自:http://www.cnblogs.com/tangyikejun/p/3997728.html
二)常用目录:硬盘图标拖拽至侧边栏。
三)shift + space :相当于快速查看目录大小。
1、通过“前往文件夹”快捷键组合
(1)打开finder,点击上部菜单栏“前往”,然后“个人”,直接跳转。
(2)快捷键组合:command + shift + G;注意:打开finder后,再快捷键,然后输入“/”,前往根目录。
2、将Macintosh HD快捷方式放入Finder侧边栏
对于经常要访问根目录的用户来说,将Macintosh HD快捷方式会更高效一些。在任何文件夹内(除了“我的所有文件”)右键点击标题栏(文件夹窗口最上面,居中的标题栏),然后选择Macintosh HD。最后将Macintosh HD左侧的硬盘图标拖拽至侧边栏即可完成操作。以后需要访问根目录时,只需点击侧边栏的快捷方式即可。
3、在桌面上显示硬盘
打开Finder的“偏好设置”,在“通用”模式下在“硬盘”前面的方块内勾选即可。这样桌面上就会有Macintosh HD,双击即可访问。
4、使用命令行迅速导航
导航打开终端应用,然后输入下面的命令即可迅速导航至根目录。
CD/
上面的命令是在终端中访问根目录,如果你想通过终端打开Finder的根目录,只需下面的命令即可:
open/
在Finder里,也不是类似下载文件夹里,输入:
Command+Shift+G
会弹出一个输入路径的框,输入路径也就跳转过去了。
---------------------------------------------------------------
option + command + space
直接通过Spotlight窗口就能打开Finder。简单吧!
| 设置Spotlight窗口的快捷键
在系统偏好设置-Spotlight中自行设置即可。
| 跳转到某个文件夹
进入Finder窗口后,shift+command+g后输入文件夹路径即可跳转到相应文件夹。
> 常见文件夹路径
跳转到根目录,输入
/
跳转到当前目录,默认为apple目录,输入
~
来自:http://www.cnblogs.com/tangyikejun/p/3997728.html
遇到该问题并非安装的软件已损坏,而是Mac系统的安全设置问题,一般大多时候是在安装汉化或者破解版的时候会遇到。
但是之前设置过Mac的安全性和隐私,允许安装来自任何地方的软件。不应该出现该问题。
回去排查发现是因为自己升级Mac系统到最新版之后,安全性与隐私中没有了信任任何来源的选项。
Fix
解决的办法除了从 系统偏好设置中设置还可以通过如下命令来设置,设置完毕就会出现“任何来源”
修改系统配置:系统偏好设置… -> 安全性与隐私。修改为任何来源
如果没有这个选项的话 (macOS Sierra 10.12) ,打开终端,执行 sudo spctl –master-disable 即可。
bogon:~ root# sudo master-disablespctl
sudo: master-disablespctl: command not found
bogon:~ root# master-disablespctl
-sh: master-disablespctl: command not found
bogon:~ root# spctl --master-disable
bogon:~ root#
实践来源:https://blog.csdn.net/eagle5063/article/details/78802510
但是之前设置过Mac的安全性和隐私,允许安装来自任何地方的软件。不应该出现该问题。
回去排查发现是因为自己升级Mac系统到最新版之后,安全性与隐私中没有了信任任何来源的选项。
Fix
解决的办法除了从 系统偏好设置中设置还可以通过如下命令来设置,设置完毕就会出现“任何来源”
修改系统配置:系统偏好设置… -> 安全性与隐私。修改为任何来源
如果没有这个选项的话 (macOS Sierra 10.12) ,打开终端,执行 sudo spctl –master-disable 即可。
bogon:~ root# sudo master-disablespctl
sudo: master-disablespctl: command not found
bogon:~ root# master-disablespctl
-sh: master-disablespctl: command not found
bogon:~ root# spctl --master-disable
bogon:~ root#
实践来源:https://blog.csdn.net/eagle5063/article/details/78802510
排序
按F9或者选择菜单:Edit > Sort Lines,对每行文本进行排序
查找重复行
排序好后,按Ctrl+F,调出查找面板
查找字符串:
^(.+)$[\r\n](^\1$[\r\n]{0, 1})+
注意:确保正则模式开关打开;若不可用,按Alt+R进行切换
点击Find。
实践发现先得F9,再查找重复,重复的一块,不同的线隔开。
删除重复行
排序好后,按Ctrl+H,调出替换面板
查找字符串:
^(.+)$[\r\n](^\1$[\r\n]{0, 1})+
注意:确保正则模式开关打开;若不可用,按Alt+R进行切换。
后面替换为空,即可留下一个即可。
替换字符串:
\1
点击Replace
来自:http://www.cnblogs.com/final/p/5427223.html
按F9或者选择菜单:Edit > Sort Lines,对每行文本进行排序
查找重复行
排序好后,按Ctrl+F,调出查找面板
查找字符串:
^(.+)$[\r\n](^\1$[\r\n]{0, 1})+
注意:确保正则模式开关打开;若不可用,按Alt+R进行切换
点击Find。
实践发现先得F9,再查找重复,重复的一块,不同的线隔开。
删除重复行
排序好后,按Ctrl+H,调出替换面板
查找字符串:
^(.+)$[\r\n](^\1$[\r\n]{0, 1})+
注意:确保正则模式开关打开;若不可用,按Alt+R进行切换。
后面替换为空,即可留下一个即可。
替换字符串:
\1
点击Replace
来自:http://www.cnblogs.com/final/p/5427223.html
[实践OK]Linux出现Too many open files in system强制重启,原因是恶意用户连接SSH导致ssh-agent进程太多,最后只有reset键和长按关机键关机。
Unix/LinuxC技术 jackxiang 2018-5-16 22:51
原因:外网试图登录SSH破解密码太多,出现大量的/usr/bin/ssh-agent -s进程。ssh-agent会随着当前ssh会话的消失而消失,这也是一种安全机制.
解决办法如下:
cat /etc/profile.d/ssh-agent.sh
运行:
[root@localhost ~]# sh /etc/profile.d/ssh-agent.sh
Starting ssh-agent...
Agent pid 3625
[root@localhost ~]# ps -ef|grep 3625
root 3625 1 0 22:57 ? 00:00:00 ssh-agent
root 3647 3325 0 22:57 pts/2 00:00:00 grep --color=auto 3625
后面再多个SSH,只有四个ssh-agent进程:
ps -ef|grep ssh-agent
root 3625 1 0 22:57 ? 00:00:00 ssh-agent
root 2442 1 0 22:54 ? 00:00:00 /usr/bin/ssh-agent -s
root 2785 1 0 22:55 ? 00:00:00 /usr/bin/ssh-agent -s
root 3131 1 0 22:56 ? 00:00:00 /usr/bin/ssh-agent -s
root 3527 1 0 22:57 ? 00:00:00 /usr/bin/ssh-agent -s
root 3878 1 0 22:58 ? 00:00:00 /usr/bin/ssh-agent -s
cat ~/.agent.env
SSH_AUTH_SOCK=/tmp/ssh-X1RtYLOVI2iq/agent.3623; export SSH_AUTH_SOCK;
SSH_AGENT_PID=3625; export SSH_AGENT_PID;
echo Agent pid 3625;
感觉进程数还是变多,无鸟用,于是干掉这个SSH-Client:
[root@localhost ~]# rpm -qf /usr/bin/ssh-agent
openssh-clients-7.4p1-13.el7_4.x86_64
[root@localhost ~]# rpm -e openssh-clients
错误:依赖检测失败:
openssh-clients 被 (已安裝) virt-viewer-5.0-7.el7.x86_64 需要
openssh-clients 被 (已安裝) python-meh-0.25.2-1.el7.noarch 需要
[root@localhost ~]# yum remove openssh-clients -y
作为依赖被删除:
anaconda-core.x86_64 0:21.48.22.121-1.el7.centos anaconda-gui.x86_64 0:21.48.22.121-1.el7.centos
anaconda-tui.x86_64 0:21.48.22.121-1.el7.centos initial-setup.x86_64 0:0.3.9.40-1.el7.centos
initial-setup-gui.x86_64 0:0.3.9.40-1.el7.centos python-meh.noarch 0:0.25.2-1.el7
python-meh-gui.noarch 0:0.25.2-1.el7 virt-viewer.x86_64 0:5.0-7.el7
参考自:https://blog.csdn.net/diamondxiao/article/details/52488628
一)SSH现象:
二)Linux桌面没了,出现:
系统出现kernel: audit: backlog limit exceeded提示
error: audit:backlog limit exceeded报错,audit缓冲大小瓶颈
来自:http://blog.51cto.com/jschu/1769025
三)如何强制重启?
有时候,linux 由于硬盘或者其它原因,
某个进程挂住了,怎么也杀不死,
输入 reboot 命令也无法重启。
这时候,一般只能按机箱上的reset健来重启了。
如果是远程ssh,那怎么办呢?
下面两行命令可以搞定:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
=========================================================
Linux使用shutdown -r now 或者 reboot、init 6 命令无法重启时使用以下两条命令可强制重启:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
1./proc/sys/kernel/sysrq
向 sysrq 文件中写入1是为了开启 SysRq 功能。根据 linux/Documentations/sysrq.txt 中所说:SysRq 代表的是 Magic System Request Key。开启了这个功能以后,只要内核没有挂掉,它就会响应你要求的任何操作。但是这需要内核支持(CONFIG_MAGIC_SYSRQ 选项)。向 /proc/sys/kernel/sysrq 中写入0是关闭 SysRq 功能,写入1是开启,其他选项请参考 sysrq.txt。
2./proc/sysrq-trigger
立即重新启动计算机:
echo "b" > /proc/sysrq-trigger
立即关闭计算机:
echo "o" > /proc/sysrq-trigger
来自:https://my.oschina.net/dongsong/blog/915358
解决办法如下:
cat /etc/profile.d/ssh-agent.sh
运行:
[root@localhost ~]# sh /etc/profile.d/ssh-agent.sh
Starting ssh-agent...
Agent pid 3625
[root@localhost ~]# ps -ef|grep 3625
root 3625 1 0 22:57 ? 00:00:00 ssh-agent
root 3647 3325 0 22:57 pts/2 00:00:00 grep --color=auto 3625
后面再多个SSH,只有四个ssh-agent进程:
ps -ef|grep ssh-agent
root 3625 1 0 22:57 ? 00:00:00 ssh-agent
root 2442 1 0 22:54 ? 00:00:00 /usr/bin/ssh-agent -s
root 2785 1 0 22:55 ? 00:00:00 /usr/bin/ssh-agent -s
root 3131 1 0 22:56 ? 00:00:00 /usr/bin/ssh-agent -s
root 3527 1 0 22:57 ? 00:00:00 /usr/bin/ssh-agent -s
root 3878 1 0 22:58 ? 00:00:00 /usr/bin/ssh-agent -s
cat ~/.agent.env
SSH_AUTH_SOCK=/tmp/ssh-X1RtYLOVI2iq/agent.3623; export SSH_AUTH_SOCK;
SSH_AGENT_PID=3625; export SSH_AGENT_PID;
echo Agent pid 3625;
感觉进程数还是变多,无鸟用,于是干掉这个SSH-Client:
[root@localhost ~]# rpm -qf /usr/bin/ssh-agent
openssh-clients-7.4p1-13.el7_4.x86_64
[root@localhost ~]# rpm -e openssh-clients
错误:依赖检测失败:
openssh-clients 被 (已安裝) virt-viewer-5.0-7.el7.x86_64 需要
openssh-clients 被 (已安裝) python-meh-0.25.2-1.el7.noarch 需要
[root@localhost ~]# yum remove openssh-clients -y
作为依赖被删除:
anaconda-core.x86_64 0:21.48.22.121-1.el7.centos anaconda-gui.x86_64 0:21.48.22.121-1.el7.centos
anaconda-tui.x86_64 0:21.48.22.121-1.el7.centos initial-setup.x86_64 0:0.3.9.40-1.el7.centos
initial-setup-gui.x86_64 0:0.3.9.40-1.el7.centos python-meh.noarch 0:0.25.2-1.el7
python-meh-gui.noarch 0:0.25.2-1.el7 virt-viewer.x86_64 0:5.0-7.el7
参考自:https://blog.csdn.net/diamondxiao/article/details/52488628
一)SSH现象:
二)Linux桌面没了,出现:
系统出现kernel: audit: backlog limit exceeded提示
error: audit:backlog limit exceeded报错,audit缓冲大小瓶颈
来自:http://blog.51cto.com/jschu/1769025
三)如何强制重启?
有时候,linux 由于硬盘或者其它原因,
某个进程挂住了,怎么也杀不死,
输入 reboot 命令也无法重启。
这时候,一般只能按机箱上的reset健来重启了。
如果是远程ssh,那怎么办呢?
下面两行命令可以搞定:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
=========================================================
Linux使用shutdown -r now 或者 reboot、init 6 命令无法重启时使用以下两条命令可强制重启:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
1./proc/sys/kernel/sysrq
向 sysrq 文件中写入1是为了开启 SysRq 功能。根据 linux/Documentations/sysrq.txt 中所说:SysRq 代表的是 Magic System Request Key。开启了这个功能以后,只要内核没有挂掉,它就会响应你要求的任何操作。但是这需要内核支持(CONFIG_MAGIC_SYSRQ 选项)。向 /proc/sys/kernel/sysrq 中写入0是关闭 SysRq 功能,写入1是开启,其他选项请参考 sysrq.txt。
2./proc/sysrq-trigger
立即重新启动计算机:
echo "b" > /proc/sysrq-trigger
立即关闭计算机:
echo "o" > /proc/sysrq-trigger
来自:https://my.oschina.net/dongsong/blog/915358
一)查看根路径下各个文件夹的文件数:
for i in /*; do echo $i; find $i |wc -l|sort -nr; done
二)发现/var的最多,于是再运行命令:
for i in /var/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool
2428535
三)再次进入:
for i in /var/spool/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool/postfix
2428437
四)再次深入:
for i in /var/spool/postfix/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool/postfix/maildrop
2428402
五)估计上面安装了postfiex,检查下:
rpm -qa|grep postfix
postfix-2.6.6-2.2.el6_1.x86_64
六)Google上搜索下原因:
mail没有成功的邮件。由于linux在执行cron时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送cron所有者, 而我的服务器中关闭了postfix,导致邮件发送不成功,全部小文件堆积在了maildrop目录下面。如果sendmail或者postfix正常运行,则会在/var/mail目录下也会堆积大量的邮件。
七)解决方法:
1)修改“/etc/crontab” ,将‘MAILTO=root’替换成‘MAILTO=""’修改之后没有成功,需要重启crond服务才可以,也可从在crontab(crontab -e)中最前面直接加入MAILTO=""
2)find /var/spool/postfix/maildrop -type f -exec rm -rf {} \;
参考:http://www.coooz.com/archives/825
https://blog.csdn.net/zhangxinrun/article/details/51539587
for i in /*; do echo $i; find $i |wc -l|sort -nr; done
二)发现/var的最多,于是再运行命令:
for i in /var/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool
2428535
三)再次进入:
for i in /var/spool/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool/postfix
2428437
四)再次深入:
for i in /var/spool/postfix/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool/postfix/maildrop
2428402
五)估计上面安装了postfiex,检查下:
rpm -qa|grep postfix
postfix-2.6.6-2.2.el6_1.x86_64
六)Google上搜索下原因:
mail没有成功的邮件。由于linux在执行cron时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送cron所有者, 而我的服务器中关闭了postfix,导致邮件发送不成功,全部小文件堆积在了maildrop目录下面。如果sendmail或者postfix正常运行,则会在/var/mail目录下也会堆积大量的邮件。
七)解决方法:
1)修改“/etc/crontab” ,将‘MAILTO=root’替换成‘MAILTO=""’修改之后没有成功,需要重启crond服务才可以,也可从在crontab(crontab -e)中最前面直接加入MAILTO=""
2)find /var/spool/postfix/maildrop -type f -exec rm -rf {} \;
参考:http://www.coooz.com/archives/825
https://blog.csdn.net/zhangxinrun/article/details/51539587
centos7部署运行docker-compose 出现 ImportError: No module named 'requests.packages.urllib3' 错误 的处理
Unix/LinuxC技术 jackxiang 2018-5-10 17:51
centos7部署运行docker-compose 出现 ImportError: No module named 'requests.packages.urllib3' 错误 的处理:
ImportError: No module named 'requests.packages.urllib3'
#解决办法
pip install requests urllib3 pyOpenSSL --force --upgrade
pip install --upgrade --force-reinstall 'requests==2.6.0'
参考:https://www.52zheteng.info/%E6%9C%8D%E5%8A%A1%E5%99%A8/centos7-%E4%BD%BF%E7%94%A8certbot-%E5%87%BA%E7%8E%B0-requests-packages-urllib3-%E9%94%99%E8%AF%AF-%E7%9A%84%E5%A4%84%E7%90%86/
ImportError: No module named 'requests.packages.urllib3'
#解决办法
pip install requests urllib3 pyOpenSSL --force --upgrade
pip install --upgrade --force-reinstall 'requests==2.6.0'
参考:https://www.52zheteng.info/%E6%9C%8D%E5%8A%A1%E5%99%A8/centos7-%E4%BD%BF%E7%94%A8certbot-%E5%87%BA%E7%8E%B0-requests-packages-urllib3-%E9%94%99%E8%AF%AF-%E7%9A%84%E5%A4%84%E7%90%86/
[实践OK]Mac下安装md5sum和linux下的md5sum使用和输出一样,不一样的FreeBSD 11.1下的md5和Linux下的md5sum不一样输出格式统一成md5deep以及自己编译出Linunx一样的md5sum可执行文件的瞎折腾。
Unix/LinuxC技术 jackxiang 2018-5-10 15:10
Mac下安装md5sum:https://blog.csdn.net/cup_chenyubo/article/details/52982986
brew install md5sha1sum
背景:公司网不好传入rz -bye的稍微大点的文件就断开了,再运行rz -bye,还会继续重头再传(只要失败再SSH上去运行rz -bye就会继续传,和默认SSH的目录无关,这个有点意思,但要是rz -bye支持断点上传就好了。),于是这就有一个比对文件是否是真的传上去了的md5sum比对,而Linux下有md5sum filename,FreeBSD下有md5,但输出格式和Linux下的不大一样,但都是求Md5,于是找了找,发现一个叫md5deep的可以Port安装,输出还和Linux下的一样,相当友好,偶尔会用到,记录三种都能达到目录,个人认为以第二种较为精简有力,符合Linux思想,现在用FreeBSD多吗?嘿嘿。
零)系统自己默认的md5也能求出文件内容的md5值:
md5 harbor-offline-installer-v1.2.0.tgz
MD5 (harbor-offline-installer-v1.2.0.tgz) = 235fcfb9fe00ad61f6cbc2de4920b477
#which md5
/sbin/md5
#ln -sf /sbin/md5 /sbin/md5sum #作个软链接且名字修改成md5sum
#md5sum harbor-offline-installer-v1.2.0.tgz #SecureCRT下新开SSH窗口:
MD5 (harbor-offline-installer-v1.2.0.tgz) = 235fcfb9fe00ad61f6cbc2de4920b477
==== 上面格式和Linux有点出入,找到一个和Linux一样的类似md5sum的Port安装包命令md5deep====
一)/usr/port/security/md5deep
make && make install
上面这个md5deep的输出和Linux的md5sum一样的:
On FreeBSD:
#md5deep /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
On Linux:
#md5sum harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 harbor-offline-installer-v1.2.0.tgz
于是这样:
#which md5deep
/usr/local/bin/md5deep
#rm -rf /sbin/md5sum #删除前面的软链接。
vi /root/.cshrc
alias md5sum '/usr/local/bin/md5deep'
#which md5sum
md5sum: aliased to /usr/local/bin/md5deep
重新开一个FreeBSD的终端,和Linux一样运行md5sum filename获取文件内容的md5值:
#md5sum harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
二)/usr/ports/sysutils/coreutils
make clean
make deinstall
make && make install
弹出一个窗体,选取消:
coreutils-8.25.tar.xz 12% of 5590 kB 382 kBps 00m20s
md5sum is part of GNU coreutils. The FreeBSD port to install is sysutils/coreutils. This will install all the GNU coreutils with a g prefix, so md5sum will be available as gmd5sum.
安装完后,md5sum生成在这个位置,直接拷贝到/usr/local/bin下面得了:
/usr/ports/sysutils/coreutils/work/coreutils-8.25/src/md5sum /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
cp -rf /usr/ports/sysutils/coreutils/work/coreutils-8.25/src/md5sum /bin/md5sum #和Linux目录一样。
#which md5sum
/bin/md5sum
#md5sum /opt/harbor-offline-installer-v1.2.0.tgz #/bin/md5sum
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
#ldd /bin/md5sum
/bin/md5sum:
libc.so.7 => /lib/libc.so.7 (0x800836000)
我只要这一个coreutils编译出来的md5sum,于是make deinstall卸载掉没有用到的一些东西:
cd /usr/ports/sysutils/coreutils
make clean && make deinstall
因为它只是用到libc.so.7这个动态链接库,即使卸载掉后,依然能够运行这个md5sum的可执行文件求出输出文件的MD5值:
#md5sum /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
参考:https://unix.stackexchange.com/questions/439974/how-to-install-md5sum-in-freebsd
文中两Port摘自:https://forums.freebsd.org/threads/md5-compare-long-file-list-to-md5-file-contents.21795/
brew install md5sha1sum
背景:公司网不好传入rz -bye的稍微大点的文件就断开了,再运行rz -bye,还会继续重头再传(只要失败再SSH上去运行rz -bye就会继续传,和默认SSH的目录无关,这个有点意思,但要是rz -bye支持断点上传就好了。),于是这就有一个比对文件是否是真的传上去了的md5sum比对,而Linux下有md5sum filename,FreeBSD下有md5,但输出格式和Linux下的不大一样,但都是求Md5,于是找了找,发现一个叫md5deep的可以Port安装,输出还和Linux下的一样,相当友好,偶尔会用到,记录三种都能达到目录,个人认为以第二种较为精简有力,符合Linux思想,现在用FreeBSD多吗?嘿嘿。
零)系统自己默认的md5也能求出文件内容的md5值:
md5 harbor-offline-installer-v1.2.0.tgz
MD5 (harbor-offline-installer-v1.2.0.tgz) = 235fcfb9fe00ad61f6cbc2de4920b477
#which md5
/sbin/md5
#ln -sf /sbin/md5 /sbin/md5sum #作个软链接且名字修改成md5sum
#md5sum harbor-offline-installer-v1.2.0.tgz #SecureCRT下新开SSH窗口:
MD5 (harbor-offline-installer-v1.2.0.tgz) = 235fcfb9fe00ad61f6cbc2de4920b477
==== 上面格式和Linux有点出入,找到一个和Linux一样的类似md5sum的Port安装包命令md5deep====
一)/usr/port/security/md5deep
make && make install
上面这个md5deep的输出和Linux的md5sum一样的:
On FreeBSD:
#md5deep /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
On Linux:
#md5sum harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 harbor-offline-installer-v1.2.0.tgz
于是这样:
#which md5deep
/usr/local/bin/md5deep
#rm -rf /sbin/md5sum #删除前面的软链接。
vi /root/.cshrc
alias md5sum '/usr/local/bin/md5deep'
#which md5sum
md5sum: aliased to /usr/local/bin/md5deep
重新开一个FreeBSD的终端,和Linux一样运行md5sum filename获取文件内容的md5值:
#md5sum harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
二)/usr/ports/sysutils/coreutils
make clean
make deinstall
make && make install
弹出一个窗体,选取消:
coreutils-8.25.tar.xz 12% of 5590 kB 382 kBps 00m20s
md5sum is part of GNU coreutils. The FreeBSD port to install is sysutils/coreutils. This will install all the GNU coreutils with a g prefix, so md5sum will be available as gmd5sum.
安装完后,md5sum生成在这个位置,直接拷贝到/usr/local/bin下面得了:
/usr/ports/sysutils/coreutils/work/coreutils-8.25/src/md5sum /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
cp -rf /usr/ports/sysutils/coreutils/work/coreutils-8.25/src/md5sum /bin/md5sum #和Linux目录一样。
#which md5sum
/bin/md5sum
#md5sum /opt/harbor-offline-installer-v1.2.0.tgz #/bin/md5sum
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
#ldd /bin/md5sum
/bin/md5sum:
libc.so.7 => /lib/libc.so.7 (0x800836000)
我只要这一个coreutils编译出来的md5sum,于是make deinstall卸载掉没有用到的一些东西:
cd /usr/ports/sysutils/coreutils
make clean && make deinstall
因为它只是用到libc.so.7这个动态链接库,即使卸载掉后,依然能够运行这个md5sum的可执行文件求出输出文件的MD5值:
#md5sum /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
参考:https://unix.stackexchange.com/questions/439974/how-to-install-md5sum-in-freebsd
文中两Port摘自:https://forums.freebsd.org/threads/md5-compare-long-file-list-to-md5-file-contents.21795/
[实践OK]解决yum update出错"package is a duplicate with", 后面居然把openssh-server删除掉ssh不上了用VNC才重新装上,注意了。
Unix/LinuxC技术 jackxiang 2018-5-10 11:10
产生可能原因:之前执行yun update命令时ctrl + c将其中断了, 现在重新执行yum update时出现如下错误:
问题描述:
解决方法
在stackovreflow网站找到了答案
列出重复的包
# package-cleanup --dupes
删除重复的包
# package-cleanup --cleandupes
执行完上面两个命令, 再yum update成功解决问题
OK, Enjoy it~
来自:https://blog.csdn.net/Cryhelyxx/article/details/51121407
yum install openssh-server -y
systemctl start sshd
问题描述:
解决方法
在stackovreflow网站找到了答案
列出重复的包
# package-cleanup --dupes
删除重复的包
# package-cleanup --cleandupes
执行完上面两个命令, 再yum update成功解决问题
OK, Enjoy it~
来自:https://blog.csdn.net/Cryhelyxx/article/details/51121407
yum install openssh-server -y
systemctl start sshd
linux内存的分配和释放
Unix/LinuxC技术 jackxiang 2018-5-9 14:15
了解内存分配机制(共享映射与请求分页)
通过 pmap 命令,可以获取用户进程逻辑地址空间中映射的内存信息:
pmap -x $pid
其中 -x 表示获取详细信息。
下面是一个例子:
pmap -x $(pidof emacs) |head -20
其中,“Address(地址)”指的进程的逻辑地址空间。
"Kbytes"列表示的是对应逻辑地址的容量,以Kb为单位
“RSS”列表示的是实际使用的物理内存容量,由于分页机制的存在,这个值一般要比"Kbytes"的值要少。
"Mapping"列为逻辑内存的映射方式,其中"[annon]"表示通过malloc函数来分配的堆空间(匿名内存),"[stack]"为进程的栈空间,这两种映射都是将物理内存映射到进程的逻辑内存上去。 而"emacs-25.3","libpixbufloader-svg.so"等文件名则表示它们执行的是文件映射,他们对应的是磁盘上的文件。当这些文件被读入高速缓存后,相应的内存空间被映射成进程的逻辑内存。
当出现多个程序共同使用相同的文件映射(共享库)时,它们可以共享磁盘高速缓存中的同一空间,从而节省物理内存的使用量,这种技术就是"共享映射"技术。
来自:http://lujun9972.github.io/blog/2018/04/18/linux%E5%86%85%E5%AD%98%E7%9A%84%E5%88%86%E9%85%8D%E5%92%8C%E9%87%8A%E6%94%BE/
通过 pmap 命令,可以获取用户进程逻辑地址空间中映射的内存信息:
pmap -x $pid
其中 -x 表示获取详细信息。
下面是一个例子:
pmap -x $(pidof emacs) |head -20
其中,“Address(地址)”指的进程的逻辑地址空间。
"Kbytes"列表示的是对应逻辑地址的容量,以Kb为单位
“RSS”列表示的是实际使用的物理内存容量,由于分页机制的存在,这个值一般要比"Kbytes"的值要少。
"Mapping"列为逻辑内存的映射方式,其中"[annon]"表示通过malloc函数来分配的堆空间(匿名内存),"[stack]"为进程的栈空间,这两种映射都是将物理内存映射到进程的逻辑内存上去。 而"emacs-25.3","libpixbufloader-svg.so"等文件名则表示它们执行的是文件映射,他们对应的是磁盘上的文件。当这些文件被读入高速缓存后,相应的内存空间被映射成进程的逻辑内存。
当出现多个程序共同使用相同的文件映射(共享库)时,它们可以共享磁盘高速缓存中的同一空间,从而节省物理内存的使用量,这种技术就是"共享映射"技术。
来自:http://lujun9972.github.io/blog/2018/04/18/linux%E5%86%85%E5%AD%98%E7%9A%84%E5%88%86%E9%85%8D%E5%92%8C%E9%87%8A%E6%94%BE/
[CentOS]安装软件:/lib/ld-linux.so.2: bad ELF interpreter 解决,解决linux安装软件:/lib/ld-linux.so.2: bad ELF interpreter问题,购买的优越者型号及windows 软件下载地址。
Unix/LinuxC技术 jackxiang 2018-5-5 13:21
#./HWRaidManager
-bash: ./HWRaidManager: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
安装64位在Linux在32位程序的兼容YUM包:
使用的时候出现一个错误
bash: /usr/local/bin/rar: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
是因为64位系统中安装了32位程序
解决方法:
yum install glibc.i686
./HWRaidManager: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
yum install -y libpng-devel.x86_64
来自:https://sebastianblade.com/libpng12-so-0-cannot-open-shared-object-file/
rpm -ql libpng-devel|grep so
/usr/lib64/libpng.so
/usr/lib64/libpng15.so
ls -lart /usr/lib64/libpng.so
lrwxrwxrwx 1 root root 11 5月 5 13:26 /usr/lib64/libpng.so -> libpng15.so
ln -sf /usr/lib64/libpng15.so /usr/lib64/libpng12.so.0
还是不行,这优越者 raid1 Y-3355RAID管理程序,最后用物理方法解决了raid1的设置问题。
二)优越者型号及windows 软件下载地址。
http://www.unitek-it.com/download/showdownload.php?id=51
-bash: ./HWRaidManager: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
安装64位在Linux在32位程序的兼容YUM包:
使用的时候出现一个错误
bash: /usr/local/bin/rar: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
是因为64位系统中安装了32位程序
解决方法:
yum install glibc.i686
./HWRaidManager: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
yum install -y libpng-devel.x86_64
来自:https://sebastianblade.com/libpng12-so-0-cannot-open-shared-object-file/
rpm -ql libpng-devel|grep so
/usr/lib64/libpng.so
/usr/lib64/libpng15.so
ls -lart /usr/lib64/libpng.so
lrwxrwxrwx 1 root root 11 5月 5 13:26 /usr/lib64/libpng.so -> libpng15.so
ln -sf /usr/lib64/libpng15.so /usr/lib64/libpng12.so.0
还是不行,这优越者 raid1 Y-3355RAID管理程序,最后用物理方法解决了raid1的设置问题。
二)优越者型号及windows 软件下载地址。
http://www.unitek-it.com/download/showdownload.php?id=51
CentOS7 整机备份恢复
Unix/LinuxC技术 jackxiang 2018-5-4 14:29
以root权限在"/"目录执行备份命令:
恢复:
把备份文件拷贝到根分区, 然后执行命令. 注意是大写的C.
重建排除的目录(如果这些目录不存在的话):
来自:http://rickgong.iteye.com/blog/2386716
恢复:
把备份文件拷贝到根分区, 然后执行命令. 注意是大写的C.
重建排除的目录(如果这些目录不存在的话):
来自:http://rickgong.iteye.com/blog/2386716
Create an empty file called .gitkeep in the directory, and add that.
来自:https://stackoverflow.com/questions/115983/how-can-i-add-an-empty-directory-to-a-git-repository
From: https://www.zhihu.com/question/29811994
来自:https://stackoverflow.com/questions/115983/how-can-i-add-an-empty-directory-to-a-git-repository
From: https://www.zhihu.com/question/29811994
[实践OK]shell批量查询URL返回状态码
Php/Js/Shell/Go jackxiang 2018-4-16 14:40
背景:个人博客里的友情链接发现好多链接都404了,要么是域名注册到期没有续费,要么搬家了,根本连接不过去了,影响页面加载速度怎么能快速清理掉?PHP版本的,只获取Header头,不获取Body内容的:http://jackxiang.com/post/6818/ ,尽管PHP比较能写,但是没有Shell更快实现作下简单一行处理。
一)Linux下的一句话脚本:
二)写成多行:
三)分割文件,子Shell处理,没实践,代码如下:
觉得数据多了就别直接用bash和curl做,换其他并发和网络编程更方便的语言。
来自:http://www.dewen.net.cn/q/15394/%E5%A6%82%E4%BD%95%E5%8A%A0%E5%BF%ABshell%E6%89%B9%E9%87%8F%E8%8E%B7%E5%8F%96url%E7%8A%B6%E6%80%81%E7%A0%81%E7%9A%84%E9%80%9F%E5%BA%A6%EF%BC%9F
https://jingyan.baidu.com/article/fdbd4277d59af8b89e3f4895.html
一)Linux下的一句话脚本:
二)写成多行:
三)分割文件,子Shell处理,没实践,代码如下:
觉得数据多了就别直接用bash和curl做,换其他并发和网络编程更方便的语言。
来自:http://www.dewen.net.cn/q/15394/%E5%A6%82%E4%BD%95%E5%8A%A0%E5%BF%ABshell%E6%89%B9%E9%87%8F%E8%8E%B7%E5%8F%96url%E7%8A%B6%E6%80%81%E7%A0%81%E7%9A%84%E9%80%9F%E5%BA%A6%EF%BC%9F
https://jingyan.baidu.com/article/fdbd4277d59af8b89e3f4895.html
[实践OK]linux用户之间的通信,Linux下常用的“聊天”命令,登录SSH用户间的通讯命令。
Unix/LinuxC技术 jackxiang 2018-4-13 16:47
#who
xiangdong tty1 2019-01-17 23:34
xiangdong pts/0 2019-01-18 09:32 (202.108.16.77)
xiangdong pts/1 2019-01-18 09:33 (202.108.16.80)
tty 看自己:
#tty
/dev/pts/1
即使自己是sudo 用who 看,其实还是原来的账户,如: xiangdong,用:
#write root pts/1
write: root is not logged in on pts/0 还得换成向东 xiangdong
#write xiangdong pts/0
jackxiang
对端就能收到,注意一下那个中文会有乱码。发点英文应该没有啥问题。
$write xiangdong
jfjdkf
jack
另一端:
Message from xiangdong@jackX@10_71_182_17* on pts/0 at 16:45 ...
jfjdkf
jack
阅读全文
xiangdong tty1 2019-01-17 23:34
xiangdong pts/0 2019-01-18 09:32 (202.108.16.77)
xiangdong pts/1 2019-01-18 09:33 (202.108.16.80)
tty 看自己:
#tty
/dev/pts/1
即使自己是sudo 用who 看,其实还是原来的账户,如: xiangdong,用:
#write root pts/1
write: root is not logged in on pts/0 还得换成向东 xiangdong
#write xiangdong pts/0
jackxiang
对端就能收到,注意一下那个中文会有乱码。发点英文应该没有啥问题。
$write xiangdong
jfjdkf
jack
另一端:
Message from xiangdong@jackX@10_71_182_17* on pts/0 at 16:45 ...
jfjdkf
jack
阅读全文
[实践OK] Ansible建立批量偶数目录~
Php/Js/Shell/Go jackxiang 2018-4-12 15:46
cat t3.yml
ls /tmp/test/
10 12 14 16 4 6 8
来自:http://54im.com/ansible-doc/playbooks_loops.html#looping-over-integer-sequences
批量创建目录:
ls /tmp/test/
10 12 14 16 4 6 8
来自:http://54im.com/ansible-doc/playbooks_loops.html#looping-over-integer-sequences
批量创建目录:
[实践OK]redis的brpop简单使用,brpop的意思是在消息队列尾阻塞地取出消息,参数0表示一直阻塞下去直到有消息在msg这个list中,我们可以指定一个数字代表过期时间。
Swoole专题研究 jackxiang 2018-4-11 14:41
Q:这个brpop后面的2参数啥意思?是想模拟多个消费者吗?那个yii不也有类似消费者和swoole这个例子的差距不对差别在哪鹅?
Swoole-2.1.2 进程池模块的使用:http://mp.weixin.qq.com/s?__biz=MzI0MjEwMDMzNQ==&mid=2652517441&idx=1&sn=06909bb58cc4c0f3ade589a005ed6e84&chksm=f2efe541c5986c5741aa240e9a4daaab47c542b325a0042c4fbd5094ded48221035d90003fe1&mpshare=1&scene=1&srcid=04119CY2J0y8Az2isPm9UKyL#rd
阅读全文
Swoole-2.1.2 进程池模块的使用:http://mp.weixin.qq.com/s?__biz=MzI0MjEwMDMzNQ==&mid=2652517441&idx=1&sn=06909bb58cc4c0f3ade589a005ed6e84&chksm=f2efe541c5986c5741aa240e9a4daaab47c542b325a0042c4fbd5094ded48221035d90003fe1&mpshare=1&scene=1&srcid=04119CY2J0y8Az2isPm9UKyL#rd
阅读全文