Terminal Multiplexer (From WIKIPEDIA) - A terminal multiplexer is a software application that can be used to multiplex several separate pseudoterminal-based login sessions inside a single terminal display, terminal emulator window, PC/workstation system console, or remote login session, or to detach and reattach sessions from a terminal.shell
Tmux 是 Linux 平臺下一款 終端複用 的工具,其能夠在單一的終端上實現多任務管理,經過簡單的操做進行任務之間的切換,且任務的執行不受終端退出等意外狀況的影響。vim
Session(會話)、Window(窗口)、Pane(窗格):tmux使用session來區分不一樣的工做環境,一個session能夠包含多個window,一個window能夠被分割成多個pane服務器
sudo apt-get install tmux
vim ~/.tmux.conf
1 # 解綁 Ctrl + b 快捷鍵 2 unbind C-b 3 4 # 更換前綴快捷鍵爲 Ctrl + a 5 set -g prefix C-a
source-file ~/.tmux.conf
1 # 將快捷鍵 r 設置爲加載配置文件,並在狀態欄顯示「Config Reloaded」信息 2 bind-key r source-file ~/.tmux.conf \; display-message "Config Reloaded!"
1. 建立 panesession
1 # 重定義分隔窗格快捷鍵 2 unbind '"' 3 unbind % 4 bind-key v split-window -h 5 bind-key h split-window -v
2. 切換 paneapp
3. 關閉 panesocket
4. 全屏顯示 paneide
1. 建立 window工具
2. 切換 windowspa
3. 關閉 window命令行
0. 原理
在 tmux 實現中,會話實際由 tmux 客戶端( client )顯示在屏幕上,而全部的會話均由一個惟一的 tmux 服務器( server )進行管理,當用戶創建第一個 tmux 會話時,tmux server 即啓動,而當全部的會話都被註銷時,tmux server 則自動中止,從而退出 tmux。tmux client 和 server 均爲獨立的進程,它們之間經過一個位於 /tmp 目錄下的 socket 進行交互。當用戶從原始的終端經過 tmux 命令建立一個會話或從新 attach 一個會話時,tmux 即在當前終端下創建一個 tmux client,用於顯示進入的 tmux 會話,當用戶在 tmux 中進行會話切換時,實際是將當前的 tmux client 從新 attach 到新的會話中( 從而顯示新的會話 ),而當用戶選擇 detach 當前會話時,實際是取消 tmux client 與當前會話的綁定( 從而再也不顯示該會話 ),不管是上述哪種狀況,實際上只是 tmux client 再也不顯示某一個會話,而不是關閉會話,會話仍會在後臺運行,由 tmux server 進行管理。當從 tmux 退出至原始的終端時,該終端下創建的 tmux client 即自動退出。
1. 建立 session
tmux new -s session_name [-n window_name] //建立並進入一個名爲 session_name 的會話,其擁有一個名爲 window_name 的窗口
2. 離開 session
3. 進入 session
tmux attach [-t session_name] //進入一個名爲 session_name 的會話,attch也能夠用 a 或 at 代替
4. 查詢 session
5. 註銷 session
tmux kill-session -t session-name //刪除名爲 session-name 的會話 tmux kill-server //刪除全部的會話
6. 重命名 session
tmux rename -t old_session_name new_session_name