1. 程式人生 > >mac/linux下終端遠端看日誌利器-tmux

mac/linux下終端遠端看日誌利器-tmux

tmux

tmux 是一個優秀的終端複用器類自由軟體。使用者可以通過 tmux 在一個終端內管理多個分離的會話,視窗及面板,對於同時使用多個命令列,或多個任務時非常方便。

安裝

macOS 上使用 Homebrew 安裝即可:
$ brew install tmux

霸道的功能

介紹

主要包括以下單元模組

內容 說明
server 伺服器 輸入tmux命令時就開啟了一個伺服器。
session 會話 一個伺服器可以包含多個會話。
window 視窗 一個會話可以包含多個視窗。
panel 面板 一個視窗可以包含多個面板。

這裡寫圖片描述

shell下操作 tmux 會話

tmux ls # 列出所有 tmux 會話 -->常用
tmux new -s foo # 新建名稱為 foo 的會話 -->常用
tmux a # 恢復至上一次的會話 -->常用
tmux a -t foo # 恢復名稱為 foo 的會話,會話預設名稱為數字 -->常用
tmux kill-session -t foo # 刪除名稱為 foo 的會話 -->常用
tmux kill-server # 刪除所有的會話 -->常用
tmux list-panes -a 列出當前session的所有窗格 -->常用

快捷鍵

一般情況下 tmux 中所有的快捷鍵都需要和字首快捷鍵 ⌃b 來組合使用(注:⌃ 為 Mac 的 control 鍵)

會話session/server操作
如果運行了多次 tmux 命令則會開啟多個 tmux 會話(session)。在 tmux 會話中,不要忘記字首快捷鍵 ⌃b 

$ 重新命名當前會話 -->常用
d 脫離當前會話;這樣可以暫時返回Shell介面,輸入tmux a能夠重新進入之前的會話 -->常用
D 選擇要脫離的會話;在同時開啟了多個會話時使用 -->常用
s 選擇並切換會話;在同時開啟了多個會話時使用 -->常用
?
列出所有快捷鍵;按q返回 : 進入命令列模式;此時可以輸入支援的命令,例如kill-server可以關閉伺服器 Ctrl+z 掛起當前會話 r 強制重繪未脫離的會話 [ 進入複製模式;此時的操作與vi/emacs相同,按q/Esc退出 不好用,不建議 ~ 列出提示資訊快取;其中包含了之前tmux返回的各種提示資訊
視窗window操作
tmux 除了窗格以外,還有視窗(window) 的概念。依次使用以下快捷鍵來熟悉 tmux 的視窗操作:
c 新建視窗,此時當前視窗會切換至新視窗,不影響原有視窗的狀態 -->常用
, 重新命名視窗,可以使用中文,重新命名後能在 tmux 狀態列更快速的識別視窗 -->常用
<n> <n>為鍵盤數字,切換到第 n 個 Window. 例:0 切換至 0 號視窗,使用其他數字切換至對應視窗 -->常用
& 關閉當前視窗 -->常用
p 切換至上一視窗
n 切換至下一視窗
w 視窗列表選擇,注意 macOS 下使用 ⌃p 和 ⌃n 進行上下選擇
f 根據視窗名搜尋選擇視窗,可模糊匹配
窗格panel操作
% 左右平分出兩個窗格 -->常用
" 上下平分出兩個窗格 -->常用
z 最大化當前窗格,再次執行可恢復原來大小 -->常用
x 關閉當前窗格 -->常用
space 切換窗格佈局,tmux 內建了五種窗格佈局,也可以通過 ⌥1 至 ⌥5來切換 -->常用
{ 當前窗格前移
} 當前窗格後移
; 選擇上次使用的窗格
o 選擇下一個窗格,也可以使用上下左右方向鍵來選擇
q 顯示所有窗格的序號,在序號出現期間按下對應的數字,即可跳轉至對應的窗格

down voteaccepted
To create a new session, The quickest way is:
ctrl-b :new -s <name>

Then ctrl-b s to interactively select and attach to the session.

If we try to create a new session while attached it will result in a nesting error
$ tmux new -s bar
> sessions should be nested with care, unset $TMUX to force

To solve this we create a new detached session
$ tmux new -s bar -d
必備配置
1. 多窗格同步執行相同命令功能(Type your command to be executed in all panes in same window)
方法1 當前window有效
To turn on: Ctrl-b then :setw synchronize-panes
To turn off: Ctrl-b then :setw synchronize-panes off
方法2 全域性有效
Actually, I bind a couple of keyboard shortcuts in ~/.tmux-conf to switch on/off panes synchronization:
bind e setw synchronize-panes on
bind E setw synchronize-panes off
方法3 全域性有效
Just to note, you don't need to set 2 keys, instead you can use one key to toggle synchronization option: 
bind e set-window-option synchronize-panes
配置完需要重新載入~/.tmux-conf,見下文:重新載入配置檔案

例項:
這裡寫圖片描述

2. 開啟滑鼠功能:點選選擇窗格/視窗,拖動窗格大小,以及拖動滑鼠滾屏複製文字
tmux 預設配置中最糟糕的體驗就是滾屏檢視和文字複製(大家可以先試試看)。你需要先使用 ⌃b [ 快捷鍵進入 copy 模式,然後使用翻頁、字元定位來選擇需要的字元,效率遠沒有滑鼠選擇來的快。
因此 tmux 提供了一些個性化配置項來優化這些配置,在 shell 中編輯~/.tmux-conf 配置檔案。在檔案中增加以下內容:
開啟了所有滑鼠功能:點選選擇窗格/視窗,拖動窗格大小,以及拖動滑鼠滾屏複製文字。
$ set -g mouse on

2.1 之前的版本(釋出於 2015.10.18) 需要設定 mode-mouse, mouse-select-pane, mouse-resize-pane, mouse-select-window4 個選項來開啟所有滑鼠功能,現在只需要設定 mouse 選項了。 使用 tmux -V 可以檢視當前安裝的 tmux 版本,版本更新日誌見 Tmux Changelog
儲存後重新載入配置檔案。見下文:重新載入配置檔案)

3. 重新載入配置檔案
配置檔案修改完成後,重新載入配置檔案,三種方式:
$ tmux kill-server 重啟所有 tmux 程序
$  tmux source-file ~/.tmux.conf
$  tmux 會話中使用 ⌃b進入控制檯模式,輸入 source-file ~/.tmux.conf

4. 滑鼠複製
tmux 下開啟滑鼠滾屏後,複製文字有兩種方式:
方法 1:使用 ⌃b z 進入窗格全屏模式,滑鼠選擇文字的同時按住 option 鍵 ⌥,然後使用 ⌘c 進行復制;
方法 2:開啟 iTerm2 「在選擇時複製」選項,即可實現選擇即複製。如下圖:

這裡寫圖片描述

linux下使用說明

方式一

$ yum install tmux 此安裝的可能不是tmux最新版本
$ tmux ls 可能報下面錯
tmux failed to connect to server
$ tmux 後退後再tmux ls就不報錯了

方式二

# Install tmux on rhel/centos 7

# install deps
yum install gcc kernel-devel make ncurses-devel

# DOWNLOAD SOURCES FOR LIBEVENT AND MAKE AND INSTALL
curl -OL https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
tar -xvzf libevent-2.0.22-stable.tar.gz
cd libevent-2.0.22-stable
./configure --prefix=/usr/local
make
sudo make install
cd ..

# DOWNLOAD SOURCES FOR TMUX AND MAKE AND INSTALL
curl -OL https://github.com/tmux/tmux/releases/download/2.3/tmux-2.3.tar.gz
tar -xvzf tmux-2.3.tar.gz
cd tmux-2.3
LDFLAGS="-L/usr/local/lib -Wl,-rpath=/usr/local/lib" ./configure --prefix=/usr/local
make
sudo make install
cd ..

# pkill tmux
sudo killall -9 tmux
# close your terminal window (flushes cached tmux executable)
# open new shell and check tmux version
tmux -V

相關推薦

mac/linux終端遠端日誌利器-tmux

tmux tmux 是一個優秀的終端複用器類自由軟體。使用者可以通過 tmux 在一個終端內管理多個分離的會話,視窗及面板,對於同時使用多個命令列,或多個任務時非常方便。 安裝 macOS 上使用 Homebrew 安裝即可: $ brew instal

Linux如何查tomcat是否啟動/系統日誌

base path 系統 後臺 pst 不知道 size class boot 1、在Linux系統下,重啟Tomcat使用命令操作的! 方法一: 首先,進入Tomcat下的bin目錄 cd /usr/local/tomcat/bin 使用Tomcat關閉

linux 如何查mysql跑了哪些服務

位置 netstat host 導致 pro ive comm http lin ps -ef|grep mysql //現查處PID 然後 lsof -p +pid 就可以看到mysql跑的服務 百度出了別人的方法 當遇到mysql很卡,然後又想知

Mac/Linux/Centos終端中上傳文件到Linux雲服務器

gin log itl not root用戶 終端 ssh端口 路徑和 輸入 Mac/Linux/Centos終端中上傳文件到Linux雲服務器 1、mac上傳文件到Linux服務器 scp 文件名 [email protected]/*

linux如何查哪些進程占用的CPU內存資源最多

行數 道理 ini nic ice 輸出格式 true 用戶 nbsp 1、linux下獲取占用CPU資源最多的10個進程,可以使用如下命令組合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

Linux如何查tomcat是否啟動

linux ger span erl pan 進程 msi star rop Linux下如何查看tomcat是否啟動 在Linux系統下,重啟Tomcat使用命令的操作! 首先,進入Tomcat下的bin目錄 cd /usr/local/tomcat/bin 使用

linux如何查python位數/查centos版本

如何 redhat 出現 linu ring red hat code linux ice 查看python位數 # python Python 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 2015062

Linux如何查進程準確啟動時間

grep started lap 如何 pan linux下 and done gin ps:process status for pid in $(pgrep httpd); do echo -n "${pid} " ; ps -p ${pid} -o lstart

Linux如何查一個下載的包被安裝在什麽位置

說明 安裝 apach 數據 所在 版本 4.2 ash 強制 Linux下如何查看一個下載的包被安裝在什麽位置 指令 ps -ef|grep mysql 得出結果 root 17659 1 0 2011 ? 00:00:00

Linux如何查哪些進程占用的CPU、內存資源最多

默認 虛擬 BE htm blank class 運行 number ref linux下獲取占用CPU資源最多的10個進程,可以使用如下命令組合:ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|headlinux下獲取占

linux如何查某軟件是否已安裝

container yum class 軟件包 pad sbin oot padding 軟件 因為linux安裝軟件的方式比較多,所以沒有一個通用的辦法能查到某些軟件是否安裝了。總結起來就是這樣幾類: 1、rpm包安裝的,可以用rpm -qa看到,如果要查

如何在Linux優雅的查詢日誌

lin 鍵盤 htm 線上 comm 發現 In 操作日誌 示例 做為一名合格的Java後臺開發 經常需要查詢線上的日誌,定位線上問題 所以熟練掌握日誌查詢的命令 可以使你更加迅速的定位錯誤日誌位置,及時解決問題 在此,我將介紹幾個自己工作中經常使用到的日誌查詢命令 大家一

linux終端11選5平臺出租常用命令和vi命令修改文件及保存的使用方法

首開 mman bin 軟件包管理 系統啟動 左右移動 包含 地方 執行 首先11選5平臺出租 haozbbs.com Q1446595067介紹一下Ubuntu下各個目錄的一般作用: /這就是根目錄,一臺電腦有且只有一個根目錄,所有的文件都是從這裏開始的。舉個例子:當

LinuxMySQL遠端連結配置

配置步驟: 1).首先進入資料庫,使用系統資料庫mysql mysql -u root -p mysql 2).接著對系統資料庫的root賬戶設定遠端訪問的密碼,與本地的root訪問密碼並不衝突 grant all privileges on *.* to 'root'@'%' identified

Linux使用tail查詢日誌檔案關鍵詞有顏色、高亮顯示

Linux下使用tail查詢日誌檔案關鍵詞高亮顯示 單個關鍵詞高亮顯示: tail -f 日誌檔案 | perl -pe 's/(關鍵詞)/\e[1;顏色$1\e[0m/g' tail -f catalina.out | perl -pe 's/(DEBUG)/\e[1;34m$

Linux如何查版本信息

alt 如何 etc idt bsp ase cpu order 相關 1、Linux查看版本當前操作系統內核信息 uname -a 2、Linux查看當前操作系統版本信息 cat /proc/version 3、Linux查看版本當前操作系統發行版信息

詳解LinuxSSH遠端檔案傳輸命令scp

一:Linux ssh scp的簡介及作用: 在日常linux伺服器操作中,傳輸檔案是必不可少的操作。以前章郎蟲一直用他來翻牆,可以算是偏門,今天介紹SSH的正途啦。。。 scp就是secure copy的簡寫,用於在linux下進行遠端拷貝檔案的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨

Linuxsqlplus遠端訪問Oracle

轉載請註明:http://blog.csdn.net/fuqiangnxn/article/details/53841062 第一步:下載instantclient,下載地址如下 http://www.oracle.com/technetwork/database/fe

LinuxCodeBlocks遠端除錯ARM程式環境搭建

Codeblocks:Release 8.02、宿主機:ubuntu10.04、開發板:嵌入式linux作業系統。 1 Codeblocks配置交叉編譯環境 如下圖所示,由上到下的選擇,1處直接選擇即可。2處是你交叉編譯器安裝位置,3 4 5 6 可以在你交叉編譯器安

linux使用mysqlbinlog生成日誌檔案

1、首先執行 vi /etc/my.cfg; 2、在其中新增 log-bin=/var/lib/mysql/mysql-bin,需要新增在[mysqld]下,而不是[mysqld_safe]下; 3、重啟mysql,  service mysqld restart; 4、進