Linux 会话管理

庆云2周前技术文章43


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

窗口重命名


相关文章

企业级大数据安全架构(一)

前言1.企业级大数据平台安全隐患目前企业级大数据平台面临的一些安全隐患,只要将这些安全隐患全部解决之后才可以部署到生产环境去使用,因此安全性是大数据平台必备的能力之一。1.1缺乏统一的访问控制机制大数...

CPU及磁盘性能监测

CPU及磁盘性能监测

一、简述sysstat 包含了常用的 Linux 性能工具,用来监控和分析系统的性能。本次内容会用到这个包的两个命令 mpstat 和iostat。mpstat 是一个常用的多核 CPU 性能分析工具...

容器引擎Podman常用命令浅析

容器引擎Podman常用命令浅析

Podman简介Podman 是一个开源的无守护进程的容器引擎,用于在Linux系统上开发、管理和运行OCI容器。容器既可以以root身份运行,也可以在无root模式下运行。Podman 提供与 Do...

Linux命令traceroute—追踪网络路由利器

说明:通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能...

CDH实操--hive高可用

CDH实操--hive高可用

前言在CDH中,hive metastore、hiveserver2若角色单实例部署,或者部署多个实例但是连接配置任选其一的话,均存在单点问题,一旦实例故障就会影响业务稳定;这时我们就好考虑高可用部署...

CDP实操--HDFS角色迁移

CDP实操--HDFS角色迁移

    hdfs角色迁移功能在cdp页面中就可以实现该功能,迁移的时间与namenode元数据大小,以及block数量多少有关,注意迁移过程中集群需要关闭,要预留出操作时间窗口。1、页面选择迁移角色2...

发表评论    

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