最近安装了 CentOS,许多命令不起作用:
[root@zrebirth zeno]# quotacheck
bash: quotacheck: command not found
[root@zrebirth zeno]# adduser
bash: adduser: command not found
[root@zrebirth zeno]# warnquota
bash: warnquota: command not found
[root@zrebirth zeno]# edquota
bash: edquota: command not found
但它们都存在,所以它们一定没有联系:
/sbin/quotacheck
/usr/sbin/adduser
/usr/sbin/warnquota
/usr/sbin/edquota
我确信还有更多。有没有办法可以快速修复所有这些问题(即使是我不知道的问题),而不用手动修复每一个问题?
答案1
看来你只需要修改你的 $PATH。以下文章将介绍如何做到这一点。
在我的默认 CentOS 安装中,它仅将 /bin 作为我的路径。因此,如果我想输入 /bin 路径之外的任何其他命令,我需要完整输入命令(例如“/sbin/command”)或同时添加这些路径。
[blah~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
答案2
来自 centos 文档(http://wiki.centos.org/TipsAndTricks/BecomingRoot):
普通用户的命令大多位于 /usr/local/bin、/usr/bin 和 /bin 中。但是,root 命令大多位于 /usr/local/sbin、/usr/sbin 和 /sbin 中,root 的 PATH 反映了这一点。当您使用“su -”成为 root 时,您也会采用 root 的 PATH,而仅使用“su”会保留原始用户的 PATH,因此,仅使用“su”成为 root 并尝试运行位于 /usr/local/sbin、/usr/sbin 或 /sbin 中的命令会导致“命令未找到”错误。有关更详细的说明,请参阅 bash 手册页 (man bash),特别是有关 INVOCATION 和登录 shell 的部分。
您需要使用“su -”而不是“su”。