
摘要: 使用screen命令的基本方法和原理
Shell
是操作系统的外层接口(如同“壳”包裹内核),用户通过它输入命令,由Shell解析后调用内核功能(如文件管理、进程控制)。例如,执行ls
命令时,Shell会将其转化为系统调用,获取目录信息并返回结果。
在登陆Linux系统后,Shell会自动启动并等待用户输入命令。用户可以通过Shell与操作系统进行交互,执行各种操作。使用ctrl + alt + T
打开一个Non-login Shell
终端窗口。
此时,如果你使用./
或者bash
执行一个shell脚本,Shell会创建一个新的子进程来执行该脚本。当脚本执行完毕后,子进程会退出,Shell会返回到原来的父进程中。
使用.
或者source
执行一个shell脚本的话,Shell会在当前进程中逐行执行该脚本。
因此,想要在一个shell中持续使用一个脚本中配置的环境变量,必须使用.
或者source
命令来执行该脚本。
数值模拟通常需要使用ssh
远程登陆服务器,而ssh
连接的会话是临时的,一旦断开连接,正在运行的程序也会被终止。为了避免这种情况,我们可以使用screen
命令来创建一个虚拟终端会话。
screen
命令可以在一个终端窗口中创建多个虚拟终端会话,并且可以在不同的会话之间切换。即使我们断开了与服务器的连接,正在运行的程序也不会受到影响。
远程连接服务器之后,我们可以使用screen
命令创建一个新的虚拟终端会话。然后在该会话中用source
命令配置环境变量。这样操作的优点在于:不会扰乱服务器中的环境变量配置。
screen -S session_name
:创建一个新的虚拟终端会话,并命名为session_name;ctrl + A + D
:将当前会话分离(detach)并返回到原来的父进程中;screen -r session_name
:重新连接到指定的会话;screen -D session_name
:强制分离指定的会话(Attached)并重新连接;screen -ls
:列出所有的会话;screen -S session_name -X quit
:清除已经分离的会话;