어느 시점에서 이 별칭이 도입되었기 때문에 내 환경이 이상하게 동작하는 것을 발견했습니다
/etc/profile.d/vim.sh
.
$ command -v vim
alias vim='__vi_internal_vim_alias'
파일을 탐색해 보면 /etc/profile.d
필요한 모든 것이 이미 내 안에 있기 때문에 나에게는 아무 소용이 없습니다
.bashrc
. 따라서 로그인 후 Bash는 불필요하게 오염된 상태가 되기 시작합니다. Bash가 디렉토리를 완전히 무시하고 .bashrc
.
이것은 기업 환경이므로 운영 체제를 제어할 수 없으며 내 사용자 계정만 제어할 수 있습니다.
옵션이 있지만 --noprofile
passwd에 추가할 수 없는 것 같습니다.
$ chsh
Changing shell for philipp.
New shell [/bin/bash]
> /bin/bash --noprofile
chsh: "/bin/bash --noprofile" does not exist
SSH를 통해 bash --noprofile
수동으로 추가할 수 있지만 정규 근무일 동안 수백 개가 아니더라도 수십 개의 SSH 연결이 있기 때문에 이는 지루한 일이 됩니다.
Bash가 상단의 해당 설정을 잊어버리고 .bashrc
깨끗한 환경을 계속 사용하도록 할 수 있다면 문제가 되지 않을 것입니다. 내가 피하고 싶은 것은 /etc/profile.d
내가 사용하는 모든 시스템에 추가될 수 있는 정의를 가지고 두더지 잡기 게임을 하는 것입니다.
답변1
제 생각엔 당신이 운이 좋지 않을 수도 있을 것 같아요. chsh
선택할 수 있는 셸을 에 나열된 것으로 제한 /etc/shells
하고 명령줄 인수를 지정할 수 없습니다.
당신이 조사할 수 있는 유일한 것은 /etc/shells
읽을 수 없는 경우를 대비 하여 나열된 다른 쉘을 시도하는 것입니다 /etc/profile.d
. 그러나 이것이 작동한다면 나는 놀랄 것입니다. unalias -a
프로필 스크립트 상단에서 정의된 모든 별칭을 지울 수도 있습니다 .
답변2
"SSH를 통해 bash --noprofile을 수동으로 추가할 수 있습니다"라는 팁을 알려주셔서 감사합니다. 나는 이것을 내 로컬 ~/.ssh/config 파일에 추가하여 "수동으로...지루한" 부분을 피하기 위해 투명하게 만들 수 있다는 것을 발견했습니다. 예를 들어,
# ~/.ssh/config
host myserver
hostname myserver.domain.com
user myname
# Uncomment to choose whether to use login shell or not.
#RemoteCommand bash --login
#RemoteCommand bash --noprofile
RemoteCommand bash
RequestTTY yes
자세한 내용은 다음을 참조하세요.https://superuser.com/questions/1224938/ssh-host-is-a-login-shell-but-ssh-host-command-is-not