Answers:
将命令放入~/.bashrc。每次登录时,其中的任何内容都会执行。
如果仅在通过ssh登录时需要运行命令(而在物理登录时不需要),则可以测试是否存在SSH_CONNECTION环境变量,并且仅在发现存在环境变量时才运行命令。
如果希望所有用户都可以将它放在〜/ .bashrc或/etc/bash.bashrc中:
if [[ -n $SSH_CONNECTION ]] ; then
echo "I'm logged in remotely"
fi
screen,则可以使用您的答案并放在screen那里而不是回声。这样做的问题是完成屏幕会话将返回到SSH提示符,而不是注销。不过,只写出此注释就给了我答案:在logout命令后添加screen命令。
exec command将用您运行的任何内容替换当前的shell。
或者,您可以指定要在调用以下命令期间运行的命令ssh:
$ ssh -t server 'cmd; exec bash -l'
列表中的最后一条命令应在您首选的shell中启动一个交互式会话。如果要运行许多命令,请考虑在SSH服务器上创建脚本文件。
其实~/.ssh/rc是为你添加命令运行时,正确的地方,你登录,而不是系统的任何用户。
~/.ssh/rc
Commands in this file are executed by ssh when the user logs in,
just before the user's shell (or command) is started. See the
sshd(8) manual page for more information.
man bash)中的INVOCATION部分。