对于各个终端控来说,screen 是几乎每天都会使用的好工具,抛开确实不易。但有了更加好用的tmux,我为什么不切换?
我为什么要从 screen 切换到 tmux
对我来说,从 screen 切换到 tmux 不是平白无故的,自然有其充分的理由。我感觉使用 tmux 更加方便、灵活和高效。我非常喜欢 tmux 的这些方面:
- 垂直分割窗口,当然水平也是可以的
- vi 或 emacs 按键绑定模式
- 有多个粘贴缓冲,可完全由按键进行选取、复制、以及粘贴操作
- 配置很容易,尤其是状态行
- 脚本化,通过脚本可以方便的控制 tmux 会话
- 有预设布局,可搜索窗口,自动命名窗口名称
- 文档清晰、详尽
更改默认按键前缀
从 screen 切换到 tmux 十分平滑,tmux 的按键设置与 screen 大都相同,只是其默认按键前缀为 Ctrl-b。为了延续在 screen 中的使用习惯,我将其更改为 Ctrl-a。将下列内容加到 $HOME/.tmux.conf 中即可:
set -g prefix ^a
unbind ^b
bind a send-prefix
按键绑定
我还在 .tmux.conf 中定义了以下按键绑定:
-
水平或垂直分割窗口
unbind '"'
bind - splitw -v # 分割成上下两个窗口
unbind %
bind | splitw -h # 分割成左右两个窗口
-
选择分割的窗格
bind k selectp -U # 选择上窗格
bind j selectp -D # 选择下窗格
bind h selectp -L # 选择左窗格
bind l selectp -R # 选择右窗格
-
重新调整窗格的大小
bind ^k resizep -U 10 # 跟选择窗格的设置相同,只是多加 Ctrl(Ctrl-k)
bind ^j resizep -D 10 # 同上
bind ^h resizep -L 10 # ...
bind ^l resizep -R 10 # ...
-
交换两个窗格
bind ^u swapp -U # 与上窗格交换 Ctrl-u
bind ^d swapp -D # 与下窗格交换 Ctrl-d
-
执行命令,比如看 Manpage、查 Perl 函数
bind m command-prompt "splitw -h 'exec man %%'"
bind @ command-prompt "splitw -h 'exec perldoc -f %%'"
定制状态行
状态行左边默认就很好了,我对右边定制了一下,显示 uptime 和 loadavg:
set -g status-right "#[fg=green]#(uptime.pl)#[default] • #[fg=green]#(cut -d ' ' -f 1-3 /proc/loadavg)#[default]"
下面两行设置状态行的背景和前景色:
set -g status-bg black
set -g status-fg yellow
默认启动应用
当 tmux 启动时,可以默认启动一些应用:
new -s work mutt # 新建名为 work 的会话,并启动 mutt
neww rtorrent # 启动 rtorrent
neww vim # 启动 vim
neww zsh
selectw -t 3 # 默认选择标号为 3 的窗口
复制与粘贴操作
-
按 C-a [ 进入复制模式,如果有设置 setw -g mode-keys vi
的话,可按 vi 的按键模式操作。移动至待复制的文本处,按一下空格,结合 vi 移动命令开始选择,选好后按回车确认。
-
按 C-a ] 粘贴已复制的内容。
参考
tmux 的官方主页: http://tmux.sourceforge.net 我的 .tmux.conf
分享到:
相关推荐
tmux 是一个与 GNU screen 类似的程序,可作为后者的替代品使用。tmux 采用 BSD 许可授权。 如上图所示,启动 tmux 后,在窗口底部有状态行显示,其中包括已创建的窗口列表、当前窗口(使用 * 表示)等。 ...
本文主要介绍两种终端分屏工具:screen和tmux,分享出来供大家参考学习,下面来看看详细的介绍: 一、使用screen分屏(只能上下分屏,不能左右分屏) (1)安装工具 在ubuntu系统中使用sudo apt-get install screen ...
`tmux` 的设计理念与 `GNU Screen` 类似,但有一些独特的特性和改进,使其成为很多用户更优的选择。 **主要特点** 1. **会话管理**:`tmux` 允许用户创建、命名和切换不同的会话,每个会话可以包含多个窗口和面板...
默认情况下,tmux的按键前缀是`Ctrl-b`,但为了与screen的使用习惯保持一致,可以通过在`$HOME/.tmux.conf`中设置`set -g prefix ^a`和`unbind ^b`及`bind a send-prefix`来将前缀键更改为`Ctrl-a`。 2. **窗口...
- **统一接口**:mucks通过一个统一的命令行界面,简化了在Tmux、Screen和DVTM之间切换的操作,用户无需记住不同工具的特定命令。 - **跨平台兼容**:mucks支持各种Unix-like系统,包括Linux和macOS,使得开发者...
“rust”标签表明TMUX可能被集成到Rust项目中,或者有Rust语言编写的TMUX插件或扩展。Rust是一种系统级编程语言,以其内存安全和高性能而著称,用于编写TMUX插件可以提供更强大的功能和更好的性能。 “screen”是另...
伪终端在功能上模拟了一个真实的终端,但其实现方式不同,常用于提供SSH、telnet等网络连接服务,以及某些软件如screen、tmux的多窗口管理。 终端切换的流程大致如下: 1. 当用户按下特定键组合时,如ALT+1,`...
当你再次打开SecureCRT时,可以重新附加到原来的screen或tmux会话,继续监控或交互。 对于标签"甹苦于",在这个上下文中似乎不太适用,可能是输入错误或者语境不匹配。如果是指在使用SecureCRT过程中遇到困难,可以...
- 使用`Ctrl + b`后接`o`可以在窗口间切换,或者使用`Ctrl + b`后接`Shift + `+`数字`快速切换到指定编号的窗口。 2. **使用screen** - 安装screen:在终端中输入`sudo apt-get install screen`(Ubuntu)或`...
综上所述,Linux提供了多种方法来确保进程在远程客户端断开连接后仍能持续运行,包括 `nohup`、`setsid`、`screen` 和 `tmux`。这些工具和命令可以帮助你在执行需要长时间运行的任务时避免因网络不稳定或其他原因...
1. **历史兼容性**:TMUX支持`screen`的大部分快捷键,方便从`screen`迁移。 2. **复制/粘贴**:TMUX的复制和粘贴功能更加强大,支持鼠标操作,而`screen`则需要特定的快捷键组合。 3. **会话管理**:TMUX的会话管理...
本文将详细探讨两种主流的Linux终端分屏工具:screen和tmux。 首先,我们来了解一下screen。Screen是一个强大的终端多路复用器,允许用户在一个单一的终端会话中创建多个独立的全屏视窗。尽管screen只能进行上下...
这对于管理后台服务非常有用,因为你可以随时断开并重新连接到`screen`会话,而不会影响正在运行的服务。使用`screen`运行Node服务的步骤如下: 1. 首先,确保已安装`screen`。如果没有,可以使用包管理器安装,...
通过使用screen,用户可以在不同的窗口中运行多个程序,并能够在窗口之间切换。即使网络连接中断,screen中的程序也会继续运行,从而避免了长时间运行任务因意外断开而失败的问题。 - **dtach**:作为一种轻量级的...
这些工具涵盖了Unix/Linux环境下的多个方面,从系统性能监控到文本编辑,再到远程会话管理和备份解决方案,每一种工具都针对特定的需求进行了优化设计。掌握这些工具的使用方法,能够显著提升在Unix/Linux环境下的...
使用`scp`命令,你可以将文件或目录从一处复制到另一处,例如:`scp user@remote_host:/path/to/file /local/directory`。 三、SFTP(Secure File Transfer Protocol) SFTP是SSH的一部分,提供了一个交互式的文件...
screen是一个窗口管理器,能够在一个物理终端上多路复用多个进程,并允许用户在不同窗口之间切换,非常适合需要长时间运行的任务,如系统备份或文件传输。dtach提供与screen类似的分离和附加功能,而tmux则提供了更...
除了物理TTY,Linux还有PTY,它是一种虚拟终端,主要用于模拟实际的TTY设备,常用于程序如`screen`、`tmux`以及在后台运行需要终端的程序。 8. **串行通信** 对于远程访问或嵌入式系统,TTY还涉及到串行通信,如...
`screen`和`tmux`是两个流行的会话管理工具,它们允许你在多个窗口之间切换,即使远程连接断开,程序也会继续执行。此外,`cron`是Linux的定时任务调度器,可以设置定期执行的任务。 **7.5 查看资源** 了解系统资源...