记录一下经常使用的一个工具, screen 和 tmux。 两者实现的功能是一致的,创建多个命令行 session, 可以将未完成的任务挂起(任务在后台运行)连接串口设备等,我目前经常使用的就是创建多个会话,挂起和会话恢复。
screen #
最早我是在 CenOS 上使用这个命令, 使用yum -y install screen
直接进行安装。
没 yum 源的可以搜一下安装包使用 rpm 安装:
//Yum
[root@nso ~]# yum -y install screen
//rpm
[root@nso ~]#wget http://mirror-hk.koddos.net/centos/7.8.2003/os/x86_64/
Packages/screen-4.1.0-0.25.20120314git3c2946.el7.x86_64.rpm
[root@nso ~]#rpm -ivh screen-4.1.0-0.25.20120314git3c2946.el7.x86_64.rpm
配置文件为/etc/screenrc
, 或者~/.screenrc
有三种方式可以记录会话 log:
// Way 1: add -L to enable session log
// it will auto generate a log file at user home folder $HOME with name session title name
[root@xuxing ~]# screen -S -L test
// Way 2: create a normal session , type Ctrl+a, H to enable session log
// it will be stored at user home folder too
[root@xuxing ~]# screen -S test
> Ctrl+a, H
// Way 3: customize session log save folder by modify config file
[root@server1 ~]# grep logfile /etc/screenrc
logfile /var/log/screen/screenlog_%S_%t_%Y_%m_%d_%c.%n.log
[root@xuxing ~]# screen -S -L test
一些常用的命令:
// 新建一个自定义会话名的session
screen -S <会话名>
// 显示所有的screen 会话
screen -ls
//恢复会话
screen -r <会话名或id>
# 挂起会话
Ctrl - a + d
// 删除会话
[root@xuxing ~]# screen -ls
There are screens on:
15741.test (Detached)
5971.pts-2.xuxing (Detached)
4485.pts-2.xuxing (Detached)
4409.pts-0.xuxing (Detached)
25997.9922a (Detached)
5 Sockets in /var/run/screen/S-root.
[root@xuxing ~]# kill -9 15741
[root@xuxing ~]# screen -ls
There are screens on:
15741.test (Dead ???)
5971.pts-2.xuxing (Detached)
4485.pts-2.xuxing (Detached)
4409.pts-0.xuxing (Detached)
25997.9922a (Detached)
Remove dead screens with 'screen -wipe'.
5 Sockets in /var/run/screen/S-root.
[root@xuxing ~]# screen -wipe <<<<<<
tmux #
Mac 上没有 screen 这个工具, 找到了一个类似的工具 tmux, brew install tmux
// 新建一个自定义会话名的session
tmux new -s <会话名>
// 显示所有的screen 会话
tmux ls
//恢复会话
screen a -t <会话名>
# 挂起会话
Ctrl + b d
# 结束会话
tmux kill-session -t <会话名>