经常操作LINUX系统的人会发现,当我们登录一个并不是由自己亲手部署的系统的时候,经常会发现习惯性的敲入一些命令的时候发现如下情况:(我用经常使用rz和sz工具举例)

[root@splunk-centos ~]# rz
-bash: rz: command not found

   根据提示为命令没找到,一般人的做法如下:

   百度“rz: command not found” 然后根据搜索页面打开网页,告诉你需要安装lrzsz包,然后执行yum install lrzsz

   这个问题我们能不能不用百度解决?

  答案是当然可以!

     

     这里有两个前提:

         1、可以通过YUM访问软件仓库

         2、当前的YUM源仓库确实有这个数据包

还好我举例的rz&&sz 在大部分发行版官方源中有。怎么知道rz&&sz是在lrzsz包下的?

 

 [root@localhost data]# yum search rz
   Loaded plugins: fastestmirror
   Loading mirror speeds from cached hostfile
================================== N/S matched: rz ======================================
lrzsz.x86_64 : The lrz and lsz modem communications programs
Name and summary matches only, use "search all" for everything.

  

  看上到上面的lrzsz.x86_64了吗?说明rz命令在lrzsz包中,支持64位系统

  然后yum install lrzsz -y 安装即可

  

  现在说第二个问题,如果我知道了某个软件包,想知道这个包都有那些工具(命令)怎么办?

  比如,centos7 默认最小化安装没有ifconfig,用刚才的方法你就能找到了,并yum 安装。

  既然是一个包,那么还包含了其它命名了没?

  利用rpm -qa 包名即可,如


[root@localhost ~]# rpm -ql net-tools
/bin/netstat
/sbin/arp
/sbin/ether-wake
/sbin/ifconfig
/sbin/ipmaddr
/sbin/iptunnel
/sbin/mii-diag
/sbin/mii-tool
/sbin/nameif
/sbin/plipconfig
/sbin/route
/sbin/slattach

我只截了命令,man帮助文件等省略。通过可以查看包的完整命令

[root@localhost ~]# rpm -qa |grep net-tools

net-tools-2.0-0.17.20131004git.el7.x86_64

哇,原来还安装了这么多命令呀,这个装一个rpm我们就知道到底安装了什么,都在哪


  当然上面的两个前提如果不通过也不行,比如htop默认没在centos源中,你YUM 搜索就找不到

[root@localhost ~]# yum search all htop
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Warning: No matches found for: htop
No matches found

那就只能去安装第三方源了