Top

tmux常用命令及系统重启后恢复session插件安装


本文属于原创,转载注明出处,欢迎关注微信小程序小白AI或者网站 https://xiaobaiai.net

说明

注:

  1. 以下的操作前缀ctrl+b
  2. set-option -g的简写为set -g
  3. 描述思路: tmux -> session -> window -> pane

session

新建一个tmux session

tmux new -s my_session_name

删除一个session

tmux kill-session -t session_name or <prefix>:kill-session

退出tmux

<prefix>d

列出所有会话

tmux ls

进入某个session

tmux at -t session_name

在session里面新建一个session

<prefix>: new

重命名当前session

<prefix>$ new_session_name

切换session

<prefix>s

window

新建一个window

<prefix>c

删除(退出)一个window(全部窗口exit了,这个session就删除了)

exit or <prefix>&

可视化列出所有window

<prefix>w

进入某个window

<prefix>窗口数字<prefix>1

重命名当前window,默认是bash

<prefix>, new_window_name

panel

垂直和水平分割window(对半分)

<prefix>"<prefix>%

关闭当前panel(会提示y/n)

<prefix>x or exit

panel之间切换

<prefix>hjkl or ctrl+hjkl or <prefix>q panel数字<prefix> q 1 or <prefix>o

panel左右移动

<prefix>{ and <prefix>}

将当前panel在新window中打开,会创建一个新的window

<prefix>!

采用下一个panel布局

<prefix>space

改变panel大小

<prefix>shift + hjkl or <prefix>ctrl + 方向键

panel滚动,当打印的信息比屏幕要大时,tmux默认是不能滚动的

<prefix>[ 然后可以用滚轮来滚动了,其实是进入了复制模式。

tmux的基本设置

  tmux的设置文件为~/.tmux.conf。用vim编辑完后,可以在tmux的session中命令模式下,即<prefix>: 输入source-file ~/.tmux.conf重新加载配置文件,使之生效。

1
2
3
4
5
6
7
8
9
10
11
12
13
#----base setting --#
set -g default-terminal "screen-256color"
set -g display-time 3000
set -g escape-time 0
set -g history-limit 65535
set -g base-index 1
set -g pane-base-index 1

# 设置prefix为ctrl+x
set -g prefix C-x
# 解除ctrl+b与prefix的绑定
unbind C-b
bind a send-prefix

window和panel的外观设置

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
set -g status-fg white
set -g status-bg black
setw -g window-status-fg cyan
setw -g window-status-bg default
setw -g window-status-attr dim
setw -g window-status-current-fg white
setw -g window-status-current-bg red
setw -g window-status-current-attr bright

set -g pane-border-fg green
set -g pane-border-bg black
set -g pane-active-border-fg white
set -g pane-active-border-bg yellow

set -g message-fg white
set -g message-bg black
set -g message-attr bright

set -g status-utf8 on
set -g status-interval 60

set -g status-left-length 40
set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
set -g status-right "#[fg=cyan]%d %b %R"
set -g status-justify centre

tmux可以用来做什么?

  • 如果两个用户用ssh登录同一个远端服务器,并打开同一个session,那么都可以操作这个session,并可以看到该session的变化,但是这个session的主动控制权在建立这个session的用户手里,他能够使终端的窗口改变大小,你能够看到,但是你改变了终端的大小,并不会让他看到。
  • ssh掉线了,不用tmux时,你的终端都必须重新打开,而用了tmux之后,你只需要打开掉线前的session就可以了,当然如果服务器重启了,那么没办法了,只能将这个session保存下来(利用插件,如https://github.com/tmux-plugins/tmux-resurrect)才可以重新回到之前的编辑状态。

tmux-resurrect 安装:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# -----------------------------
# (1) 确保先安装好tmux插件管理器
$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# (2) 将如下内容添加到.tmux.conf中
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'git@github.com/user/plugin'
# set -g @plugin 'git@bitbucket.com/user/plugin'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run -b '~/.tmux/plugins/tpm/tpm'
# -----------------------------
# (3) 重新加载tmux环境
$ tmux source ~/.tmux.conf
# -----------------------------
# (4) 安装tmux-resurrect,将如下内容添加到.tmux.conf
set -g @plugin 'tmux-plugins/tmux-resurrect'
# (5) 输入prefix + I拉取插件并安装
# -----------------------------

常见错误

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
.tmux.conf:3: no current session                                                                                                                                             [0/0]
.tmux.conf:3: couldn't set 'display-time' need target session or -g
.tmux.conf:4: value is invalid: 0
.tmux.conf:5: value is invalid: 65535
.tmux.conf:6: value is invalid: 1
.tmux.conf:7: value is invalid: 1
.tmux.conf:10: bad key: C-x
.tmux.conf:12: unknown key: C-b
.tmux.conf:13: unknown command: send-prefix
.tmux.conf:15: bad colour: white
.tmux.conf:16: bad colour: black
.tmux.conf:17: bad colour: cyan
.tmux.conf:18: bad colour: default
.tmux.conf:19: bad attributes: dim
.tmux.conf:20: bad colour: white
.tmux.conf:21: bad colour: red
.tmux.conf:22: bad attributes: bright
.tmux.conf:24: bad colour: green
.tmux.conf:25: bad colour: black
.tmux.conf:26: bad colour: white
.tmux.conf:27: bad colour: yellow
.tmux.conf:29: bad colour: white
.tmux.conf:30: bad colour: black
.tmux.conf:31: bad attributes: bright
.tmux.conf:33: bad value: on
.tmux.conf:34: value is invalid: 60
.tmux.conf:36: value is invalid: 40

原因:

可能是tmux.conf语法发生改变

解决:

1
2
3
4
# 首先创建一个session,然后将当前配置直接导入到.tmux.conf
$ tmux show -g | sed 's/^/set -g /' > ~/.tmux.conf

# 产生的prefix2 <NONE>已经无效,可以移除掉;
1
sessions should be nested with care, unset $TMUX to force

完整.tmux.conf(不包含插件管理)

  • 下边中间显示可用窗口
  • 加重不同panel之间的边界框对比度
  • tmux -V需要大于2.0

tmux.conf sample

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
#----base setting --#
set -g default-terminal "screen-256color"
set -g display-time 3000
set -g escape-time 0
set -g history-limit 65535
set -g base-index 1
set -g pane-base-index 1

# 设置prefix为ctrl+a
# set -g prefix C-x
# 解除ctrl+b与prefix的绑定
# unbind C-b
# bind a send-prefix

set -g status-fg white
set -g status-bg black
setw -g window-status-fg cyan
setw -g window-status-bg default
setw -g window-status-attr dim
setw -g window-status-current-fg white
setw -g window-status-current-bg red
setw -g window-status-current-attr bright

set -g pane-border-fg green
set -g pane-border-bg black
set -g pane-active-border-fg white
set -g pane-active-border-bg yellow

set -g message-fg white
set -g message-bg black
set -g message-attr bright

# set -g status-utf8 on
set -g status-interval 60

set -g status-left-length 40
set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
set -g status-right "#[fg=cyan]%d %b %R"
set -g status-justify centre

注意事项

  1. tmux版本的不同,一些设置语法有所抛弃或者更新,需要去查看更新日志
  2. tmux可以设置的很炫酷(hualihushao),但也容易折腾出问题

参考链接



授权:知识共享署名-相同方式共享 4.0 国际许可协议
网站信息: 小白AI.易名
文章标题:tmux常用命令及系统重启后恢复session插件安装
永久链接:https://xiaobaiai.net/2019/20190814195020.html
关注公众号:小白AI
关注微信小程序:小白AI博客
微信打赏 支付宝打赏

 发表评论

文明评论,请勿灌水。