마이크의 대답은 아마 효과가있을 것입니다. 그러나 자세한 내용을 넣을 시작 파일을 신중하게 선택 하여이 작업을 수행 할 수 있음을 지적하는 것이 좋습니다. bash 매뉴얼 페이지에서 :
bash가 대화식 로그인 쉘 또는 --login 옵션을 사용하는 비 대화식 쉘로 호출되면 파일이 존재하는 경우 먼저 / etc / profile 파일에서 명령을 읽고 실행합니다. 해당 파일을 읽은 후 ~ / .bash_profile, ~ / .bash_login 및 ~ / .profile을 순서대로 찾고 존재하고 읽을 수있는 첫 번째 파일에서 명령을 읽고 실행합니다. 이 동작을 막기 위해 쉘을 시작할 때 --noprofile 옵션을 사용할 수 있습니다.
로그인 쉘이 아닌 대화식 쉘이 시작될 때 bash는 ~ / .bashrc에서 해당 파일이있는 경우 명령을 읽고 실행합니다. --norc 옵션을 사용하여이를 방지 할 수 있습니다. --rcfile 파일 옵션은 bash가 ~ / .bashrc 대신 파일에서 명령을 읽고 실행하도록합니다.
sftp / scp 도구는 대화식 비 로그인 셸을 시작하므로 .bashrc가 제공됩니다. 많은 배포판이 .bash_profile에서 .bashrc를 소스로 또는 그 반대로 소스를 혼동하므로 혼동 될 수 있습니다. 로그인 환경의 청결도를 테스트하는 좋은 방법은 scp / sftp가 연결하는 것과 동일한 방법으로 시뮬레이션하는 명령을 사용하는 것입니다. 예를 들어 : ssh myhost /bin/true
scp / sftp가 연결될 때 표시되는 내용을 정확하게 보여줍니다.
간단한 데모 :
insyte@mazer:~$ echo "echo Hello from .profile" > .profile
insyte@mazer:~$ echo "echo Hello from .bashrc" > .bashrc
sazerac:~ insyte$ ssh mazer /bin/true
Hello from .bashrc
sazerac:~ insyte$
insyte@mazer:~$ rm .bashrc
sazerac:~ insyte$ ssh mazer /bin/true
sazerac:~ insyte$
첫 번째 테스트는 scp / sftp / rsync 등을 중단시킵니다. 두 번째 버전은 잘 작동합니다.
.bashrc
소스가 될지 이해하지 못합니다 .scp
ssh host command