閱讀206 返回首頁    go 阿裏雲 go 技術社區[雲棲]


使用 tmux 打造更強大的終端

一些 Fedora 用戶把大部分甚至是所有時間花費在了命令行終端上。 終端可讓您訪問整個係統,以及數以千計的強大的實用程序。 但是,它默認情況下一次隻顯示一個命令行會話。 即使有一個大的終端窗口,整個窗口也隻會顯示一個會話。 這浪費了空間,特別是在大型顯示器和高分辨率的筆記本電腦屏幕上。 但是,如果你可以將終端分成多個會話呢? 這正是 tmux 最方便的地方,或者說不可或缺的。

安裝並啟動 tmux

tmux 應用程序的名稱來源於終端terminal複用器muxer或多路複用器multiplexer。 換句話說,它可以將您的單終端會話分成多個會話。 它管理窗口和窗格:

  • 窗口window是一個單一的視圖 - 也就是終端中顯示的各種東西。
  • 窗格pane是該視圖的一部分,通常是一個終端會話。

開始前,請在係統上安裝 tmux 應用程序。 你需要為您的用戶帳戶設置 sudo 權限(如果需要,請查看本文獲取相關說明)。


  1. sudo dnf -y install tmux

運行 tmux程序:


  1. tmux

狀態欄

首先,似乎什麼也沒有發生,除了出現在終端的底部的狀態欄:

Start of tmux session

Start of tmux session

底部欄顯示:

  • [0] – 這是 tmux 服務器創建的第一個會話。編號從 0 開始。tmux 服務器會跟蹤所有的會話確認其是否存活。
  • 0:testuser@scarlett:~ – 有關該會話的第一個窗口的信息。編號從 0 開始。這表示窗口的活動窗格中的終端歸主機名 scarlett 中 testuser 用戶所有。當前目錄是 ~ (家目錄)。
  • * – 顯示你目前在此窗口中。
  • “scarlett.internal.fri” – 你正在使用的 tmux 服務器的主機名。
  • 此外,還會顯示該特定主機上的日期和時間。

當你向會話中添加更多窗口和窗格時,信息欄將隨之改變。

tmux 基礎知識

把你的終端窗口拉伸到最大。現在讓我們嚐試一些簡單的命令來創建更多的窗格。默認情況下,所有的命令都以Ctrl+b 開頭。

  • 敲 Ctrl+b, " 水平分割當前單個窗格。 現在窗口中有兩個命令行窗格,一個在頂部,一個在底部。請注意,底部的新窗格是活動窗格。
  • 敲 Ctrl+b, % 垂直分割當前單個窗格。 現在你的窗口中有三個命令行窗格,右下角的窗格是活動窗格。

tmux window with three panes

tmux window with three panes

注意當前窗格周圍高亮顯示的邊框。要瀏覽所有的窗格,請做以下操作:

  • 敲 Ctrl+b,然後點箭頭鍵
  • 敲 Ctrl+b, q,數字會短暫的出現在窗格上。在這期間,你可以你想要瀏覽的窗格上對應的數字。

現在,嚐試使用不同的窗格運行不同的命令。例如以下這樣的:

  • 在頂部窗格中使用 ls 命令顯示目錄內容。
  • 在左下角的窗格中使用 vi 命令,編輯一個文本文件。
  • 在右下角的窗格中運行 top 命令監控係統進程。

屏幕將會如下顯示:

tmux session with three panes running different commands

tmux session with three panes running different commands

到目前為止,這個示例中隻是用了一個帶多個窗格的窗口。你也可以在會話中運行多個窗口。

  • 為了創建一個新的窗口,請敲Ctrl+b, c 。請注意,狀態欄顯示當前有兩個窗口正在運行。(敏銳的讀者會看到上麵的截圖。)
  • 要移動到上一個窗口,請敲 Ctrl+b, p 。
  • 要移動到下一個窗口,請敲 Ctrl+b, n 。
  • 要立即移動到特定的窗口,請敲 Ctrl+b 然後跟上窗口編號。

如果你想知道如何關閉窗格,隻需要使用 exit 、logout,或者 Ctrl+d 來退出特定的命令行 shell。一旦你關閉了窗口中的所有窗格,那麼該窗口也會消失。

脫離和附加

tmux 最強大的功能之一是能夠脫離和重新附加到會話。 當你脫離的時候,你可以離開你的窗口和窗格獨立運行。 此外,您甚至可以完全注銷係統。 然後,您可以登錄到同一個係統,重新附加到 tmux 會話,查看您離開時的所有窗口和窗格。 脫離的時候你運行的命令一直保持運行狀態。

為了脫離一個會話,請敲 Ctrl+b, d。然後會話消失,你重新返回到一個標準的單一 shell。如果要重新附加到會話中,使用一下命令:


  1. tmux attach-session

當你連接到主機的網絡不穩定時,這個功能就像救生員一樣有用。如果連接失敗,會話中的所有的進程都會繼續運行。隻要連接恢複了,你就可以恢複正常,就好像什麼事情也沒有發生一樣。

原文發布時間為:2017-04-19

本文來自雲棲社區合作夥伴“Linux中國”

最後更新:2017-05-22 14:32:58

  上一篇:go  調試器的工作原理(一):基礎篇
  下一篇:go  Linux 上 GDM 登錄界麵如何適應高分屏