방금 원격 서버에 ZSH를 설치했고 우리는 2명의 "관리자"입니다. 나는 그것을 증명하는 출력을 제공 하는 chsh -s $(which zsh)
. 그러나 SSH 세션을 열면 다음과 같은 오류가 발생합니다.echo $SHELL
/usr/bin/zsh
/etc/profile.d/vk.sh:30: command not found: shopt
이 오류는 시작 시에만 발생하며 SSH 세션을 열 때 한 번만 표시됩니다.
내가 이해한 바에 따르면 다른 관리자는 자신의 별칭을 사용하여 일부 사용자 정의 스크립트를 배치하고 shopt -s histappend
거기에서 명령을 사용했습니다.
내 질문은 내 SSH ZSH 세션이 시작 시 이 스크립트를 호출하는 이유는 무엇입니까? 그 범위가 내 프로필로 제한되어서는 안 되나요?
그의 작업에 영향을 주거나 건드리지 않고 ZSH를 실행할 수 있는 우아한 솔루션은 무엇입니까? 그 사람에게 홈 디렉토리의 다른 곳으로 옮겨달라고 요청해야 할까요?
답변1
이 /etc/profile
파일에는 시스템 전체 구성 파일 설정이 포함되어 있습니다. 이 파일에는 많은 배포판이 있습니다 /etc/profile.d
. 따라서 모든 대화형 로그인은 이 폴더의 내용을 호출합니다. 프로필 스크립트의 범위를 하나의 계정으로만 지정하려면 다음을 수행해야 합니다.
해당 스크립트를
~/.profile
또는~/.bash_profile
(bash 사용자의 경우) 로 이동하거나vk.sh
로그인한 사용자를 기준으로 실행을 건너뛰는 로그인 기능을 추가했습니다 .