文件的搜寻可就厉害了!因为我们常常需要知道那个文件放在哪里,才能够对该文件进行一些修改或维护等动作。 有些时候某些软件配置文件的文件名是不变的,但是各 distribution 放置的目录则不同。 此时就得要利用一些搜寻指令将该配置文件的完整文件名捉出来,这样才能修改嘛!您说是吧!^_^
6.5.1 指令文件名的搜寻
我们知道在终端机模式当中,连续输入两次[tab]按键就能够知道使用者有多少指令可以下达。 那你知不知道这些指令的完整文件名放在哪里?举例来说,ls 这个常用的指令放在哪里呢? 就通过 which 或 type 来找寻吧!
which (寻找“可执行文件”)
[root@study ~]# which [-a] command选项或参数:-a:将所有由PATH目录中可以找到的指令均列出,而不止第一个被找到的指令名称范例一:搜寻ifconfig这个指令的完整文件名[root@study ~]# which ifconfig/sbin/ifconfig范例二:用which去找出which的文件名为何?[root@study ~]# which whichaliaswhich='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'/bin/alias/usr/bin/which# 竟然会有两个 which ,其中一个是 alias 这玩意儿呢!那是啥?# 那就是所谓的“命令别名”,意思是输入 which 会等于后面接的那串指令啦!# 更多的数据我们会在 bash 章节中再来谈的!范例三:请找出history这个指令的完整文件名[root@study ~]# which history/usr/bin/which:nohistoryin(/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)[root@study ~]# history --help-bash:history:--:invalidoptionhistory:usage:history [-c] [-d offset][n] or history -anrw [filename] or history -ps arg # 瞎密?怎么可能没有 history ,我明明就能够用 root 执行 history 的啊!
这个指令是根据“[PATH]”这个环境变量所规范的路径,去搜寻“可执行文件”的文件名~ 所以,重点是找出“可执行文件”而已!且 which 后面接的是“完整文件名”喔!若加上 -a 选项,则可以列出所有的可以找到的同名可执行文件,而非仅显示第一个而已!
最后一个范例最有趣,怎么 history 这个常用的指令竟然找不到啊!为什么呢?这是因为 history 是“bash 内置的指令”啦! 但是 which 默认是找 PATH 内所规范的目录,所以当然一定找不到的啊(有 bash 就有 history!)!那怎办?没关系!我们可以通过 type 这个指令喔! 关于 type 的用法我们将在 [第十章的 bash] 再来谈!