日期:2014-05-16  浏览次数:20688 次

linux which命令学习

1. which的作用?
当需要查找系统中某个命令的位置时,可以使用which命令来看到。
sh-# which pwd
/bin/pwd
sh-# which cd
sh-# type cd
cd is a shell builtin
sh-# type pwd
pwd is a shell builtin
sh-# whereis which
which: /bin/which /usr/bin/which ooxx...

2. which命令的实现原理?
which查找命令依赖于环境变量$PATH,它会从$PATH所列的目录中按顺序的去查找命令,
一旦找到which命令就会返回。你的系统中可能会有多个which命令,但是
sh-# which which
的执行结果会依赖于系统中$PATH的配置。

3. 为什么which cd却不能找到cd这个命令所在的目录?
使用type来查看,pwd/cd都是shell builtin命令,但是却找不到cd命令所在的目录。
我们可以认为这正是which命令的另一个功能,它可以用来区别一般内建命令与特殊
内建命令。

从以上的分析我们可以看到,用户很容易编写自己的shell命令来取代一般内建命令与
外部命令,只要修改$PATH将自己的命令放到搜索顺序的前面即可。

待确认问题:
用户命令是否能够取代特殊内建命令,如何取代?

1楼boyxulin19867分钟前
自己必须顶自己