~에서배쉬 매뉴얼
원격 쉘 데몬에 의해 호출됨
Bash는 원격 셸 데몬(일반적으로 rshd) 또는 보안 셸 데몬 sshd에 의해 실행되는 경우와 같이 네트워크 연결에 연결된 표준 입력을 사용하여 실행 중인지 확인하려고 시도합니다. Bash가 이런 방식으로 실행 중이라고 판단하면
~/.bashrc
파일이 존재하고 읽을 수 있으면 명령을 읽고 실행합니다 . sh로 호출하면 이 작업이 수행되지 않습니다. 이--norc
옵션을 사용하면 이 동작을 억제할 수 있고,--rcfile
다른 파일을 강제로 읽는 데 사용할 수 있습니다. 그러나 rshd나 sshd는 일반적으로 이러한 옵션을 사용하여 셸을 호출하거나 지정을 허용하지 않습니다.
쉘은 로그인 또는 비로그인을 통해 ssh username@server
제공 됩니까?
로그인 쉘이라면 bash 매뉴얼에 따라 from 명령을 실행하는 ~/.profile
대신 from 명령을 실행하면 어떨까요?~/.bashrc
감사해요.
내 OS는 Ubuntu 16.04이지만 bash 매뉴얼은 OS와 관련이 없습니다.
답변1
SSH는 다음에서 언급한 대로 로그인 셸을 시작합니다.맨페이지:
만약주문하다지정되면 로그인 쉘이 아닌 원격 호스트에서 실행됩니다.
Bash에서 이를 확인할 수 있습니다.
shopt login_shell
로그인 쉘로 실행 중인지 여부가 표시됩니다.
Bash는 인용한 섹션에 설명된 대로 로그인 셸이든 다른 방식이든 원격으로 시작할 때 작동합니다. 당신이 비교하는 행동은대화형 쉘, 원격 쉘은 .bashrc
대화형 로그인 쉘 동작 위에 처리를 추가합니다.
Ubuntu 시스템에는 일반적으로 .bash_profile
우선 순위가 높은 스크립트가 있으며 일반적 으로 소스 코드도 .profile
있습니다 ..bash_profile
.bashrc