
사용자를 변경할 때마다 su myName
항상 이 3가지 오류가 발생합니다.
-bash: zstyle: command not found
-bash: autoload: command not found
-bash: compinit: command not found
이는 일반 사용자로 전환할 때만 발생합니다. 어떻게 제거합니까?
체계:
- 아치 x86_64
- 터미널: Bash(이전에 zsh를 사용해 보았으나 제거함)
편집하다:bash
방금 콘솔에서 실행할 때도 동일한 오류가 발생했습니다.
답변1
그림에서 알 수 있듯이-세게 때리다su
시작하려고 시도한 출력의 각 행을 시작합니다.로그인쉘(1).
즉, /etc/profile, myName_Home_Dir/.bash_profile, myName_Home_Dir/.bash_login 및 myName_Home_Dir/.profile을 읽고 거기에 있는 명령이 실행됩니다.
따라서 우리는 zstyle
, autoload
및 compinit
가 위 파일 중 하나에 의도하지 않게 남겨진 명령이라고 가정할 수 있습니다. 이전에 다른 셸을 사용한 경우 /etc/profile 또는 myName_Home_Dir/.profile일 가능성이 높습니다.
(1) 지적한 바와 같이자일스su myName
아래 댓글에서 실제로 말씀하신 것과 같다면 su myName
하나만 실행되어야 하므로 그렇게 되어서는 안 됩니다.인터렉티브쉘 (지침을 읽지 마십시오 /etc/profile
) myName_$HOME/.profile
. 따라서 귀하는 로그인 쉘을 명시적으로 트리거하는 것과 동의어를 거의 요구하고 있습니다 su - myName
.su --login myName