计算机最开始只有黑白界面,我们通过键盘设备输入字符进行编程等行为进行编程, 让计算机完成我们设定的任务. 随着计算机技术及硬件的发展, 黑白屏幕被图形界面替代, 应用程序的 GUI 界面操作成为主流,
只有远程终端由于带宽占用少,实时性高等优点一直存在到现在. 然后有时由于网络等原因可能导致远程被意外断开,导致我们运行的程序被终止, 这是我们可以采用后台运行的手段进行后台运行,达到程序与终端分离使程序稳定运行.
后台运行能够解决一部分场景, 但是如果涉及到交互程序, 就不能满足需求了, 我这里介绍一个虚拟终端的方案, screen 可以做到后台运行, 不因为物理终端断开而导致程序终止, 具体操作如下.
参用命令:
- 新建终端
screen -S 模拟终端名称
# 如: screen -S abc
- 新建后台执行终端
screen -dmS 模拟终端名称 bash "执行命令"
# 如: screen -dmS abc bash test.sh
-
退出终端
ctrl + A, D -
进入终端
screen -r 模拟终端名称
# 如: screen -r abc
- 停止终端
screen -XS 模拟终端名称 quit
# 如: screen -XS abc quit
上面是对 screen 软件的基础使用, 可能感觉比较麻烦, 可以建立快捷方式命令简化操作, 在 ~/.bash_aliases 中添加 简化命令:
alias scn='screen -S'
alias scnd='screen -dmS'
alias scls='screen -ls'
alias scr='screen -r'function scq(){screen -XS $1 quit
}简化命令的其使用样例及其说明
| 编号 | 命令 | 缩写 | 缩写使用样例 | 说明 |
|---|---|---|---|---|
| 1 | screen -S | scn | scn abc | 创建一个名称为 abc 的虚拟终端,并进入 |
| 2 | screen -dmS | scnd | scnd abc2 bash -c “test” | 创建一个名称为 abc 的虚拟后台终端使用 bash 执行 test 程序 |
| 3 | screen -ls | scls | scls | 参看当前已有终端并显示状态 |
| 4 | screen -r | scr | scr abc | 进入 名称为 abc 的虚拟终端 |
| 5 | screen -XS 名 quit | scq | scq abc | 终止虚拟终端 |
滚动屏幕
进入拷贝模式: ctrl+a [
| 编号 | 命令 | 说明 |
|---|---|---|
| 1 | h | 将光标向左移动一个字符 |
| 2 | j | 将光标向下移动一行 |
| 3 | k | 将光标向上移动一行 |
| 4 | l | 将光标向右移动一个字符 |
| 5 | 0 | 移动到当前行的开头 |
| 6 | $ | 移动到当前行的末尾。 |
| 7 | G | 移动到指定的行 |
| 8 | C-u | 向上滚动半页。 |
| 9 | C-b | 向上滚动一整页。 |
| 10 | C-d | 向下滚动半页。 |
| 11 | C-f | 向下滚动整页。 |
参考:
- 【Linux 后台运行】服务器系列-Screen 的使用教程
- linux 界面怎么滑动,Screen 下如何滚动窗口