Skip to main content

Screen And Tmux

·2 mins
Linux
Table of Contents

记录一下经常使用的一个工具, 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 <会话名>



Comments