答案1
ps
当您使用诸如 之类的语法时,命令会产生此警告ps -aux
。有关如何抑制此警告的讨论,请参阅此 QA:在 Linux 上禁止来自 ps -aux 的警告
警告消息的原因很简单。ps
支持三种类型的选项:带有一个破折号 ( -e
) 的 POSIX 样式选项、不带破折号的 BSD 样式选项 ( a
) 和带有两个破折号 ( --forest
) 的 GNU 样式选项。混合不同类型的选项,特别是-aux
和aux
会产生此警告。这在项目常见问题解答:
为什么“ps -aux”抱怨伪造的“-”?
根据 POSIX 和 UNIX 标准,上述命令要求显示带有 TTY 的所有进程(通常是用户正在运行的命令)以及名为“x”的用户拥有的所有进程。如果该用户不存在,则 ps 会假设您真正的意思是“ps aux”。发出该警告是为了温和地改掉您的一个习惯,如果创建了名为“x”的用户,该习惯将会给您带来麻烦。
由于您在登录时看到此内容,因此有问题的ps
命令可能位于您的登录配置文件(bash
shell 的 ~/.bash_profile)内。
答案2
该错误与 Homebrew 有关,具体来说这条线。您ps
可以改用该c
标志-c
。
该eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
指令评估您使用哪个 SHELL 来导出有关 PATH 变量的正确格式:
当我收到此错误时,我手动定义brew
我的变量~/.bashrc
:
export HOMEBREW_PREFIX=${HOMEBREW_PREFIX};
export HOMEBREW_CELLAR=${HOMEBREW_CELLAR};
export HOMEBREW_REPOSITORY=${HOMEBREW_REPOSITORY}
export HOMEBREW_SHELLENV_PREFIX=${HOMEBREW_PREFIX}
export PATH=${HOMEBREW_PREFIX}/bin:${HOMEBREW_PREFIX}/sbin${PATH+:$PATH}
export MANPATH="${HOMEBREW_PREFIX}/share/man${MANPATH+:$MANPATH}:"
export INFOPATH="${HOMEBREW_PREFIX}/share/info:${INFOPATH:-}"