マイクの答えはおそらく機能するでしょう。ただし、どのスタートアップファイルに詳細なものを入れるかを慎重に選択することで、これを達成できることを指摘する価値があります。bashのmanページから:
bashが対話型ログインシェルとして、または--loginオプションを使用した非対話型シェルとして起動されると、bashは最初にファイル/ etc / profileが存在する場合、ファイルからコマンドを読み取って実行します。そのファイルを読み取った後、〜/ .bash_profile、〜/ .bash_login、および〜/ .profileをこの順序で探し、最初に存在して読み取り可能なコマンドを読み取って実行します。--noprofileオプションは、この動作を禁止するためにシェルを起動するときに使用できます。
ログインシェルではないインタラクティブシェルが開始されると、bashは〜/ .bashrcからコマンドを読み取り、実行します(そのファイルが存在する場合)。これは、-norcオプションを使用して禁止できます。--rcfile fileオプションは、bashに〜/ .bashrcの代わりにfileからコマンドを強制的に読み取らせて実行させます。
sftp / scpツールは、対話型の非ログインシェルを起動するため、.bashrcが取得されます。多くのディストリビューションは.bash_profileから.bashrcをソースするため、その逆もあります。ログイン環境のクリーン度をテストするための良いコツは、scp / sftp接続と同じ方法をシミュレートするコマンドでsshすることです。たとえば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などが壊れます。2番目のバージョンは問題なく動作します。
.bashrc
、scp
またはのソースになるのか理解できませんssh host command
。