+ -
当前位置:首页 → 问答吧 → 为什么在一个终端中使用某个命令能运行,在另一个中不能使用?

为什么在一个终端中使用某个命令能运行,在另一个中不能使用?

时间:2010-08-20

来源:互联网

这是在一个终端中输入的命令:
hj:/home/bsd-ocfs-0.1# bsdocfs
bash: /usr/bin/bsdocfs: No such file or directory

hj:/home/bsd-ocfs-0.1# whereis bsdocfs
bsdocfs: /usr/local/bin/bsdocfs /usr/local/sbin/bsdocfs /usr/local/etc/bsdocfs /usr/local/lib/bsdocfs

同时打开另一个终端,一台机器上:

hj:~# bsdocfs
10.08.20 11:00:59.144717 b7310ab0 -- :/735 messenger.start
10.08.20 11:00:59.144879 b7310ab0 -- :/735 --> mon0 192.168.1.80:6789/0 -- auth(proto 0 30 bytes) -- ?+0 0x9e01500

10.08.20 11:01:02.145396 b630db90 -- :/735 >> 192.168.1.80:6789/0 pipe(0x9e019e0 sd=-1 pgs=0 cs=0 l=0).fault first fault(表示正常运行)

hj:~# whereis bsdocfs
bsdocfs: /usr/local/bin/bsdocfs /usr/local/sbin/bsdocfs /usr/local/etc/bsdocfs /usr/local/lib/bsdocfs

这是什么原因呢?是不是缓存的缘故啊……

作者: hjwsm1989   发布时间: 2010-08-20

权限的问题吧

作者: chinesedragon   发布时间: 2010-08-20

用户不同

作者: 梅川内依酷   发布时间: 2010-08-20

LS真没穿呀

作者: xxw19840406   发布时间: 2010-08-20

你做过些什么操作,为什么会出现“bash: /usr/bin/bsdocfs: No such file or directory”
原来是不是bsdocfs放在/usr/bin下然后删除了?

执行一下 hash -r 试试

作者: drangon   发布时间: 2010-08-20

环境变量问题,
你吧/usr/local/bin加入到PATH中,终端1就可以正常执行那个命令了。

作者: davelv   发布时间: 2010-08-20

不是环境变量问题,他另一个新打开的终端是没问题的,

原因在于以前在/usr/bin/下曾经有过程序,被执行了,在bash的命令列表的hash中,
再次执行时候直接找hash,不会再通过环境变量来找程序,

hash -r可以清空这个hash

作者: drangon   发布时间: 2010-08-20

在我的bash上就不会出现这样的问题,楼主的版本如此不智能吗?

作者: davelv   发布时间: 2010-08-20