如何在linux上使用tmux(以及為什麼它比screen更好)

linuxtmux命令是一個終端多路複用器,類似於screen。它的倡導者很多,聲勢浩大,所以我們決定將兩者進行比較。是tmux真的更好,還是隻是喜歡你所知道的?...

linuxtmux命令是一個終端多路複用器,類似於screen。它的倡導者很多,聲勢浩大,所以我們決定將兩者進行比較。是tmux真的更好,還是隻是喜歡你所知道的?

tmux與螢幕

tmux和GNU螢幕命令都是終端多路複用器。它們允許您在一個終端視窗中有多個視窗,並在它們之間來回跳轉。視窗可以分為多個窗格,每個窗格都提供一個獨立的命令列。

您還可以分離一個會話,它將成為一個在後臺執行的無頭實體,甚至可以關閉啟動它的終端視窗。準備好後,可以開啟一個新的終端視窗並重新連線仍在執行的會話。您還可以透過SSH連線執行此操作。

您可以分離一臺計算機上的會話,回家,然後登入到遠端計算機。重新連線後,可以重新連線後臺會話並以互動方式再次使用它。

螢幕命令是什麼?

screen命令也是一個終端多路複用器,它包含很多選項。關於你能用它做的所有事情的真相,請檢視我們的深入文章。

這一次,我們將專注於tmux。接下來,我們將介紹screen如何處理相同的特性或功能。

關於螢幕,只有一件事讓我們惱火。我們到了以後再談,看看tmux是否更好。

相關:如何使用Linux的screen命令

安裝tmux

雖然screen通常在流行的Linux發行版上預設安裝,但tmux不是。要在Ubuntu上安裝tmux,請鍵入以下命令:

sudo apt-get install tmux

如何在linux上使用tmux(以及為什麼它比screen更好)

在Manjaro,你可以使用pacman:

sudo pacman -Sy tmux

如何在linux上使用tmux(以及為什麼它比screen更好)

在Fedora31上,已經安裝了tmux。

啟動tmux會話

要啟動tmux,只需鍵入它並按回車鍵:

tmux

如何在linux上使用tmux(以及為什麼它比screen更好)

在tmux會話中,終端視窗將顯示一個狀態列。

如何在linux上使用tmux(以及為什麼它比screen更好)

狀態列的右側顯示主機名、時間和日期。左側顯示以下會話相關資訊:

  • [0]:這是會話名稱。預設情況下,它們從零開始編號。我們將介紹如何為下面的會話提供有意義的名稱。
  • 0:bash*:0表示這是此會話中的第一個視窗。此會話中執行的唯一程序是bash。如果你執行一個程式,它的名字會出現在這裡。星號(*)表示這是您正在檢視的視窗。每次在tmux會話中建立一個新視窗時,它的視窗號和在其中執行的程式的名稱都會新增到狀態列中。

screen命令不提供狀態列。你必須瞎飛,依靠你的智慧去知道發生了什麼,這需要一點練習。

好的一面是,你不會失去一個終端視窗房地產線。當然,您通常會擴充套件您的終端視窗,使使用終端多路複用器變得有價值。在這種情況下,狀態列丟失一行並不是什麼大問題。我們將終端視窗的影象保留為預設大小,以便您可以檢視資訊。

命令是透過擊鍵提供給tmux的,這有兩個部分。首先,按下Ctrl+B以引起tmux的注意。然後快速按next鍵向mux傳送命令。透過按字母、數字、標點符號或箭頭鍵來發出命令。

它在螢幕上是一樣的,只是你按下Ctrl+A來引起它的注意。

要關閉視窗,請按Ctrl+B,然後快速按X。狀態列變為琥珀色。然後系統會提示您確認是否要關閉視窗。

按Y鍵關閉視窗,如果你改變主意,按N鍵。之後不必按Enter鍵;Y或N就足以註冊您的選擇。

如何在linux上使用tmux(以及為什麼它比screen更好)

如果按Y鍵,視窗將關閉。因為這是此會話中的唯一視窗,所以會話被終止。

如何在linux上使用tmux(以及為什麼它比screen更好)

tmux會話將關閉,您將返回到啟動tmux的命令列。您將在終端視窗中看到“[退出]”。

這看起來像是在陳述一個顯而易見的事實,但這是一個確認,您已經關閉了會話,沒有讓它分離並執行。我們將在下面討論分離會話。

啟動命名的tmux會話

如果您定期啟動多個tmux會話,您將很快體會到為每個會話賦予一個有意義的名稱的功能。您也可以在螢幕中命名會話,但它們不會顯示在會話視窗的任何位置。

要使用會話名稱啟動tmux,請使用new(new session)命令和-s(session name)選項。我們的會話將被稱為“geek-1”,因此我們鍵入以下內容:

tmux new -s geek-1

如何在linux上使用tmux(以及為什麼它比screen更好)

當tmux會話載入時,“geek-1”顯示為狀態列最左側的第一個條目。

如何在linux上使用tmux(以及為什麼它比screen更好)

新增更多視窗

要在當前會話中建立新視窗,請按Ctrl+B,然後按C。當前會話中會出現一個空白的終端視窗。因此,我們將在這個新視窗中執行一些程式,讓我們使用-w(follow)選項啟動dmesg命令:

dmesg -w

如何在linux上使用tmux(以及為什麼它比screen更好)

現在會話中有兩個視窗:一個執行top,另一個執行dmesg。不過,我們一次只能看到一個。

如何在linux上使用tmux(以及為什麼它比screen更好)

檢視狀態列的左側。我們還在“geek-1”tmux會話中。在視窗0中,top正在執行,而在視窗1中,dmesg正在執行。dmesg後面的星號(*)告訴我們哪個視窗是可見的。

要在視窗之間切換,請按Ctrl+B,然後按以下鍵之一:

  • N:顯示下一個視窗。
  • P:顯示上一個視窗。
  • 0到9:顯示編號為0到9的視窗。

也可以從列表中選擇視窗。如果按Ctrl+B,然後按W,將顯示一個視窗列表。

如何在linux上使用tmux(以及為什麼它比screen更好)

要移動琥珀色突出顯示欄,請按向上或向下箭頭、Home或End。顯示屏的底部顯示高亮顯示視窗中內容的預覽。

按Enter鍵移到高亮顯示的視窗,或按Esc鍵離開視窗列表而不切換。

分離和附加會話

如果按Ctrl+B,然後按D,則將分離會話。它將繼續在後臺執行,但您將無法看到或與之互動。

我們已經在課程中開始了,所以我們有一個正在執行的過程來演示。然後,我們按Ctrl+B,然後按D。會話消失併成為後臺會話。

如何在linux上使用tmux(以及為什麼它比screen更好)

我們回到原來的終端視窗。來自tmux的訊息告訴我們會話已分離。這也讓我們想起了我們給會議起的名字。這很方便,因為這就是我們用來附加到後臺會話,然後將其恢復到互動式會話的方法。

要附加分離的會話,我們將使用帶有-t(目標會話)選項的自解釋的attach session命令。我們還將提供我們希望回憶的會話的名稱。

我們鍵入以下內容:

tmux attach-session -t geek-1

如何在linux上使用tmux(以及為什麼它比screen更好)

我們的會話返回並再次成為可見的互動式會話。

如何在linux上使用tmux(以及為什麼它比screen更好)

附加會話時,在分離會話之前啟動的任何長時間執行或連續程序仍將在後臺執行(除非它們已完成)。

螢幕可以做到這一點,但不是直觀的。

處理多個會話

讓我們開啟另一個終端視窗,開始一個名為“geek-2”的新tmux會話:

tmux new -s geek-2

如何在linux上使用tmux(以及為什麼它比screen更好)

在那節課中,我們將開始dmesg:

dmesg -w

如何在linux上使用tmux(以及為什麼它比screen更好)

現在,我們有了原來的“geek-1”tmux會話,還有一個新的叫做“geek-2”

如何在linux上使用tmux(以及為什麼它比screen更好)

狀態列向我們顯示這個會話稱為“geek-2”,它有一個執行dmesg的視窗。

如果我們按Ctrl+B,然後按D,我們將分離該會話。

如何在linux上使用tmux(以及為什麼它比screen更好)

回到“geek-1”tmux會話中,我們按Ctrl+B,然後按S檢視tmux會話的列表。

如何在linux上使用tmux(以及為什麼它比screen更好)

要明確的是,這是一個會話列表。我們之前看到的類似顯示是單個會話中的視窗列表。

您可以透過按向上和向下箭頭、Home和End來移動琥珀色突出顯示欄。底部部分顯示突出顯示的會話中內容的預覽。

如何在linux上使用tmux(以及為什麼它比screen更好)

如果按向右箭頭,將顯示突出顯示的會話的視窗。

如何在linux上使用tmux(以及為什麼它比screen更好)

按Enter鍵移動到突出顯示的會話或視窗,或按Esc鍵離開會話列表而不更改會話。如果選擇一個新會話,則當前會話將分離,並且所選會話將附加。

在此之前,我們分離了“極客2”會話。但是,您可以使用仍然附加到其原始終端視窗的會話來執行此操作。當您這樣做時,任何螢幕更改都將同時出現在兩個tmux會話中。

screen命令也可以透過一組類似的命令來實現這一點。

使用窗格

如果按Ctrl+B,然後按雙引號(“”),則將視窗水平拆分為兩個窗格。

如何在linux上使用tmux(以及為什麼它比screen更好)

這隻影響當前視窗;會話中的其他視窗不會更改。我們使用了頂部窗格中的tmuxls命令來列出此會話中的視窗。有兩個,狀態行告訴我們我們在第一視窗。如果我們按Ctrl+B跳轉到視窗0,然後按0(零),我們會看到它和我們離開時一樣。

這是兩個獨立的命令列,而不是一個視窗中的兩個檢視;它們是不同的獨立shell。我們可以透過在每個窗格中執行不同的命令來顯示這一點。

我們鍵入以下內容:

找到對應核心版本

ls-hl型

要從一個窗格移動到另一個窗格,請按Ctrl+B,然後按向上、向下、向左或向右箭頭。

如何在linux上使用tmux(以及為什麼它比screen更好)

如果按Ctrl+B,然後按百分號(%),則會垂直拆分當前窗格。

如何在linux上使用tmux(以及為什麼它比screen更好)

按Ctrl+B,然後按Q使tmux短暫地閃爍每個窗格的編號。

如何在linux上使用tmux(以及為什麼它比screen更好)

這些數字用於來自tmux的提示和訊息中。按Ctrl+B,然後按X關閉當前窗格。狀態列變為琥珀色,系統將提示您確認是否要關閉該窗格編號。按Y鍵刪除窗格,或按N鍵保持原樣。

如何在linux上使用tmux(以及為什麼它比screen更好)

如果按Y鍵,窗格將被刪除。

如何在linux上使用tmux(以及為什麼它比screen更好)

screen命令也有窗格,但是,它們的使用不夠直觀。screen讓我們惱火的是,如果您用窗格分離了一個會話,那麼當您重新連線該會話時,窗格就會消失。這個很快就會變老。

a ctrl+b備忘單

我們在下面的tmux中包含了不同命令的備忘單。

會話命令

  • S:列出會話。
  • $:重新命名當前會話。
  • D:分離當前會話。
  • Ctrl+B,然後呢?:在tmux中顯示幫助頁。

視窗命令

  • 建立一個新視窗。
  • ,:重新命名當前視窗。
  • W:列出窗戶。
  • 護士:移到下一個視窗。
  • P:移到上一個視窗。
  • 0到9:移動到指定的視窗編號。

窗格命令

  • %:建立水平拆分。
  • “:建立垂直拆分。
  • H或左箭頭:移到左邊的窗格。
  • I或向右箭頭:移到右側窗格。
  • J或向下箭頭:移動到下面的窗格。
  • K或向上箭頭:移動到上面的窗格。
  • 問:簡要顯示窗格編號。
  • O:按順序在窗格中移動。每次按下都會把你帶到下一個,直到你遍歷所有的按鍵。
  • }:將當前窗格的位置與下一個窗格交換。
  • {:將當前窗格的位置與上一個窗格交換。
  • X:關閉當前窗格。

他們如何比較

在功能方面,screen和tmux的效能相似,並且提供相同的主要特性。訪問這些功能的方式明顯不同。tmux提供了更流暢、更舒適的方式來實現各種功能。然而,這並不是唯一的區別。

在tmux中重新命名會話和視窗的功能非常簡潔,而在重新連線會話時保留窗格的事實改變了遊戲規則。

另一方面,當您分離並重新連線會話時,螢幕將完全丟失窗格。這幾乎夠煩人的,讓你一開始就避免分離。

tmux還有很多功能,包括其難以置信的靈活指令碼功能。你應該親自去看看。

  • 發表於 2021-04-02 05:16
  • 閱讀 ( 41 )
  • 分類:網際網路

你可能感興趣的文章

electron開放框架以及為什麼它對應用程式開發非常棒

... 這對使用者和開發者來說都是好事。人們不必擔心如何找到程式的替代品,這一事實有助於降低在作業系統之間切換的障礙。除此之外,它還為編寫軟體的人員提供了更高的使用者覆蓋率,而且只需付出最小的努力。 ...

  • 發佈於 2021-03-12 14:53
  • 閲讀 ( 51 )

20個ted關於程式設計的演講每個人都必須觀看

透過這些TED關於程式設計的討論,您將不會學習如何程式設計,而是如何成為一名程式設計師。知道如何編寫程式碼只是程式設計的一個方面,坦白地說,這是一個較小的方面。懂得思考是關鍵。 ...

  • 發佈於 2021-03-12 21:17
  • 閲讀 ( 51 )

誰製造了linux?為什麼它是免費的?

Linux是世界上使用最廣泛的免費開源作業系統。與商業替代品不同,沒有一個人或一家公司可以獲得信貸。Linux之所以如此,是因為來自世界各地的許多人的想法和貢獻。 ...

  • 發佈於 2021-03-13 08:27
  • 閲讀 ( 61 )

5種價格類似的surface pro 4和surface pro 5替代品

...能都非常驚人。你沒有OLED,但是預設的LCD面板對大多數使用者來說是完美的。它的佈局非常適合膝上型電腦和平板電腦的使用。另外,還有一個無風扇液體冷卻系統。 ...

  • 發佈於 2021-03-14 07:25
  • 閲讀 ( 54 )

如何在kodi上設定vpn以及為什麼要

... 既然你知道為什麼在Kodi上使用VPN很重要,我將向你展示如何設定一個。 ...

  • 發佈於 2021-03-14 16:54
  • 閲讀 ( 61 )

為什麼我們從來沒有“linux桌面年”

...都使用GRUB引導載入程式,預設情況下,它會詢問您希望如何引導作業系統,並給您10秒鐘的時間來做出決定。 ...

  • 發佈於 2021-03-17 08:13
  • 閲讀 ( 58 )

如何在raspberry pi上安裝android

...願意使用基於Linux的作業系統。但缺少觸控式螢幕支援又如何呢? ...

  • 發佈於 2021-03-18 23:47
  • 閲讀 ( 56 )

如何在帶螢幕的linux終端上進行多工處理

... 如何安裝螢幕 ...

  • 發佈於 2021-03-21 22:09
  • 閲讀 ( 41 )

10路kde是比gnome更好的linux桌面

...看看侏儒經典?但是你使用KDE的次數越多,你就越能學會如何去做,你就越能找到愛。 ...

  • 發佈於 2021-03-25 13:15
  • 閲讀 ( 77 )

什麼是protonmail,為什麼它比gmail更私密?

...GitHub並下載ProtonMail webmail應用程式的程式碼。如果您知道如何在程式碼庫中查詢bug或潛在的安全缺陷,您可以在自己的伺服器上部署它。ProtonMail還使用成熟的開源加密技術,包括AES、RSA和OpenPGP。 擁有一個開原始碼庫有兩個主要...

  • 發佈於 2021-03-31 12:07
  • 閲讀 ( 58 )
洗澡的泥巴
洗澡的泥巴

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦