我有一个奇怪的问题,不幸的是我不知道我做了什么导致了这个问题,因为我在我的Linux(Archlinux,2.6.38内核)上尝试了很多东西。问题是:我的 shell 不再在 /sbin 中找到程序。它看起来像这样:
[chris@myhost ~] insmod
bash: insmod: command not found
[chris@myhost ~] ls -l /sbin/insmod
-rwxr-x-r-x root root 7888 Mar 23 10:14 /sbin/insmod
[chris@myhost ~] /sbin/insmod
-- Works
正如您所看到的,该程序(sbin 中的每个可执行文件都会出现问题)仍然存在,我可以使用 /sbin/name 启动它,只有短名称别名似乎已损坏。我怎样才能解决这个问题?
答案1
这与别名无关。它由PATH
环境变量控制。
在许多系统上,root 有/sbin
和/usr/sbin
in PATH
,但普通用户没有。
如果你想输入insmod
etc而不输入完整路径,你可以输入
PATH=$PATH:/sbin
在您的 shell 设置文件中(例如.bashrc
在您的主目录中)。
或者您可以查看/etc/profile
、/etc/environment
、/etc/login.defs
并查看其设置方式PATH
并在那里进行更改。
查找要查找的文件正在运行grep -R PATH /etc
(或grep -HIRn PATH /etc
)的快速方法。