一)netstat常用查看端口参数之查看所有tcp/udp端口:
netstat -atlunp|grep 80


二)netstat常用查看端口参数之单独查看tcp/udp端口命令:
netstat -uln

Proto Recv-Q Send-Q Local Address               Foreign Address             State
udp        0      0 0.0.0.0:111                 0.0.0.0:*
udp        0      0 0.0.0.0:808                 0.0.0.0:*
udp        0      0 127.0.0.1:837               0.0.0.0:*
udp        0      0 0.0.0.0:17617               0.0.0.0:*
udp        0      0 0.0.0.0:2392                0.0.0.0:*



假如没有n,直接用netstat -tl,显示的是一些端口的程序名,如下:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 *:5646                      *:*                         LISTEN
tcp        0      0 *:sunrpc                    *:*                         LISTEN
tcp        0      0 *:7824                      *:*                         LISTEN
tcp        0      0 *:webcache                  *:*                         LISTEN
tcp        0      0 *:ssh                       *:*                         LISTEN
tcp        0      0 *:5881                      *:*                         LISTEN

三)netstat常用查看端口参数之单独查看tcp端口命令:
netstat -tln

Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:34945               0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:32740               0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:15770             0.0.0.0:*                   LISTEN

四)netstat本身也是通过读取系统中的/proc/net/tcp(6)文件来实现对当前网络状态的监控输出的
netstat本身也是通过读取系统中的/proc/net/tcp(6)文件来实现对当前网络状态的监控输出的。我们只要依样画葫芦对此文件进行 解析(主要是合并ipv4和ipv6的内容,然后从16进制转换成字符串形式的ip,端口),然后再比对一下,只要发现此socket的远程ip和端口和 php中的$_SERVER['REMOTE_ADDR'],$_SERVER['REMOTE_PORT']相匹配即可。具体实现如下:

摘录:http://www.4shell.org/archives/2064.html
参考:http://www.80sec.com/security-issue-on-linux-fd-inheritance.html
SecureCrt某个设置不合朕的心意,在打开一个新的连接时不是在同一个窗口下,它又新开了一个工作窗口,像下面这样,操作起来让人很不爽:
一个SSH打一一个SecureCRT,
解决方案:点击 File -> Connect In Tab/Tile 连接新的会话

来自:https://blog.csdn.net/u012135425/article/details/79487575
背景:在Linux下习惯使用ll、la、l等ls别名的童鞋到mac os可就郁闷了,
whichi ll
-bash: whichi: command not found
[xiangdong@jenkins_server_bj_sjs_10_71_182_25 .ssh]$ which ll
alias ll='ls -l --color=auto'
        /bin/ls
其实只要在用户目录下建立一个脚本“.bash_profile”,并输入以下内容即可:


ls -l --color=auto

1 2014-461deMacBook-Pro:~ root# cd ~
2 2014-461deMacBook-Pro:~ root#vim .bash_profile
加入:


  保存后,执行

3 2014-461deMacBook-Pro:~ root#source .bash_profile
=============================================

.bash_profile

alias l='ls -alhF'
alias la='ls -AFh'
alias ll='ls -lhAF'
alias l='ls -alhF'
alias la='ls -AFh'
alias ll='ls -lhAF'

然后在终端窗口中输入下列命令后,别名即可立即生效:
source ~/.bash_profile
source ~/.bash_profile

如果不知道如何创建,可以直接在“终端”窗口中依次执行如下命令:

.bash_profile完整创建命令Shell

cd ~
touch .bash_profile
echo "alias l='ls -alhF'" >>.bash_profile
echo "alias la='ls -AFh'" >>.bash_profile
echo "alias ll='ls -lhAF'" >>.bash_profile
source ~/.bash_profile

cd ~
touch .bash_profile
echo "alias l='ls -alhF'" >>.bash_profile
echo "alias la='ls -AFh'" >>.bash_profile
echo "alias ll='ls -lhAF'" >>.bash_profile
source ~/.bash_profile

来自:https://clang.cn/blog/749.html
https://www.cnblogs.com/daly2008/p/4160066.html
背景:Python很火,且连一些如ESP8266的硬件都支持Python了。
目前Python存在两个版本Python2和Python3系列,且这两个版本同时在更新与维护。到底是选择Python2还是选择Python3,取决于当前要使用的库、框架支持哪个版本。因此一台电脑上可能需要同时安装Python2和Python3两个版本。本文主要讲述的是如何在centos7系统中存在python2系列的同时安装python3.6.2(目前python3系列的最新版本)

1.安装升级相应的软件包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

2.下载python 3.6 的源码包
wget http://mirrors.sohu.com/python/3.6.2/Python-3.6.2.tgz

3.安装python3.6
tar zxvf Python-3.6.2.tgz -C /opt/
cd /opt/Python-3.6.2/  
./configure --prefix=/usr/local/python3
make && make install  

若遇到编译问题:
zipimport.ZipImportError: can't decompress data; zlib not available  #make && make install
yum install zlib zlib-devel -y

4.配置python,配置python3  pip3 软链接,设置软连接:目的是让我们直接在任何地方输入python3命令都可以得到python解释器的运行。
更改/usr/bin/python链接:
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
mv /usr/bin/pip{,.backup}
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip   #python2-pip没有,就没有这个pip.
查看是否安装成功
python3 -V
pip3 -V

更改/usr/bin/python默认链接,实现升级:
/usr/bin/python --version
Python 2.7.5
mv /usr/bin/python{,.backup}
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python


5.查看当python的版本,出现版本信息即为正确安装
python3 --version


6.更改yum脚本的python依赖
yum localinstall mysql-5.7.12-171123111505.el7.centos.x86_64.rpm
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
# ls /usr/bin/yum*
# ls yum*
yum yum-config-manager yum-debug-restore yum-groups-manager
yum-builddep yum-debug-dump yumdownloader
更改以上文件头为
#!/usr/bin/python 改为 #!/usr/bin/python2

用Sed 一行搞定,参考自[实践OK]经常用到之linux sed 批量替换字符串,及模糊替换和模糊拼接的例子。http://jackxiang.com/post/2324/:
/usr/bin/yum-groups-manager  #!/usr/bin/python -tt
/usr/bin/yumdownloader #直接python后面有一个空格
/usr/bin/yum-debug-restore #!/usr/bin/python -tt
/usr/bin/yum-debug-dump  #!/usr/bin/python -tt
/usr/bin/yum-config-manager #!/usr/bin/python -tt
/usr/bin/yum-builddep  #!/usr/bin/python -tt
/usr/bin/yum  #python后面无空格
势必要有两种替换:
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-builddep
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-config-manager
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-debug-dump
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-debug-restore
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yumdownloader
sed -i 's/#!\/usr\/bin\/python /#!\/usr\/bin\/python2.7 /' /usr/bin/yum-groups-manager
sed -i 's/#!\/usr\/bin\/python$/#!\/usr\/bin\/python2.7/' /usr/bin/yum
sed -i 's/#!\/usr\/bin\/python$/#!\/usr\/bin\/python2.7/' /usr/libexec/urlgrabber-ext-down

这个-tt的没有啥用,只是起到警告作用,完全在替换时不要:
-t     Issue a warning when a source file mixes tabs and spaces for indentation in a  way  that  makes  it
              depend on the worth of a tab expressed in spaces.  Issue an error when the option is given twice.
-t 当源文件以制作缩进的方式混合制表符和空格时发出警告
               取决于用空格表示的选项卡的价值。 当该选项被赋予两次时发出一个错误。

7.测试用Python的Pip3安装Python扩展:
rpm -qf /bin/pip
python2-pip-8.1.2-5.el7.noarch
/bin/pip --version
pip 9.0.1 from /usr/lib/python2.7/site-packages (python 2.7)

pip3 --version
pip 9.0.1 from /usr/local/python3/lib/python3.6/site-packages (python 3.6)

pip3 install PyEmail
Collecting PyEmail
  Downloading https://files.pythonhosted.org/packages/ca/39/caf0436670b6fa9f072e322fab1a2b04d5631bdbdc8ea9857230aae02dd5/PyEmail-0.0.1.zip
Installing collected packages: PyEmail
  Running setup.py install for PyEmail ... done
Successfully installed PyEmail-0.0.1
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

pip3 install ipdb
Collecting ipdb
  Downloading https://files.pythonhosted.org/packages/80/fe/4564de08f174f3846364b3add8426d14cebee228f741c27e702b2877e85b/ipdb-0.11.tar.gz
Requirement already satisfied: setuptools in /usr/local/python3/lib/python3.6/site-packages (from ipdb)
Collecting ipython>=5.0.0 (from ipdb)
  Downloading https://files.pythonhosted.org/packages/b1/7f/91d50f28af3e3a24342561983a7857e399ce24093876e6970b986a0b6677/ipython-6.4.0-py3-none-any.whl (750kB)
    62% |████████████████████            | 471kB 54kB/s eta 0:00:06
好一会下载安装就能装上这个,但是提示:You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
pip install --upgrade pip

pip install ipdb   #再一次安装这个Python的调试扩展
python -m pdb mail.py

最后,这些脚本总结起来放一块就这些,方便后期再安装之用:


来自:https://blog.csdn.net/hobohero/article/details/54381475
来自:https://blog.csdn.net/wjqwinn/article/details/75633714
用ssh登录阿里云centos7主机,过一会儿会自动出现以下信息,
Message from syslogd@docker_test_bj_sjs_10_71_159_108 at Jun 11 17:49:08 ...
kernel:unregister_netdevice: waiting for lo to become free. Usage count = 1
在这个信息中,我这里按ctrl+c可以退回到

https://m.aliyun.com/yunqi/ask/2877/
[root@localhost ~]# mount -t xfs /dev/sdb /data        
mount: mount /dev/sdb on /data failed: Structure needs cleaning

--------------------------
可以使用xfs_repair来修复,但是要注意 xfs_repair修复的分区中的文件都会丢失,即使是du能正常显示的文件也会丢失。

[root@yw-0-0 /]# mount -a
mount: Structure needs cleaning

[root@yw-0-0 /]# xfs_repair /dev/sdl

来自:http://blog.51cto.com/zwcmcm/1650764
mkfs.ext4 经yum update的升级到CentOS7.5后没了mkfs.ext4,于是 得安装:
安装https://mirrors.aliyun.com/centos/7.5.1804/os/x86_64/Packages/e2fsprogs-1.42.9-11.el7.x86_64.rpm这个包

[root@iZ889v050nrZ:~]
#cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

[root@iZ889v050nrZ:~]
#rpm -qf /sbin/mkfs.ext4
e2fsprogs-1.42.9-11.el7.x86_64
想鼠标切换又能复制,怎么办?
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 ,实践是可行的。
阅读全文
在Finder里,也不是类似下载文件夹里,输入:
Command+Shift+G
会弹出一个输入路径的框,输入路径也就跳转过去了。
一)Yum安装:centos7编译好的strace安装源,在devtoolset-3包中有。

先添加 devtoolset-3 的安装源

yum install centos-release-scl-rh -y
yum install strace --enablerepo=centos-sclo-rh -y

直接安装

yum install strace

其他

1、devtoolset还有很多其他的工具可用,列表见 http://mirror.centos.org/centos/7/sclo/x86_64/rh/

2、还可以通过devtoolset切换高版本gcc编译环境,高版本的py等,详见  http://blog.fungo.me/2016/03/centos-development-env/

参考:https://www.softwarecollections.org/en/scls/rhscl/devtoolset-3/

二)源码装:
strace是一个功能强大的调试,分析诊断工具,主要用来监视系统调用。

1.下载strace-xxx.tar.xz

    下载网址是:http://sourceforge.net/project/showfiles.php?group_id=2861&package_id=2819;

2.解压

      $  xz -d   ***.tar.xz

      $  tar -xvf   ***.tar


      可以看到这个压缩包也是打包后再压缩,外面是xz压缩方式,里层是tar打包方式。

      补充:目前可以直接使用 tar xvJf  ***.tar.xz来解压

3.配置

        ./configure

4.编译

      make

5.安装

    make  install

6.使用



见博文:http://blog.csdn.net/u011630575/article/details/52077563
原因:外网试图登录SSH破解密码太多,出现大量的/usr/bin/ssh-agent -s进程。
解决办法如下:
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
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/
背景:公司网不好传入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/

分页: 1/32 第一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 下页 最后页 [ 显示模式: 摘要 | 列表 ]