Linux 会话管理

庆云1年前技术文章421


在 terminal 终端中输入命令,这种用户与计算机的临时交互称为一次会话(session)。

会话的一个重要特点:与其中启动的进程是连在一起的,打开窗口、会话开始,关闭窗口、会话结束,会话内部的进程也会随之终止。

当有时候我们正在执行命令时,突然网络断线了,再次登陆是找不回上一次执行的命令的,因为上一次会话窗口已经终止了,进程也随之消失了。为了解决这个问题,会话可以与窗口解绑,窗口关闭时,会话并不终止,而是继续运行,等到需要的时候,再让会话绑定窗口。

终端复用器软件(Screen, Tmux)就是会话与窗口的解绑工具:

  1. 它允许在单个窗口中,同时访问多个会话,这对于同时运行多个命令程序很有用。

  2. 他可以让新窗口接入已存在的会话。

  3. 它允许每个会话有多个连接窗口,因此可以多人实时共享会话。

  4. 它还支持窗口任意的垂直和水平拆分。

1、Screen

利用 screen 可以实现会话管理(新建会话、共享会话等)。

  • 创建会话

    • screen -S [SESSION]

  • 加入会话

    • screen -x [SESSION]

  • 退出关闭会话

    • exit

  • 剥离当前会话

    • Ctrl+a,d

  • 显示所有会话

    • screen -ls

  • 恢复某会话

    • screen -r [SESSION]


实例:

"新建会话"
$ screen -S assist
"查看会话"
$ screen -ls
There is a screen on:
        8925.assist     (Attached)
1 Socket in /var/run/screen/S-root.

"加入会话"
$ screen -x assist

1.png1.png

2、Tmux

Tmux 也是一个终端复用器(terminal multiplexer),类似 screen,但是更易用、更强大。

  • 启动:tmux

  • 退出:exit

Tmux 窗口有大量的快捷键,所有的快捷键都要通过前缀键唤起。默认的前缀键是:Ctrl+b,即先按下 Ctrl+b,快捷键才会生效。帮助命令的快捷键是 Ctrl+b,?,按下 q 键退出帮助。

  • 列出所有的快捷键,及对应的 Tmux 命令

    • tmux list-keys

  • 列出所有的 Tmux 命令及其参数

    • tmux list-commands

2.1 会话管理

新建会话:

第一个启动的 Tmux 窗口编号是 0,第二个是 1,以此类推。使用编号区分会话不太直观,更好的方法是为会话起名。

$ tmux new -s <session-name>


查看会话:

tmux ls 或 Ctrl+b, s 可以查看当前所有的 Tmux 会话。

$ tmux ls
$ tmux list-session


分离会话:

在 Tmux 窗口中,按下 Ctrl+b,d 或者输入 tmux detach 命令,就会将当前会话与窗口分离。

$ tmux detach


接入会话:

tmux attach 命令用于重新接入某个已存在的会话。

$ tmux attach -t <session-name>


杀死会话:

tmux kill-session 命令用于杀死某个会话。

$ tmux kill-session -t <session-name>


切换会话:

tmux switch 命令用于切换会话。

$ tmux switch -t <session-name>

2.2 窗格管理

可以将窗口分成多个窗格(pane)。每个窗格运行不同的命令。

  • 上下分窗格:Ctrl+b, "

$ tmux split-window
  • 左右分窗格:Ctrl+b, %

$ tmux split-window -h
  • 切换窗格:Ctrl+b,方向键

2.png

窗格快捷键:

快捷键

说明

Ctrl+b, %

划分左右两个窗格

Ctrl+b, "

划分上下两个窗格

Ctrl+b, 方向键

切换到其他窗格

Ctrl+b, ;

切换到上一个窗格

Ctrl+b, o

切换到下一个窗格

Ctrl+b, {

当前窗格左移

Ctrl+b, }

当前窗格右移

Ctrl+b, Ctrl+o

当前窗格上移

Ctrl+b, Alt+o

当前窗格下移

Ctrl+b, x

关闭当前窗格

Ctrl+b, !

将当前窗格拆分为一个独立的窗口

Ctrl+b, z

当前窗格全屏显示,再使用一次会变成原来大小

Ctrl+b, Ctrl+方向键

按箭头方向调整窗格大小

Ctrl+b, q

显示窗格编号

2.3 窗口管理

除了将一个窗口划分成多个窗格,Tmux 也允许新建多个窗口。

新建窗口:

tmux new-window 命令用来创建新窗口。

$ tmux new-window
$ tmux new-window -n <window-name>

切换窗口:

tmux select-window 命令用于切换窗口。

$ tmux select-window -t <window-number>
$ tmux select-window -t <window-name>


窗口快捷键:

快捷键

说明

Ctrl+b, c

创建一个新窗口,状态栏显示多个窗口信息

Ctrl+b, p

按状态栏窗口顺序,切换到上一个窗口

Ctrl+b, n

切换到下一个窗口

Ctrl+b, <number>

切换到指定编号的窗口

Ctrl+b, w

从表格中选择窗口

Ctrl+b, ,

窗口重命名


相关文章

开源大数据集群部署(十二)Ranger 集成 hive

开源大数据集群部署(十二)Ranger 集成 hive

1、解压安装在hd1.dtstack.com主机上执行(一般选择hiveserver2节点)Ø 解压ranger-2.3.0-hive-plugin.tar.gz[root@hd1.dtstack.c...

Python 调用阿里云 OpenAPI 巡检到期云资源

Python 调用阿里云 OpenAPI 巡检到期云资源

前言本篇文章介绍我写的一个程序,通过调用阿里云 OpenAPI 巡检即将到期的云资源。https://github.com/COOH-791/cloud_instance_sentry1. 用途说到云...

Linux SSSD同步多ou用户

Linux SSSD同步多ou用户

1、背景在使用AD作为ldap服务器,使用sssd同步用户到服务器,但是AD中用户过多,分布在不同部门的ou中。如果全部进行同步,则会对ad服务器压力过大,用户缓存同步缓慢。需要能够指定多个ou进行同...

Containerd OCI runtime create failed

Containerd OCI runtime create failed

1、背景Kubernetes 集群新增 worker 节点(centos7、containerd),发现容器一直启动不起来。2、报错信息经查看系统 message 日志发现如下报错信息:rpc err...

SQL Server优化入门系列(四)——  找到Top SQL

SQL Server优化入门系列(四)—— 找到Top SQL

说明从会话信息中我们可以查看实例当前正在运行的SQL、当前被Block的SQL。但是如果要查看过去一段时间执行的SQL,我们有几个选择1、通过外部SQL审计平台记录所有SQL。2、通过SQL Serv...

聊一聊DevOps工具

聊一聊DevOps工具

DevOps工具越来越多,了解它们以及知道在什么时候使用他们越来越重要。因此,尝试做一些研究,以便我们可以将DevOps产品分类为大家都熟悉的类别或用途。在开始讨论DevOps工具和类别之前,让我们了...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。