Linux 会话管理

庆云2年前技术文章507


在 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, ,

窗口重命名


相关文章

MySQL运维实战(2.4) SSL认证在MySQL中的应用

MySQL支持使用tls进行通信。tls主要有几个作用对客户端、服务端之间的通信数据进行加密。包括客户端发往服务端的SQL,服务端返回给客户端的数据。客户端可以验证服务端的身份。服务端也可以验证客户端...

REPMGR-PG高可用搭建(二)

REPMGR-PG高可用搭建(二)

REPMGR搭建步骤一、介绍repmgr是第二象限开源的一套流复制集群管理工具,用于管理PostgreSQL服务器群集中的复制和故障转移。 支持故障自动转移和手动切换;支持分布式管理集群节点,易扩展,...

开源大数据集群部署(十四)Ranger集成Hbase

开源大数据集群部署(十四)Ranger集成Hbase

在hd1.dtstack.com主机上执行在hmaster和back master上进行安装和执行Ø 解压ranger-2.3.0-hbase-plugin[root@hd1.dtstack.com ...

MySQL运维实战之备份和恢复(8.1)xtrabackup全量备份

xtrabackup是percona开源的mysql物理备份工具。xtrabackup 8.0支持mysql 8.0版本的备份和恢复。xtrabackup 2.4支持mysql 5.7及以下版本的备份...

pod内无法访问slb的监听

pod内无法访问slb的监听

问题背景在A账号下的k8s集群中有个nginx 应用,需要去访问B账号下内网slb代理的一个服务。B账号下的slb有多条监听,测试发现只有个别监听可以telnet通,其余监听telnet均不通。可能是...

Ansible部署和使用(sshpass)

Ansible部署和使用(sshpass)

简介Ansible默认通过 SSH 协议管理机器。安装Ansible之后,不需要启动或运行一个后台进程,或是添加一个数据库。只要在一台电脑(可以是一台笔记本)上安装好,就可以通过这台电脑管理一组远程的...

发表评论    

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