Tmux 使用笔记
本文最后更新于 777 天前,如遇到任何问题欢迎在评论区留言呀!

基本概念

server:server 是一个进程,在后台运行,负责管理 tmux 的状态信息、在 tmux 中运行的所有程序,并跟踪他们的输出。server 进程和下面提到的 client 的进程通过 socket 进行通信。

client:client 进程是接受用户输入和展示程序输出的终端窗口程序对应的进程。detach 关闭终端窗口后进程结束,attach 打开终端窗口进程创建。

panes:pane 就是图中显示的一块区域,一个 pane 下有一个 shell 的进程(例如 bash、zsh 等)负责处理用户的输入。

windows:window 类似于多桌面中的一个桌面。

sessions:多个 window 就组成了一个 session,同一个 window 可以归入不同的 session 进行管理。类似于网页,sesion 类似于收藏夹,window 类似于网页。

tmux 主要窗口示意图

session 部分

新建 session

tmux new -s [会话名]

断开 session

prefix d
# detach

展示已有 session

tmux ls

恢复 session

tmux attach -t [会话名]
# 或者 
tmux a -t [会话名]
# a 为 attach 的简写 
# t 为 target 的简写

window 部分

新建 window

prefix c

切换 window

# 切换到下一窗口
prefix n 
# 切换到上一窗口
prefix p

pane 部分

新建 pane

# 竖直分割线
prefix v
# 水平分割线
prefix h

切换 pane

# 顺时针方向切换 pane
prefix o

配置文件

用户目录下的.tmux.conf中:

#remap prefix from 'C-b' to 'M-Space'
unbind C-b
set-option -g prefix M-Space

# split panes using | and -
bind v split-window -h
bind h split-window -v
unbind '"'
unbind %

# enable mouse
set -g mouse on

# add color
set -g default-terminal "xterm-256color"

FAQ

  • 为什么在服务器上使用 tmux 可以防止远程运行的程序中断?
    通过 SSH 连接到服务器,所运行的所有程序,都是 SSH 的守护进程sshd的子进程,当连接断开的时候,由于 ssh 对应的进程中断,所有的子进程都会中断。如果用 tmux,运行的程序是作为 tmux 的子进程存在的。
    父子进程的关系如下:
    仅通过 SSH:调用的程序 -> bash -> sshd -> systemd
    tmux:调用的程序 -> bash -> tmux server -> systemd

参考资料

  1. Tmux Getting Started
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇