迈克的答案可能会起作用。但是值得指出的是,您可以仔细选择要放入详细内容的启动文件来完成此操作。从bash手册页:
当bash作为交互式登录shell或具有--login选项的非交互式shell被调用时,它首先从文件/ etc / profile中读取并执行命令(如果该文件存在)。读取该文件后,它将按该顺序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,并从存在且可读的第一个命令中读取并执行命令。启动外壳程序时,可以使用--noprofile选项禁止此行为。
启动不是登录外壳程序的交互式外壳程序时,如果该文件存在,则bash从〜/ .bashrc读取并执行命令。使用--norc选项可以禁止这种情况。--rcfile file选项将强制bash从文件而不是〜/ .bashrc中读取并执行命令。
sftp / scp工具启动了一个交互式非登录外壳程序,因此将以.bashrc为源。许多发行版都从.bash_profile提取.bashrc,反之亦然,因此可能会引起混淆。测试登录环境整洁度的一个好技巧是使用命令ssh进行插入,该命令模拟了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
。