"경고: 구문 오류입니다. 서버에 연결할 때 '-'가 거짓일 수 있습니까?"

"경고: 구문 오류입니다. 서버에 연결할 때 '-'가 거짓일 수 있습니까?"

내 서버에 SSH로 접속할 때 갑자기 다음 경고가 표시됩니다. 검색해봐도 원인을 찾을 수 없고 제거할 수도 없는 것 같습니다.

누구든지 도와주실 수 있나요?

여기에 이미지 설명을 입력하세요.

감사합니다!

답변1

ps다음과 같은 구문을 사용할 때 이 명령은 이 경고를 생성합니다 ps -aux. 이 경고를 억제하는 방법에 대한 설명은 이 QA를 참조하세요.Linux에서 ps -aux의 경고 억제

경고 메시지가 나타나는 이유는 간단합니다. ps세 가지 유형의 옵션이 지원됩니다. -e대시가 1개 있는 POSIX 스타일 옵션( ), 대시가 없는 BSD 스타일 옵션( ), a대시가 2개 있는 --forestGNU 스타일 옵션입니다 . 특히 다양한 유형의 옵션을 혼합하면 이 경고가 생성 -aux됩니다 . aux이것은프로젝트 FAQ:

"ps -aux"가 가짜 "-"에 대해 불평하는 이유는 무엇입니까?

POSIX 및 UNIX 표준에 따르면 위 명령을 사용하려면 TTY가 있는 모든 프로세스(일반적으로 사용자가 실행 중인 명령)가 표시되어야 하고 "x"라는 사용자가 소유한 모든 프로세스가 필요합니다. 사용자가 존재하지 않으면 ps는 실제로 "ps aux"를 의미한다고 가정합니다. 이 경고는 "x"라는 이름의 사용자가 생성될 경우 문제를 일으킬 수 있는 습관을 부드럽게 없애기 위해 발행됩니다.

로그인할 때 이 내용이 표시되므로 문제의 명령이 ps로그인 프로필( bash쉘의 ~/.bash_profile) 내에 있을 수 있습니다.

답변2

이 버그는 특히 Homebrew와 관련이 있습니다.이 줄. 대신 psc플래그를 사용할 수 있습니다 -c.

eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)지시문은 PATH 변수의 올바른 형식을 내보내는 데 사용하는 SHELL을 평가합니다.

이 오류가 발생하면 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:-}"

관련 정보