命令
tmux
描述
terminal multiplexer
多窗口终端管理器
用法
1
| tmux [-2CluvV] [-c shell-command] [-f file] [-L socket-name] [-S socket-path] [command [flags]]
|
选项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
| Options: -C 在控制模式下启动 -c shell-command 使用默认shell执行命令 -f file 指定配置文件,全局配置文集/etc/tmux.conf,用户配置文件~/.tmux.conf -L socket-name 默认socket保存在/tmp目录下 -S socket-path 指定socket文件路径,忽略-L选项 -u 使用UTF8编码 -v 记录详细的日志,保存在当前目录下的tmux-client-PID.log和tmux-server-PID.log -vv 记录所有tmux输入内容到tmux-out-PID.log
常用命令 tmux new 创建默认名称的会话(在tmux命令模式使用new命令可实现同样的功能) tmux new -s mysession 创建名为mysession的会话 tmux ls 显示会话列表 tmux a 连接上一个会话 tmux a -t mysession 连接指定会话 tmux detach 剥离会话 tmux rename -t s1 s2 重命名会话s1为s2 tmux kill-session 关闭上次打开的会话 tmux kill-session -t s1 关闭指定会话s1 tmux kill-session -a -t s1 关闭除s1外的所有会话 tmux kill-server 关闭所有会话 其他命令 tmux list-key 列出所有绑定的键,等同于prefix ? tmux list-command 列出所有命令 tmux new -d -s testcmd 'top' 创建会话并执行命令挂起,注意命令必须在前台运行
常用快捷键 tmux所有快捷键都默认需要先按Ctrl+b,然后再键入对应的命令,prefix=ctrl+b 会话管理 prefix s 列出会话,可进行切换 prefix $ 重命名会话 prefix d 分离当前会话 prefix D 分离指定会话 prefix ? 查看命令帮助,q键退出 窗口管理 prefix c 创建一个新窗口 prefix , 重命名当前窗口 prefix w 列出所有窗口,可进行切换 prefix n 进入下一个窗口 prefix p 进入上一个窗口 prefix l 进入之前操作的窗口 prefix 0~9 选择编号0~9对应的窗口 prefix . 修改当前窗口索引编号 prefix ’ 切换至指定编号(可大于9)的窗口 prefix f 根据显示的内容搜索窗格 prefix & 关闭当前窗口 窗格管理 prefix % 水平方向创建窗格 prefix " 垂直方向创建窗格 prefix Up|Down|Left|Right 根据箭头方向切换窗格 Ctrl+b,并且不要松开Ctrl,通过方向键调整窗格大小,多次点按方向键进行微调 prefix q 显示窗格编号 prefix o 顺时针切换窗格 prefix } 与下一个窗格交换位置 prefix { 与上一个窗格交换位置 prefix x 关闭当前窗格 prefix space 重新排列当前窗口下的所有窗格 prefix ! 将当前窗格置于新窗口 prefix Ctrl+o 逆时针旋转当前窗口的窗格 prefix t 在当前窗格显示时间 prefix z 放大当前窗格(再次按下将还原) prefix i 显示当前窗格信息
自定义tmux按键配置如下 $ more ~/.tmux.conf # Prefix Ctrl-a set-option -g prefix C-a unbind-key C-a bind-key C-a send-prefix # Mouse mode, need tmux version > 2.1 set -g mouse on # Shift-arrow to switch windows bind -n S-Left previous-window bind -n S-Right next-window # Alt-arrow to switch pane bind -n M-Left select-pane -L bind -n M-Right select-pane -R bind -n M-Up select-pane -U bind -n M-Down select-pane -D # Set split window keys bind-key | split-window -h bind-key - split-window -v # Config reload bind-key r source-file ~/.tmux.conf \; display-message "Reloaded Configure!" # 窗口编号从1开始计数 set -g base-index 1 # 窗格编号从1开始计数 set -g pane-base-index 1 # 进入复制模式的时候使用vi键位(默认是EMACS) setw -g mode-keys vi # PREFIX-Q 窗格编号的显示时长,单位ms set -g display-panes-time 1000 # 关掉某个窗口后,编号重排 set -g renumber-windows on # 禁止活动进程修改窗口名 setw -g allow-rename off # 禁止自动命名新窗口 setw -g automatic-rename off # 当非活动窗口内容改变时发出提示 setw -g monitor-activity on set -g visual-activity on
# 退出所有终端,然后重新登录即可生效 $ tmux kill-server $ tmux
|
注意
无
补充
Tmux (Terminal Multiplexer的简称), 是一款优秀的终端复用软件,类似GNU screen,但比screen更出色.tmux来自于OpenBSD,采用BSD授权.
tmux的结构包括会话(session)、窗口(window)、窗格(pane)三部分
功能:可以实现分屏,分窗口同时操作;可以后台挂起任务,关闭终端,进程依然存在;可以同时多个终端共享会话,同时查看,类似于屏幕共享.
https://github.com/tmux/tmux/wiki/Getting-Started 下载源码
http://galaxy4.net/repo/RHEL/7/x86_64/ 下载rpm包
https://zhuanlan.zhihu.com/p/166254575
示例
无