bash中的别名的多个命令,当第一个是ssh时
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bash中的别名的多个命令,当第一个是ssh时相关的知识,希望对你有一定的参考价值。
This question有一个很好的答案,如何将多个命令放在bash的别名中。
但是,如果您首先需要ssh到服务器,然后执行更改目录然后启动jupyter笔记本,您将如何做?
我尝试过类似的东西:
alias shortcut='ssh user@server -p 1234 -L 5678:localhost:91011; cd ~/somedir; jupyter notebook --ip=127.0.0.1
也许是因为我的ssh要求我输入密码,最后2个命令没有被执行。
如果系统配置允许,有一些可能的改进以进一步方便。
如果您需要在远程主机上执行一系列命令,并且需要经常重复这些命令,则将命令放在自己的shell脚本中并将其放在远程主机上是合理的。
例如,在这种情况下,脚本可能只是
#!/bin/sh
cd ~/somedir && jupyter notebook --ip=127.0.0.1
将它们保存在文件中,向其添加执行位,然后就可以像ssh user@server -p 1234 -L 5678:localhost:91011 path/to/script.sh
一样启动会话
这在this question中有所涉及,但我首选的方法是将脚本放在远程上的低分 - 我希望每个资源都驻留在它们所属的位置。
关于开始会话后你想做什么也有问题。似乎该命令是启动运行Jupyter Web服务的服务器进程。如果您只想在监视服务器的同时保持SSH会话,那么简单命令就足够了。但是如果你想让服务器保持在后台并记录输出(并且可能暂时离开SSH会话),可以使用nohup
运行服务器并重定向其输出,方法是输入类似的脚本
nohup jupyter notebook --ip="127.0.0.1" >> stdout.log 2>> stderr.log &
echo "$!" > jupyter-notebook.pid
第二个命令将PID保存在文件中,以便以后检查或终止它更容易,而无需手动搜索后台进程。
以上是关于bash中的别名的多个命令,当第一个是ssh时的主要内容,如果未能解决你的问题,请参考以下文章
通过 ssh 会话执行 bash 别名 | Linux 中国