tmux终端学习
1.tmux入门
1.为什么要使用tmux?
在默认的终端的连接中,一个窗口代表一个会话,代表的是同一个进程。当窗口关闭的时候就之后进程就死掉了
Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离。
2.tmux的作用
它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
它可以让新窗口"接入"已经存在的会话。
它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
它还支持窗口任意的垂直和水平拆分。
3.tmux的安装
# Ubuntu 或 Debian $ sudo apt-get install tmux # CentOS 或 Fedora $ sudo yum install tmux # Mac $ brew install tmux
4.tmux的启动和退出
#直接输入tmux可以进入 tmux #退出 1.ctrl + d 2.直接输入exit + enter
5.tmux的快捷键前缀唤醒
在使用tmux的快捷键的时候,需要使用前缀键进行唤醒
#前缀键 ctrl + b #帮助键 ctrl + b + ? #退出帮助键模式 Esc 或者 b
2.tmux会话管理
1.新建一个会话
给一个会话进行命名
tmux new -s <session-name>
2.分离会话
查看当前的会话窗口
tmux ls 或者 tmux list-session
将当前的窗口和会话进行分离
#方式一 tmux detach #方式二 ctrl + b d注意:上面命令执行后,就会退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行。
3.接入之前的会话
接入会话的两种方式
# 使用会话编号 $ tmux attach -t 0 # 使用会话名称 $ tmux attach -t <session-name>
4.杀死会话
tmux kill-session命令用于杀死某个会话
# 使用会话编号 $ tmux kill-session -t 0 # 使用会话名称 $ tmux kill-session -t <session-name>
5.切换会话
tmux switch
命令用于切换会话。 # 使用会话编号 $ tmux switch -t 0 # 使用会话名称 $ tmux switch -t <session-name>
6.重命名会话
tmux rename-session
命令用于重命名会话。$ tmux rename-session -t 0 <new-name>
7.以下是有关会话的快捷键
Ctrl+b d:分离当前会话。 Ctrl+b s:列出所有会话。 Ctrl+b $:重命名当前会话。
3.流程总结
新建会话
tmux new -s my_session
。在 Tmux 窗口运行所需的程序。
按下快捷键
Ctrl+b d
将会话分离。下次使用时,重新连接到会话
tmux attach-session -t my_session
。
4.窗格管理
Ctrl+b %:划分左右两个窗格。 Ctrl+b ":划分上下两个窗格。 Ctrl+b <arrow key>:光标切换到其他窗格。<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:显示窗格编号。
5.窗口快捷键
Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。 Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。 Ctrl+b n:切换到下一个窗口。 Ctrl+b <number>:切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号。 Ctrl+b w:从列表中选择窗口。 Ctrl+b ,:窗口重命名。
6.官方快捷键集合
bind-key 3 select-window -t :3 bind-key 4 select-window -t :4 bind-key 5 select-window -t :5 bind-key 6 select-window -t :6 bind-key 7 select-window -t :7 bind-key 8 select-window -t :8 bind-key 9 select-window -t :9 bind-key : command-prompt bind-key ; last-pane bind-key = choose-buffer bind-key ? list-keys bind-key D choose-client bind-key L switch-client -l bind-key [ copy-mode bind-key ] paste-buffer bind-key c new-window bind-key d detach-client bind-key f command-prompt "find-window '%%'" bind-key i display-message bind-key l last-window bind-key n next-window bind-key o select-pane -t :.+ bind-key p previous-window bind-key q display-panes bind-key r refresh-client bind-key s choose-tree bind-key t clock-mode bind-key w choose-window bind-key x confirm-before -p "kill-pane #P? (y/n)" kill-pane bind-key z resize-pane -Z bind-key { swap-pane -U bind-key } swap-pane -D bind-key ~ show-messages bind-key PPage copy-mode -u bind-key -r Up select-pane -U bind-key -r Down select-pane -D bind-key -r Left select-pane -L bind-key -r Right select-pane -R bind-key M-1 select-layout even-horizontal bind-key M-2 select-layout even-vertical bind-key M-3 select-layout main-horizontal bind-key M-4 select-layout main-vertical bind-key M-5 select-layout tiled bind-key M-n next-window -a bind-key M-o rotate-window -D bind-key M-p previous-window -a bind-key -r M-Up resize-pane -U 5 bind-key -r M-Down resize-pane -D 5 bind-key -r M-Left resize-pane -L 5 bind-key -r M-Right resize-pane -R 5 bind-key -r C-Up resize-pane -U bind-key -r C-Down resize-pane -D bind-key -r C-Left resize-pane -L bind-key -r C-Right resize-pane -R