天眼查公司信息查詢東莞seo優(yōu)化推廣
tmux
tmux是一個終端復(fù)用工具,允許用戶在一個終端會話中同時管理多個終端窗口,提高了終端使用效率,尤其在服務(wù)器上進行遠程管理時更加實用。在tmux中,可以創(chuàng)建多個終端窗口和窗格,并在這些窗口和窗格之間自由切換,還可以在后臺運行會話,即使在終端斷開連接后也可以繼續(xù)操作,這非常有用,特別是在長時間運行的命令中。
包管理器進行安裝??梢允褂靡韵旅畎惭b:
操作系統(tǒng) | 安裝命令 |
---|---|
Arch Linux | pacman -S tmux |
Debian or Ubuntu | apt install tmux |
Fedora | dnf install tmux |
RHEL or CentOS | yum install tmux |
macOS (using Homebrew | brew install tmux |
macOS (using MacPorts) | port install tmux |
openSUSE | zypper install tmux |
tmux 的幾個名詞session, window , pane?在這里我們就把他們分別叫做會話,窗口,窗格 。
關(guān)于session 很多人都叫會話,個人感覺叫任務(wù)更貼切,更形象。
通常我們在終端中操作一個任務(wù)的時候,一旦終端關(guān)閉,任務(wù)也就結(jié)束了,被強制關(guān)閉了,在 tmux 中 使用 session 就可以解決這個問題,我們可以把當前操作的任務(wù)隱藏起來,在視覺上讓它消失,任務(wù)繼續(xù)執(zhí)行著,當我們想返回任務(wù)做一些操作的時候,它可以很方便的回來,我們通常把上面的操作就做 session 操作,我們可以把 session 給隱藏起來,我們也可以把 session 給真的關(guān)掉。
在 tmux 中有一個窗口的概念,我們可以這樣要去理解窗口:當前呈現(xiàn)在我們面前的這一個工作區(qū)域就是一個窗口(當前的終端界面),窗口可以被不斷切割,切割成一個個小塊,這一個個小塊我們叫做窗格(pane),這就是窗口和窗格的概念,我們把它想象成一塊大蛋糕可以切成很多小塊蛋糕,窗口可以被分割成很多小的窗格。
總結(jié): 一個 session 通常指一個任務(wù)里面可以有很多窗口,一個窗口又可以有很多的窗格。
基本操作
命令 | 描述 |
---|---|
tmux | 啟動一個新的tmux 會話 |
tmux new-session -s <session-name> | 創(chuàng)建一個具有指定名稱的新會話 |
tmux attach -t <session-name> | 附加到一個已存在的會話 |
tmux switch-client -n | 切換到下一個會話 |
tmux switch-client -p | 切換到上一個會話 |
tmux list-sessions | 顯示當前所有會話的列表 |
tmux detach | 從當前會話中分離 |
tmux kill-session -t <session-name> | 結(jié)束指定的會話 |
窗口操作
命令 | 描述 |
---|---|
tmux new-window | 在當前會話中創(chuàng)建一個新窗口 |
tmux select-window -t <window-index> | 選擇指定索引的窗口 |
tmux next-window | 切換到下一個窗口 |
tmux previous-window | 切換到上一個窗口 |
tmux list-windows | 顯示當前會話的所有窗口列表 |
tmux rename-window <new-name> | 重命名當前窗口 |
tmux kill-window -t <window-index> | 關(guān)閉指定索引的窗口 |
面板操作
命令 | 描述 |
---|---|
tmux split-window | 在當前窗口中水平分割面板(垂直創(chuàng)建新面板) |
tmux split-window -h | 在當前窗口中垂直分割面板(水平創(chuàng)建新面板) |
tmux select-pane -t <pane-index> | 選擇指定索引的面板 |
tmux select-pane -U | 切換到上面的面板 |
tmux select-pane -D | 切換到下面的面板 |
tmux select-pane -L | 切換到左邊的面板 |
tmux select-pane -R | 切換到右邊的面板 |
tmux kill-pane -t <pane-index> | 關(guān)閉指定索引的面板 |
tmux swap-pane -s <src-pane> -t <dst-pane> | 交換兩個面板的位置 |
tmux setw synchronize-panes | 同步所有面板中的輸入(再次執(zhí)行此命令將取消同步) |
快捷鍵
快捷鍵 | 描述 | |
---|---|---|
會話<session> | prefix ?d | 分離當前會話 |
prefix ?s | 列出所有會話 | |
prefix ?$ | 重命名當前會話 | |
窗口<window> | prefix ?c | 創(chuàng)建一個新窗口,狀態(tài)欄會顯示多個窗口信息 |
prefix ?p | 切換到上一個窗口 | |
prefix ?n | 切換到下一個窗口 | |
prefix ?<number> | 切換到指定編號的窗口 | |
prefix ?w | 從列表中選擇窗口 | |
prefix ?, | 重命名窗口 | |
窗格<pane> | prefix ?% | 劃分左右兩個窗格 |
prefix ?" | 劃分上下兩個窗格 | |
prefix ?; | 光標移動到上一個窗格 | |
prefix ?o | 光標移動到下一個窗格 | |
prefix ?{ | 當前窗格與上一個窗格換位 | |
prefix ?} | 當前窗格與下一個窗格換位 | |
prefix ?x | 關(guān)閉當前窗格 | |
prefix ?! | 將當前窗格拆分為一個獨立的窗格 | |
prefix ?z | 當前窗格全屏顯示,再使用一次會變回原來的大小 | |
prefix ?q | 顯示窗格編號 |
配置
Unix系統(tǒng)上許多軟件(vim, tmux)不是一成不變的,而是有了各種配置、插件后才更強大。那么,怎樣找到優(yōu)秀的配置呢?Github是一個好地方,搜索tmux,可以找到許多高星的配置:
- gpakosz/.tmux
- tony/tmux-config
- dracula/dracula-theme
如果剛開始學tmux,你當然可以直接使用它們。但是,其中有許多自定義配置是幾乎不可能用到的。遵循少即是多的原則,筆者選擇根據(jù)自己的需求定義配置。因此,建議你也構(gòu)建自己的dotfiles,不斷維護它們,形成自己的配置體系。
以下是一些常用的tmux插件,它們可以提高tmux的使用體驗并增強其功能:
- Tmux Resurrect:可以在tmux崩潰或關(guān)閉會話時自動保存和恢復(fù)會話狀態(tài)的插件。官方網(wǎng)站:https://github.com/tmux-plugins/tmux-resurrect
- Tmuxinator:可以創(chuàng)建和管理tmux會話的命令行工具。官方網(wǎng)站:https://github.com/tmuxinator/tmuxinator
- Tmux Open:可以輕松地從tmux會話中打開文件或URL的插件。官方網(wǎng)站:https://github.com/tmux-plugins/tmux-open
- Tmux Sidebar:可以在tmux會話的側(cè)邊欄中顯示各種信息,如系統(tǒng)資源、時間和日期等。官方網(wǎng)站:https://github.com/tmux-plugins/tmux-sidebar
- Tmux CPU:可以在tmux狀態(tài)欄中顯示CPU使用率的插件。官方網(wǎng)站:https://github.com/tmux-plugins/tmux-cpu
- Tmux Battery:可以在tmux狀態(tài)欄中顯示電池電量和充電狀態(tài)的插件。官方網(wǎng)站:https://github.com/tmux-plugins/tmux-battery
- Tmux Yank:可以在tmux和系統(tǒng)剪貼板之間復(fù)制和粘貼文本的插件。官方網(wǎng)站:https://github.com/tmux-plugins/tmux-yank
- Tmux Copycat:可以幫助您在tmux緩沖區(qū)中搜索和復(fù)制文本的插件。官方網(wǎng)站:https://github.com/tmux-plugins/tmux-copycat
以上是一些常用的tmux插件,它們可以提高tmux的使用體驗并增強其功能。您可以訪問它們的官方網(wǎng)站了解更多信息,也可以使用TPM管理器輕松安裝和管理它們。
我使用的 tmux 配置
# mouse mod
set -g mouse off
#run-shell ~/tmux-better-mouse-mode/scroll_copy_mode.tmux
#set -g @scroll-speed-num-lines-per-scroll 10# cpu memory display
#set -g status-interval 3
#set -g status-right "#(vmstat -SM 1 2 | awk 'END {print \"cpu:\"100-$15\"%\" \" mem:\"512-$4-$5-$6\"M\"}')#[default] %R"# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'# github
set -g @plugin 'github_username/plugin_name'
set -g @plugin 'github_username/plugin_name#branch'
set -g @plugin 'git@github.com:user/plugin'# Other examples:
set -g @plugin 'tmux-plugins/tmux-sidebar'# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.config/tmux/plugins/tpm/tpm'