为什么要使用tmux:唯一的强大理由,保持永久连接!
如果有使用过vnc的同学,大家可以把tmux想象成一个字符模式的vnc(没有图形界面,通过控制台操作)
举例使用场景:
当大家用ssh连接服务器编译android固件时,突然断网或者本地电脑突然死机了,编译就被中断了,如果你用了tmux就不会有这种烦恼了
或者晚上想编译固件(可能需要2-3个小时),打算明天来看看结果,还想把本地的电脑关掉,这时可以用tmux
或者在公司编译固件,想在家里远程vpn链接看看编译结果(中间有没出错拉?),这时就可以用tmux
或着在公司调试固件,遇到问题,想让深圳的同学,看看问题,这时可以用tmux分享控制台终端
tmux很方便开多个控制终端。如:左上窗口进行android的编译,右上窗口进行代码的编辑,下面打开了一个htop监控系统资源状况。
新建会话 (常用)
第一个启动的 Tmux 窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。
使用编号区分会话,不太直观,更好的方法是为会话起名。
新建一个指定名称的会话
- $ tmux new -s <session-name>
分离会话(常用)
在 Tmux 窗口中,按下 Ctrl+t d 或者输入tmux detach 命令,就会将当前会话与窗口分离。
- # 在tmux的窗口中输入 这个 tmux detach 命令
- $ tmux detach
上面命令执行后,就会退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行。
查看当前所有的 Tmux 会话。
- $ tmux ls
- # or
- $ tmux list-session
接入会话(常用)
tmux attach 命令用于重新接入某个已存在的会话。
- # 使用会话编号
- $ tmux attach -t 0
- # 使用会话名称
- $ tmux attach -t <session-name>
- # 如果只有一个会话 直接这样就行了
- $ tmux a
- 复制粘贴搜索(常用)
- #log关键字搜索
- Ctrl+ t [
- #按空格键+方向键开始选择复制内容,按回车Enter结束选择复制内容
- Ctrl + t ] 粘贴
- #搜索:/关键字
- #重命名window:Ctrl +t ,
杀死会话 (选学)
tmux kill-session 命令用于杀死某个会话。
- # 使用会话编号
- $ tmux kill-session -t 0
- # 使用会话名称
- $ tmux kill-session -t <session-name>
切换会话 (选学)
tmux switch 命令用于切换会话。
- # 使用会话编号
- $ tmux switch -t 0
- # 使用会话名称
- $ tmux switch -t <session-name>
重命名会话 (选学)
tmux rename-session命令用于重命名会话。
- $ tmux rename-session -t 0 <new-name>
- 默认打开的会话名 是 0, 这里重命名成 my 拉。
会话快捷键
Ctrl+t d:分离当前会话。
Ctrl+t s:列出所有会话。
Ctrl+t $:重命名当前会话。
下面介绍 窗口操作。窗口叫 window
新建窗口
- # 新建一个指定名称的窗口
- $ tmux new-window -n <window-name>
# 对应的快捷键
ctrl + t c
- 切换窗口
- # 切换到指定编号的窗口
- $ tmux select-window -t <window-number>
- # 切换到指定名称的窗口
- $ tmux select-window -t <window-name>
# 对应的快捷键
ctrl + t <number> # 在下面的状态栏都有每个窗口的编号。
重命名窗口
- $ tmux rename-window <new-name>
# 对应的快捷键
ctrl + t , # 英文逗号。
窗口快捷键
Ctrl+t c:创建一个新窗口,状态栏会显示多个窗口的信息。
Ctrl+t p:切换到上一个窗口(按照状态栏上的顺序)。
Ctrl+t n:切换到下一个窗口。
Ctrl+t <number>:切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号。
Ctrl+t w:从列表中选择窗口。
Ctrl+t ,:窗口重命名。
窗格操作(pane)
划分窗格
tmux split-window 命令用来划分窗格。
- # 划分上下两个窗格
- $ tmux split-window
- # 划分左右两个窗格
- $ tmux split-window -h
# 对应的快捷键
ctrl + t - 水平分割
ctrl + t | 竖直分割
移动光标
tmux select-pane 命令用来移动光标位置。
- # 光标切换到上方窗格
- $ tmux select-pane -U
- # 光标切换到下方窗格
- $ tmux select-pane -D
- # 光标切换到左边窗格
- $ tmux select-pane -L
- # 光标切换到右边窗格
- $ tmux select-pane -R
# 对应的快捷键
ctrl + t h,j,k,l # vim的上下左右键
以下是我的一个 配置文件,前缀键 是 ctrl + t
- # Setting the prefix from C-b to C-t
- set -g prefix C-t
- # Free the original Ctrl-b prefix keybinding
- unbind C-b
- # Setting the delay between prefix and command
- set -s escape-time 2
- # Ensure that we can send Ctrl-a to other apps
- bind C-t send-prefix
- # history buffer - max number of lines for each window
- set -g history-limit 10000
- # Set Terminal Emulator Titles - OFF by default
- set -g set-titles on
- # Set the base index for windows to 1 instead of 0
- set -g base-index 1
- # Set the base index for panes to 1 instead of 0
- setw -g pane-base-index 1
- # Reload the file with Prefix r
- bind r source-file ~/.tmux.conf \; display "Reloaded Config!!!"
- # Splitting panes replace % and "
- bind | split-window -h
- bind - split-window -v
- # moving between panes
- bind h select-pane -L
- bind j select-pane -D
- bind k select-pane -U
- bind l select-pane -R
- # Pane resizing
- bind -r H resize-pane -L 5
- bind -r J resize-pane -D 5
- bind -r K resize-pane -U 5
- bind -r L resize-pane -R 5
- # Mouse support
- # setw -g mode-mouse on
- # set -g mouse-select-pane off
- # set -g mouse-resize-pane off
- # set -g mouse-select-window off
- # incompatible since tmux 2.1
- set -g mouse on
- # Set the default terminal mode to 256color mode
- set -g default-terminal "screen-256color"
- # Enable activity alerts
- setw -g monitor-activity on
- set -g visual-activity on
- # tmux coloring
- # Set the status line's colors
- set -g status-fg black
- set -g status-bg default
- # Set the color of the window list
- setw -g window-status-fg black
- setw -g window-status-bg default
- setw -g window-status-attr dim
- # Set colors for the active window
- 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 red
- set -g pane-border-bg default
- set -g pane-active-border-fg red
- set -g pane-active-border-bg default
- # Command / message line
- set -g message-fg white
- set -g message-bg black
- set -g message-attr bright
- set -g status-left-length 70
- set -g status-left "#[fg=red][会话#S]#[fg=green][#(echo $USER)@#(hostname -I|tr -d ' ')]#[fg=blue][窗口#I]#[fg=blue][面板#P] "
- # show session name, window & pane number, date and time on right side of
- # status bar
- set -g status-right-length 60
- set -g status-right "#[fg=green]#(date '+%Y年%m月%d日 %H:%M')"
- # Update the status bar every sixty seconds
- set -g status-interval 60
- # Center the window list
- set -g status-justify eentre
- # Enable vi keys
- setw -g mode-keys vi
- # set shell 如果配置了zsh 可以打开下面的配置
- # set -g default-shell /bin/zsh
1. 本网站全部内容仅供用户学习、研究或欣赏使用。不得用于商业或其他非法目的。
2. 本站对所有下载内容不承担任何技术及版权问题的责任。用户下载和使用本站提供的软件,需自行承担风险以及相关法律责任,并请自行判断其安全性和完整性。
3. 本站内对文章打赏行为均属自愿,本站不提供额外支持。
4. 如因使用本站内容造成损失或损害,本站概不负责,亦不承担任何法律责任。一旦访问或下载本站内容,就代表您已同意上述条款。