“警告:语法错误,可能是假的‘-’?”连接到服务器时开始出现

“警告:语法错误,可能是假的‘-’?”连接到服务器时开始出现

当我 ssh 到我的服务器时,我突然看到以下警告。我研究了它,似乎找不到原因,也无法摆脱它。

请问有人可以帮忙吗?

在此输入图像描述

谢谢你!

答案1

ps当您使用诸如 之类的语法时,命令会产生此警告ps -aux。有关如何抑制此警告的讨论,请参阅此 QA:在 Linux 上禁止来自 ps -aux 的警告

警告消息的原因很简单。ps支持三种类型的选项:带有一个破折号 ( -e) 的 POSIX 样式选项、不带破折号的 BSD 样式选项 ( a) 和带有两个破折号 ( --forest) 的 GNU 样式选项。混合不同类型的选项,特别是-auxaux会产生此警告。这在项目常见问题解答:

为什么“ps -aux”抱怨伪造的“-”?

根据 POSIX 和 UNIX 标准,上述命令要求显示带有 TTY 的所有进程(通常是用户正在运行的命令)以及名为“x”的用户拥有的所有进程。如果该用户不存在,则 ps 会假设您真正的意思是“ps aux”。发出该警告是为了温和地改掉您的一个习惯,如果创建了名为“x”的用户,该习惯将会给您带来麻烦。

由于您在登录时看到此内容,因此有问题的ps命令可能位于您的登录配置文件(bashshell 的 ~/.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:-}"

相关内容