下一页亚洲11p_国产精品亚洲第一页在线观看_麻豆影院在线观看免费视频_亚洲色播在线观看_激情亚洲欧美另类小说图片

您現(xiàn)在的位置 :

首頁  >  企業(yè)新聞 >  > 正文

當前動態(tài):快速重拾 Tmux

時間 :2023-04-13 09:40:55   來源 : 博客園

Tmux是一個 Linux (Mac OS也支持)下的終端復(fù)用器,相較于 Screen更為強大,但快捷鍵和操作邏輯也更復(fù)雜,一段時間不用,就很容易忘記相關(guān)的命令和快捷鍵。本文旨在通過一個簡單的場景,快速重拾 Tmux

Tmux通常用來保持會話(session),如果我們通過 ssh 連接服務(wù)器處理打包等的耗時操作,那么網(wǎng)絡(luò)波動可能會導(dǎo)致連接斷開,使得操作失敗,使用 Tmux會話會被保持,任務(wù)依然會繼續(xù),我們可以隨時恢復(fù)會話


(資料圖)

Tmux另一個常用的功能是分屏,快速地創(chuàng)建 WindowPane,方便地在不同的任務(wù)間穿梭

修改配置
vim ~/.tmux.conf
# 將默認修飾鍵(prefix) ctrl + b 修改:ctrl + aset -g prefix C-aunbind C-bbind C-a send-prefix# 激活鼠標模式set-option -g -q mouse on# 修改分屏快捷鍵# 左右分屏bind h split-window -h# 上下分屏bind v split-window -v# 可以取消默認的分屏快捷鍵映射# unbind """# unbind %# 將 tmux 的復(fù)制模式鍵綁定設(shè)置為 vi 模式setw -g mode-keys vi

重新加載 Tmux 配置文件

tmux source-file ~/.tmux.conf
命令 & 快捷鍵命令

這些命令大多是用于 tmux Session 的增刪改查,一些命令進入 tmux 后將無法使用

# 創(chuàng)建新的 sessiontmux new -s # 刪除 seesiontmux kill-session -t 0# 重命名 seesiontmux rename-session -t 0 # 查看 所有 sessiontmux ls# 進入最近使用的 sessiontmux attach# 進入編號為 1 的 session tmux attach -t 1

可以定義一些 alias 簡化輸入

# 添加到 shell 初始化腳本中# Bash Shell 是 ~/.bashrc# Zsh Shell  是 ~/.zshrcalias tnew="tmux new -s"alias tatt="tmux attach"alias tkill="tmux kill-session -t"alias tkillall="tmux kill-session -a"alias tname="tmux rename-session -t"alias tls="tmux ls"
快捷鍵

在使用下面的快捷鍵之前,都需要先按 tmux 的修飾鍵(prefix),修改后的修飾鍵為:Ctrl + a;具體做法是:先按住 Ctrl 再按一下 a,這時可以松開 Ctrl 和 a,這時 prefix 已經(jīng)生效了,我們可以加上下面的任意按鍵以實現(xiàn)對應(yīng)的功能

tmux 有 SessionWindow、Pane這三個比較重要的概念

會話 Seesiond:分離會話(detach)$:修改當前 Session 名稱s:顯示 Session 列表(session)窗口 Windowc:創(chuàng)建一個新的 Window (create)p:切換到上一個 Window(previous)n:切換到下一個 Window(next)w:顯示 Window 列表(window),:修改當前 Window 的名稱數(shù)字鍵:切換到對應(yīng)編號的 Window,比如 prfix + 0 就是切換到編號為 0 的 Window窗格 Pane%:創(chuàng)建一個 Pane(水平排布),使用前面的配置后,可以使用 h(horizontal)":創(chuàng)建一個 Pane(垂直排布),使用前面的配置后,可以使用 v(vertical)空格:Pane 的垂直排布和水平排布之間相互轉(zhuǎn)換x:移除當前 Pane,會出現(xiàn)提示是否需要 kill-pane,輸入 y 確認,也可以使用 ctrl + d(無需按 prefix)直接終止 panez:全屏當前 Pane;:將光標移動到上次使用的 Paneo:將光標移動到下一個 Pane(順時針)Ctrl + o:旋轉(zhuǎn)當前窗口的pane,下一個 Pane 會代替上一 Pane 的位置,光標會保持在原 PaneAlt + 方向鍵:以 5 個單元格為單位移動邊緣以調(diào)整當前面板大小復(fù)制文本[:進入復(fù)制模式,因為我們配置了 setw -g mode-keys vi所以我們可以直接用 vim 的快捷鍵跳轉(zhuǎn)單詞或者行

我們可以通過 空格鍵開始選中,這時移動光標可以擴大選取,按 回車完成文本復(fù)制

]:粘貼復(fù)制的文本

進入復(fù)制模式后,可以通過 q退出復(fù)制模式

場景

tmux 就像 vim 一樣,如果不經(jīng)常使用,就很容易忘記快捷鍵,可以通過一個場景把這些零碎的知識串起來,同時場景也方便重復(fù)練習和舉一反三

我們可以在 tmux 里,編譯運行一個 c 的 hello world,prefix默認為 Ctrl + b,配置里我們修改為 Ctrl + a

使用 tmux 創(chuàng)建新的 Session,并指定名稱為:run-c
# 使用 alias 的話可以用 tnew run-ctmux new -s run-c

我們可以使用 prefix + ,將 Windows 名稱修改為 hello-world

使用 vim 編輯 hello.c

vim hello.c

i進入 vim 的編輯模式,輸入:

#includeint main(){    printf("hello world\n");}

ESC退出編輯模式,鍵入 :w保存輸入

使用 prefix + %(修改了配置則可以使用 prefix + h)在右側(cè)添加一個新的 Pane 用于編譯

新增的 Pane 將屏幕一分為二,但是編譯不需要這么大,我們可以通過 prefix + Alt + 右方向鍵縮小 Pane 寬度,按完 prefix 后,可以多次按 Alt + 右方向鍵持續(xù)縮小 Pane 寬度

在右側(cè) Pane 我們可以使用 gcc hello.c編譯 hello.c

使用 ./a.out運行 hello world 程序

使用 prefix + ;,將光標切換回左側(cè) Pane,如果覺想暫時收起右側(cè)的 Pane,可以用 prefix + z,最大化或取消最大化當前 Pane

我們可以繼續(xù)編輯文件,輸入 i進入 vim 編輯模式,將 world,修改為 tmux,按ESC退出編輯模式,鍵入 :w保存輸入

使用 prefix + ;,將光標切換回右側(cè) Pane,完成編譯和運行

gcc hello.c./a.out

使用 prefix + x,關(guān)閉右側(cè) Pane,按 y確認關(guān)閉

使用 prefix + d(tmux detach),將當前會話與窗口分離,回到我們自己的 Shell

使用 tmux attach(修改了配置則可以使用 tatt),回到我們剛出 detach 的 Session

參考資料

tmux: some considerations, some best practicesHow to Boost 10X Productivity with TmuxTmux 使用教程 - 阮一峰手把手教你使用終端復(fù)用神器 tmuxTmux + Vim 工作流! 同時操作多個項目, 追求極致的絲滑流暢!「TMUX」十分鐘掌握 tmux -- 高效的終端復(fù)用工具 : )十分鐘掌握 TMUXY分鐘速成X,其中 X=tmuxTmux的快捷鍵,包括調(diào)整窗口大小

標簽:

推薦文章

X 關(guān)閉

X 關(guān)閉