2025年linux 命令 tmux 用法详解

linux 命令 tmux 用法详解一 tmux 解决的痛点 screen 命令一样可以解决 但是 tmux 功能更强大 痛点一 大数据传输的漫长一夜 相信做过 Linux 服务运维的同学 都用 scp 进行过服务器间的大文件网络传输 一般这需要很长的时间 这期间 如果工作电脑出现断网或者断电的情况

大家好,我是讯享网,很高兴认识大家。

一、tmux 解决的痛点(screen命令一样可以解决,但是tmux功能更强大)

痛点一:大数据传输的漫长一夜

相信做过 Linux 服务运维的同学,都用 scp 进行过服务器间的大文件网络传输。一般这需要很长的时间,这期间,如果工作电脑出现断网或者断电的情况,则会导致远程连接工具无法与服务器通信,从而使得它所控制的数据传输也因此中断。

情景再现:

localhost:~ roc$ ls -hl total  -rw------- 1 roc staff 17G 1 20 11:06 win7.vdi localhost:~ roc$ scp -P 22000 win7.vdi :/home/roc win7.vdi 0% 7296KB 800.3KB/s 6:19:05

讯享网

一个 17GB 的大文件,刚刚开始传输,预估耗时 6 小时 19 分钟,谁能保证中间不出现关机和断电的情况呢。

有些同学说可以用 nohup 来解决啊,是的,这是一个办法,可是使用 nohup 的问题在于如果同时传输的任务众多,则最后你自己可能都分不清哪个任务对应哪个传输了,何况 nohup 还会留下 nohup.out 这么一个临时文件在那里。

还有同学说,即使中断了,也可以断点续传啊。可惜的是,scp 并不支持断点续传。如果改用 rsync 倒是可以,可惜 rsync 参数用起来很是复杂,谁能保证每位运维工程师都能熟练掌握那么多复杂的参数呢?这个时候,请试一试 tmux 吧!


痛点二:正在编译却被拉去开会

和大文件数据传输情况类似,一些大型的开发项目的代码编译过程,往往也需要很长的时间,短则几分钟,长则一通宵。对于一通宵的编译来说,这要是中间出现断网断电,那就相当悲剧了。整个项目进展就又要向后推迟至少一天。这个时候,我们向你推荐 tmux!

痛点三:多个窗口切换到晕

作为运维工程师,一定有过在众多窗口间切换,查看各种服务器上的信息和状态的情况,这个时候,如果没有一款好用的窗口管理软件,过不了多久,你就会晕头转向了。就像图 2 所示的这种情况。


讯享网

痛点四:一屏显示多窗口之殇

有时候为了进行多文件内容对比,如果没有一款很好用的分屏管理工具,那么我们只好创建多个终端,然后手动调整它们的大小和位置,如图 3 所示。

二、tmux 命令安装、配置及窗口元素介绍

1. 命令安装

讯享网$ sudo apt-get install tmux 

打开tmux 运行该命令会新建一个窗口为0,此时窗格就是窗口的默认会话,会话名默认为0,也可以自定义会话名字,这个后面会说到。

$ tmux 

按下Ctrl+d或者显式输入exit命令,就可以退出 Tmux 窗口

2. 配置

讯享网//18.04配置 #below reset tmux prefix command key set -g prefix C-x unbind C-b bind C-x send-prefix #set swap pane key bind-key k select-pane -U bind-key j select-pane -D bind-key h select-pane -L bind-key l select-pane -R set-option -g mouse on

tmux命令窗口鼠标滚轮滚动出现^[[A^[[A^[[A^[[A^[[A^[[A^,所以需要添加:

set-option -g mouse on

在14.04上会出现鼠标不能选取窗口或则滚轮滚动窗口,故将:

讯享网set-option -g mouse on

替换为

setw -g mode-mouse on set -g mouse-select-pane on set -g mouse-resize-pane on set -g mouse-select-window on

执行:

讯享网tmux source-file ~ .tmux.conf

重新加载当前的Tmux配置,使配置生效。

此设置的另一个副作用是我无法再以通常的方式进行鼠标选择 - 必须用鼠标左键按 Shift。

解决方式:

.tmux.conf 添加(参考:Mouse scrolling and selection in terminal with tmux - Stack Overflow):

set -g terminal-overrides 'xterm*:smcup@:rmcup@' #其中 xterm* 是终端在 $TERM 环境变量中报告自身的内容。如果您以交互方式设置该选项,您可能需要分离、重置终端并重新连接才能正常工作。 #注意:如果您使用 termcap 而不是 terminfo,请使用 ti 和 te 而不是 smcup/rmcup .

 

为了使自身的快捷键和其他软件的快捷键互不干扰,Tmux 提供了一个快捷键前缀。当想要使用快捷键时,需要先按下快捷键前缀,然后再按下快捷键。Tmux 所使用的快捷键前缀默认是组合键 Ctrl-b(同时按下 Ctrl 键和 b 键)。例如,假如你想通过快捷键列出当前 Tmux 中的会话(对应的快捷键是 s),那么你只需要做以下几步:

讯享网• 按下组合键 Ctrl-b (Tmux 快捷键前缀) • 放开组合键 Ctrl-b • 按下 s 键

3. 窗口元素介绍

三、常用操作

1.  会话操作

tmux new -s <session-name> 新建会话 tmux detach 分离会话 tmux ls 查看当前所有的Tmux会话 tmux a -t 0 使用会话编号 tmux a -t <session-name> 使用会话名称 tmux kill-session -t 0 使用编号 tmux kill-session -t <session-name> 使用会话名称 tmux switch -t 0 使用会话编号 tmux switch -t <session-name> 使用会话名称 tmux rename-session -t 0 <new-name> 重命名会话

session 总结

session 在 tmux 操作当中非常重要,希望你可以熟练的使用以上操作:

新建 session -> 离开 session -> 查看 session 列表 -> 进入 session -> 关闭 session -> 不同 session 之间的切换 -> 重命名 session。

2. 窗格操作

讯享网Ctrl+b % 划分左右两个窗格 Ctrl+b " 划分上下两个窗格 Ctrl+b <arrow key> 光标切换到其他窗格 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+<arrow key> 按箭头方向调整窗格大小 Ctrl+b q 显示窗格编号 ctrl+b :selectp -t 0 跳转到编号为0的窗格

3. 窗口操作

tmux new-window-n <window-name> 新建窗口 tmux select-window -t <window-number> 切换窗口 tmux select-window -t <window-name> 切换到指定名称的窗口 tmux rename-window <new-name> 重命名窗口

4. 其他命令

讯享网tmux list-keys 列出所有快捷键,及其对应的 Tmux 命令 tmux list-commands 列出所有Tmux命令及其参数 tmux info 列出当前所有Tmux会话的信息 kill-server   关闭所有会话

小讯
上一篇 2025-03-12 14:53
下一篇 2025-02-19 07:35

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/129544.html