linux 命令 tmux 用法详解

这篇具有很好参考价值的文章主要介绍了linux 命令 tmux 用法详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

情景再现:

localhost:~ roc$ ls -hl
total 36419584
-rw-------  1 roc  staff    17G  1 20 11:06 win7.vdi
 
localhost:~ roc$ scp -P 22000 win7.vdi roc@roclinux.cn:/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 所示的这种情况。

tmux,linux,linux,运维,服务器

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

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

tmux,linux,linux,运维,服务器

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

1. 命令安装

$ sudo apt-get install tmux

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

$ tmux

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

2. 配置

首先,如果你有一个已有的 tmux 配置文件,请对其进行备份。tmux 的配置文件是 ~/.tmux.conf
特别是要配置鼠标操作,这部分很重要不然记不住切换的一些命令

//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. 窗口元素介绍

tmux,linux,linux,运维,服务器

三、常用操作

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。文章来源地址https://www.toymoban.com/news/detail-848783.html

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                    关闭所有会话

到了这里,关于linux 命令 tmux 用法详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu服务器上使用tmux

    (1)服务器上安装 $ sudo apt-get install tmux (2)新建会话 (之后可以正常运行程序) $ tmux new -s session_name (3)查看当前所有的tmux会话 $ tmux ls (4)退出当前tmux会话窗口 (会话仍保留) $ 先ctrl+b, 后按d or  $ tmux detach (5)重新进入会话 $ tmux attach -t session_name (6)delete会话

    2024年01月17日
    浏览(34)
  • VMware vCenter服务器常用的巡检命令、运维命令和PowerShell脚本

    一、前言 最近整理一些VMware vCenter和Esxi常用的巡检命令和运维命令如下: 二、巡检命令 三、运维命令 运维常用命令: 四、Powershell脚本 以上就是vCenter和ESXi常用的运维与监控命令,可以帮助vSphere管理员管理和监控环境。

    2024年02月11日
    浏览(53)
  • vscode在服务器上用tmux跑代码

    vscode远程ssh连接服务器,在服务器上跑时间较长深度学习代码,即使电脑关机,ssh断了,服务器那边代码程序也可以继续运行 在 SSH 中,当连接到远程服务器时,通常会在服务器上打开一个终端,允许在远程服务器上执行命令和操作,这个终端实际上是远程服务器上的一个虚

    2024年04月28日
    浏览(41)
  • 运维 | 查看 Linux 服务器 IP 地址

    大多数在操作 Linux 系统时,我们经常需要知道服务器的 IP 比便于后续的一系列操作,这时候有快速查看主机 IP 的命令行操作,能够有效的帮助我们 本章节主要记录一些常用查看服务器 IP 的命令,希望对大家有所帮助。 查看 Linux 服务器的 IP 地址的命令大体上有以下几种。

    2024年04月27日
    浏览(81)
  • 【运维】Linux 跨服务器复制文件文件夹

    如果是云服务 建议用内网ip scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来

    2024年02月08日
    浏览(74)
  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(67)
  • Linux服务器常见运维性能测试(1)综合跑分unixbench、superbench

    最近需要测试一批服务器的相关硬件性能,以及在常规环境下的硬件运行稳定情况,需要持续拷机测试稳定性。所以找了一些测试用例。本次测试包括在服务器的高低温下性能记录及压力测试,高低电压下性能记录及压力测试,常规环境下CPU满载稳定运行的功率记录。 这个系

    2024年02月04日
    浏览(82)
  • Linux本地部署1Panel服务器运维管理面板并实现公网访问

    1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等 下面我们介绍在Linux 本地安装1Panel 并结合cpolar 内网穿透工具实现远程访问1Panel 管理界面 执行如下命令一键安装 1Panel: 安

    2024年02月04日
    浏览(98)
  • 【云服务器 ECS 实战】ECS 快照&镜像的原理及用法详解

    1. 阿里云 ECS 快照概述 阿里云快照服务支持所有类型的云盘,是一种低成本、便捷高效的数据备份手段,也可以用于创建镜像或容灾、分发数据副本等。对于某一个重要的磁盘数据,当我们想要给他做一个备份时,就需要用到快照。此外在进行磁盘备份之后,也有助于我们随

    2024年02月03日
    浏览(39)
  • [1Panel]开源,现代化,新一代的 Linux 服务器运维管理面板

    本期测评试用一下1Panel这款面板。1Panel是国内飞致云旗下开源产品。整个界面简洁清爽,后端使用GO开发,前端使用VUE的Element-Plus作为UI框架,整个面板的管理都是基于docker的,想法很先进。官方还提供了视频的使用教程,本期为大家按照本专栏的基本内容进行多方面的测评。

    2024年02月07日
    浏览(94)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包