![[ 永远的UNIX::UNIX技术资料的宝库 ]](/images/title.gif)
|
| 首页 > 系统管理 > 其它 > 正文 |
 |
| 为什么有人说 $PATH 里不可以放 '.' 呢? |
| Steve Hayman (2001-04-19 10:41:21) |
背景知识: 环境变数 PATH 是一串用冒号隔开的目录。当你下一个指令而
没有指定所在的目录,例如 "ls" 而非 "/bin/ls",则你的 shell 就会在
PATH 所指定的目录中去找寻指令。
你可以在 PATH 里面放入目前所在的目录 "." 。或者,在 PATH 中加入一
个空的目录,这两者是等效的
for csh users:
setenv PATH :/usr/ucb:/bin:/usr/bin
setenv PATH .:/usr/ucb:/bin:/usr/bin
for sh or ksh users
PATH=:/usr/ucb:/bin:/usr/bin export PATH
PATH=.:/usr/ucb:/bin:/usr/bin export PATH
把 "." 放在 PATH 中是很方便的,若要执行 "./a.out" 只要打 "a.out"
即可,但是这么做会有大麻烦。
当把 "." 放在 PATH 的最前面情况下。若你目前所在目录是如 "/tmp" 这
样大家都可以写的地方。如果有别的使用这放了一个名为 "ls" 的程式在
那里,而你打入 "ls" 那你可能就死得非常难看了。
把 "." 放到 PATH 的结尾是个比较好的做法:
setenv PATH /usr/ucb:/bin:/usr/bin:.
这么一来,当你在 "/tmp" 中打 "ls" 保?nbsp;shell 就会先找 "/usr/ucb",
"/bin" 与 "/usr/bin" 里的 "ls"。减少了一点危险。不过仍然不是百分之
百安全。假如你是个笨拙的打字者,有一天你把 "ls -l" 打成 "sl -l",
而又有一个聪明的使用者能猜到这种常见的打字错误,在 "/tmp" 底下放
了一只 "sl",你还是得死。所以啊,千万要小心。
(http://www.fanqiang.com)
进入【UNIX论坛】
|
|
| 相关文章 |
|
===更多相关=== |
|
|
 |
★ 樊强制作 欢迎分享 ★ |