tmux配置與使用
適用場景
tmux是一個優秀的終端多路複用軟體,類似GNU Screen,但來自於OpenBSD,採用BSD授權。使用它最直觀的好處就是,通過一個終端登入遠端主機並執行tmux後,在其中可以開啟多個控制檯而無需再“浪費”多餘的終端來連線這臺遠端主機;當然其功能遠不止於此,比如分屏(當然其他一些軟體也能達到這個目的,比如vim,但我還是喜歡tmux的分屏)。
配置檔案已經放到了 GitHub 上: tmux.conf
為什麼使用tmux:
tmux比screen有更多的功能,能夠保持工作環境的連續性。例如tmux解決如下的問題:
下班後,如果你需要斷開ssh或關閉電腦,你的ssh連線將丟失;
在公司或者實驗室開啟的ssh,在其他地方也需要訪問,比如宿舍或家裡;
ssh可能由於一些原因中途意外斷開(比如長時間沒有操作)導致操作中斷;
安裝完成後輸入命令tmux即可開啟軟體,介面十分簡單,類似一個下方帶有狀態列的終端控制檯;但根據tmux的定義,在開啟了tmux伺服器後,會首先建立一個會話,而這個會話則會首先建立一個視窗,其中僅包含一個面板;也就是說,這裡看到的所謂終端控制檯應該稱作tmux的一個面板,雖然其使用方法與終端控制檯完全相同。
tmux使用C/S模型構建,主要包括以下單元模組:
server伺服器。輸入tmux命令時就開啟了一個伺服器。
session會話。一個伺服器可以包含多個會話。
window視窗。一個會話可以包含多個視窗。
pane面板。一個視窗可以包含多個面板。
遠端主機連線
一鍵啟動遠端主機上的 tmux:
ssh -t [email protected] tmux
如果你之前在遠端主機上已經開啟了 tmux 的話,用以下命令。
遠端主機僅有一個tmux會話,直接進行重連:
ssh -t [email protected] tmux a
遠端主機有多個tmux會話,我們想要指定重新連線名為foo的tmux會話 ( ssh後面的
-t
為了執行任意一個基於screen的遠端主機上的程式,不可省略。tmux後面的-t
為-target
ssh -t [email protected] tmux a -t foo
注意事項
在不同大小的螢幕連線一個session可能會出現問題。比如在一個較小的桌面開啟一個session, 然後又在一個較大的桌面也開啟這個session. 則會發現在較大的桌面上, 也只會顯示和小桌面同樣大小的視窗, 其餘部分被密密麻麻的小點擴充.
解決方法之一是加入-d
選項:
ssh -t [email protected] tmux a -d -t foo
即先強制 detach掉小桌面的session, 然後再在較大桌面開啟session.
另外, 或在配置檔案中設定:
setw -g aggressive-resize on
配置檔案
最全面的文件當然是官方的manual page, tmux.github.io.
如果在網上搜索的話你會發現大多的tmux配置檔案都是大同小異. 在我的配置檔案並沒有像大多配置一樣將tmux的字首鍵(類似emacs)的字首鍵重對映為Ctrl+a
,而是選擇了預設設定Ctrl+b
. 另外在顏色選擇上不同平臺下渲染的效果不一樣, 注意適應。
下面是我的配置檔案.
開始tmux
開始tmux使用。以下大部分內容均為預設設定, 如果在配置檔案修改了設定則以配置檔案為準。且在英文輸入狀態下進行。
commend | explanation |
---|---|
tmux |
啟動tmux會話 |
tmux new -s myname |
建立一個名為myname的新的會話 |
tmux a / tmux at / tmux attach |
如果當前僅有一個會話,重新連線該會話 |
tmux a -t myname |
連線到指定會話myname |
tmux ls |
顯示所有會話 |
tmux kill-session -t myname |
關閉指定會話myname |
會話
以下的session(會話)、window(視窗)與pane(面板)命令中,PREFIX表示字首鍵, 即如果未重對映字首鍵的話,PREFIX表示Ctrl+b
,然後再按後面的鍵。
會話命令加字首鍵。比如下面的s即指prefix+s,Ctrl+b+s. 分3步:
- 按下
Ctrl-b
鍵 (tmux 字首鍵) - 放開
Ctrl-b
- 按下
s
鍵
commend | explanation |
---|---|
:new<CR> |
New session |
d (detach) |
從一個會話中分離,讓該會話在後臺執行 |
$ |
重新命名會話 |
s |
顯示會話 |
( |
切換到上一會話 |
) |
切換到下一會話 |
L (Last) |
切換到最後一個會話 |
視窗(標籤)
window, 視窗操作。加字首鍵。
commend | explanation |
---|---|
c (create) |
建立新視窗 |
w (window) |
顯示視窗列表 |
f (find) |
查詢視窗 |
, |
重新命名視窗 |
& |
關閉當前視窗,帶有確認提示 |
n (next) |
切換到下一視窗 |
p (previous) |
切換到上一視窗 |
l (last) |
切換到最後一個使用的視窗 |
面板 (分割)
pane, 面板操作。加字首鍵。
commend | explanation |
---|---|
% |
垂直分割面板 (預設) |
` | ` |
" |
水平分割面板 (預設) |
- |
水平分割面板 (配置修改後) In tmux.conf: bind-key split-window -h |
o |
在已開啟的面板間迴圈移動當前焦點 |
q |
短暫顯示面板編號 |
x |
關閉當前面板,帶有確認提示 |
z |
Toggle active pane between zoomed and unzoomed |
+ |
Break pane into window (e.g. to select text by mouse to copy) |
- |
Restore pane from window |
Space |
迴圈使用tmux的幾個預設面板佈局 |
Q |
Show pane numbers When the numbers show up type the key to go to that pane |
{ |
移動當前面板到左側 |
} |
移動當前面板到右側 |
複製模式
按下 PREFIX-[
即可進入複製模式. 然後使用方向鍵在螢幕上進行移動. 預設情況下只有方向鍵起作用. 不過我們可以在配置檔案中進入設定以vi的方式進行移動。 在.tmux.conf
加入:
setw -g mode-keys vi
設定完以後, 我們就可以利用 h
, j
, k
, and l
進行移動.
不過預設情況下,文字只能夠在同一個tmux會話中進行復制與貼上。為了能夠將文字貼上到任何地方,還需要告訴tmux複製到系統的貼上板。為此需要安裝reattach-to-user-namspace
.
安裝reattach-to-user-namespace, 使用brew的話非常方便,一個命令即可:
brew install reattach-to-user-namespace
設定
.tmux.conf
配置檔案# invoke reattach-to-user-namespace every time a new window/pane opens set-option -g default-command "reattach-to-user-namespace -l bash"
選取與複製文字
- 進入tmux的複製模式:prefix+
[
, 此時會看到右上角出現如下圖所示的標記:
以vim的方式在文字間進行移動。
移動到想要開始複製文字塊的地方,按下
space
鍵開始選中文字, 與vim的visual模式很像。文字選擇完畢按下
enter
鍵退出複製模式。
此時如果你已經安裝了reattach-to-user-namespace, 那麼你可以在任何地方進行貼上。如果沒有,你可以在tmux的該會話中使用prefix+]
進行貼上。
commend | explanation |
---|---|
^ |
Back to indentation |
Esc |
Clear selection |
Enter |
Copy selection |
j |
Cursor down |
h |
Cursor left |
l |
Cursor right |
L |
Cursor to bottom line |
M |
Cursor to middle line |
H |
Cursor to top line |
k |
Cursor up |
d |
Delete entire line |
D |
Delete to end of line |
$ |
End of line |
: |
Goto line |
C-d |
Half page down |
C-u |
Half page up |
C-f |
Next page |
w |
Next word |
p |
Paste buffer |
C-b |
Previous page |
b |
Previous word |
q |
Quit mode |
C-Down / J |
Scroll down |
C-Up / K |
Scroll up |
n |
Search again |
? |
Search backward |
/ |
Search forward |
0 |
Start of line |
Space |
Start selection |
相關推薦
tmux配置與使用
適用場景 tmux是一個優秀的終端多路複用軟體,類似GNU Screen,但來自於OpenBSD,採用BSD授權。使用它最直觀的好處就是,通過一個終端登入遠端主機並執行tmux後,在其中可以開啟多個控制檯而無需再“浪費”多餘的終端來連線這臺遠端主機;當然其功能
Centos tmux 安裝 與 配置
tmux: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
Linux - vim安裝 配置與使用
格式 only ctx net height border term mona 方便 一 Vim 簡單介紹 曾經一直用vi,近期開始使用 vim,以下將兩者做一下比較。 vi和vim都是多模式編輯器,不同的是vim 是vi的升級版本號,它不僅兼容vi的全部指令,並且
Flask入門之SQLAlchemy配置與數據庫連接
數據 rdo nsh imp log kref mod pre file 1. 安裝SQLAlchemy pip install flask-sqlalchemy 2. 導入和配置 from flask_sqlalchemy import SQLAlchemy bas
centos EMQTTD 集群安裝配置與測試驗證
centos emqttd 集群安裝配置與測試驗證安裝包下載地址:http://emqtt.com/downloads在這裏我們下載 emqttd-centos6.8-v2.1.2.zip配置兩臺主機hosts192.168.0.10 s1.emqtt.io 192.168.0.20 s2.emqtt.i
【ADO.NET】1、簡單配置與使用
字符串 文件中 .exe 增加 獲取字符串 pass 數據庫連接 rect manage 1、一些基礎的知識點 ExecuteReader(); //返回查詢到的數據,一次一行,用於 selectExecuteNonQuery(); //返回影響的行數,用於 delete,
nmap檢測ms17-010的配置與使用方法
病毒 微軟 nmap 永恒之藍 ms17-010 1 前言針對近期肆虐全球的“永恒之藍”勒索蠕蟲病毒,為有效預防病毒的入侵,將被病毒入侵後的損失降到最低,各單位均采取了相關應急處置辦法,但沒有方法驗證處置辦法是否行之有效。很幸運的是,Paulino Calderon在https:
CentOS 6.x 本地yum源配置與使用
mnt local 放置 cal nbsp 自動 all rpm-gpg 網絡 系統默認已經安裝了可使用yum的軟件包,所以可以直接配置: # mount /dev/cdrom /mnt 掛載鏡像,可以寫到配
UIAutomator環境配置與運行
pla 引入 rms blog rop prop 目錄 orm java 環境配置,引入UTAutomator測試包 1.進入Eclipse,創建測試項目,例如Android/Java項目 2.右鍵點擊測試項目,選擇“Properties”---Java Build Pat
docker虛擬化安裝配置與常用命令
sta 80端口 ubuntu map 虛擬化 導出 6.5 關系 版本 一、Docker安裝配置 docker只有在centos6.5以上機器才能使用yum直接安裝,如果其他版本需要安裝centos擴展源epel。 docker官方文檔說要求Linux kernel至
solr的安裝配置與helloworld
配置中文 啟動tomcat com war包 執行 package .text 文件 rdo 一、安裝solr 1.安裝jdk環境和tomcat 2.解壓solr壓縮包,這裏我解壓到opt目錄下 3.把/usr/local/solr-4.8.0/dist/solr-4.8.
CxImage 簡單配置與使用
選項 ghost reel sage header ctu 也會 wim 才會 CxImage 簡單配置與使用 如果本篇文章還不能解決你在生成解決方案以及便宜過程中的問題 請參閱: http://blog.csdn.net/afterwards_/article/det
網絡硬件設備配置與管理(CCNA)下
網絡 硬件 cisco ccna 點擊下載:網絡硬件設備配置與管理(CCNA)下本文出自 “飛奔的魚兒” 博客,請務必保留此出處http://feiyuer.blog.51cto.com/6967044/1931155網絡硬件設備配置與管理(CCNA)下
webpack漸入佳境系列一:webpack環境配置與打包基礎【附帶各種 "坑" 與解決方案!持續更新中...】
utf 環境配置 lan 配置 要求 完全 需要 構建 樣式 首先介紹傳統模塊化開發的主流方案: 1.基與CMD的sea.js,玉伯提出的解決方案,據說原來京東團隊在使用。用時才定義,就近加載。最近在瀏覽seajs官方文檔時發現seajs的域名已經在轉賣,驚恐萬分之余又想
jira安裝配置與服務腳本
jira安裝部署 jira服務腳本 jira授權一、安裝說明系統:CentOS 6.7 x64 export LANG="zh_CN.UTF-8" # 否則中文無法顯示,還是英文安裝java 1.7.x版本jdk安裝mysql 5.1及以上版本二、數據庫配置創建mysql:>>crea
[轉]Jetson TX1 開發教程(1)配置與刷機
uda 密碼 隨著 賬號 自己 一個 路由器 b- 出廠 開箱 Jetson TX1是英偉達公司新出的GPU開發板,擁有世界上先進的嵌入式視覺計算系統,提供高性能、新技術和極佳的開發平臺。在進行配置和刷機工作之前,先來一張全家福: 可以看到,Jetson TX1 包含內容
【SonarQube】安裝、配置與使用 01
ges 工具 順序 64位系統 runner lba 問題 分析 clas SonarQube是管理代碼質量一個開放平臺,可以快速的定位代碼中潛在的或者明顯的錯誤,下面將會介紹一下這個工具的安裝、配置以及使用。 準備工作; 1、jdk(不再介紹) 2、sonarqube:h
plsql數據庫配置與使用
lac 用戶名 bold mes ntc 打開 color oracle 多個 數據庫配置方法二(不安裝Oracle,使用instantclient工具配置連接oracle) instant client 是連接oracle的即時安裝工具。 配置instant clie
Druid監控頁面配置與使用
method mil 使用 blog troy ict 密碼 一次 div 一、Maven中添加Durid連接池依賴 <!-- druid連接池 --> <dependency> <groupId>com.alibaba<
Redis中取得所有Key、過期時間配置與獲取、Key過期通知。
ive exceptio config lee var url multipl -c class string connection = "127.0.0.1:6379,password=xxxxx,connectRetry=5"; [TestM