A Simple TMUX Tutor

来源:https://www.cnblogs.com/loveminimal/archive/2019/03/15/10538350.html
-Advertisement-
Play Games

"Tmux Wiki" "Installation of CentOS7" "Introduction" "Key Bindings" "Configuring ~/.tmux.conf" "References" Tmux Wiki The follow contents is mainly re ...


Tmux Wiki

The follow contents is mainly reprinted of Learn X in Y minutes - tmux.

Installation of CentOS7

# dependce packages
yum install ncurses-devel libevent-devel

# download source code package
wget https://github.com/tmux/tmux/releases/download/2.8/tmux-2.8.tar.gz

# extract & make & make install
tar -zxvf tmux-2.8.tar.gz
cd tmux-2.8
./configure --prefix=/opt/tmux
make && make install

# set PATH
export PATH=$PATH:/opt/tmux/bin

Introduction

tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background then later reattached.

tmux conform C/S mode, including followed modules:

  • server - run tmux in terminal to start a server;
  • session - a server can include serveral sessions;
  • window - a session can include serveral windows;
  • pane - a window can include serveral panes.
DIRECTIVE Description
tmux [command] Run a command
'tmux' with no commands will create a new session
COMMAND/OPTION
[new] Create a new session
-s "Session" Create named session
-n "Window" Create named Window
-c "/dir" Start in target directory
[attach] Attach last/available session
-t "#" Attach target session
-d Detach the session from other instances
[ls] List open sessions
-a List all open sessions
[lsw] List windows
-a List all windows
-s List all windows in session
[lsp] List panes
-a List all panes
-s List all panes in session
-t List all panes in target
[kill-window] Kill current window
-t "#" Kill target window
-a Kill all windows
-a -t "#" Kill all windows but the target
[kill-session] Kill current session
-t "#" Kill target session
-a Kill all sessions
-a -t "#" Kill all sessions but the target

Key Bindings

The method of controlling an attached tmux session is via key combinations called 'Prefix' keys.

Key Description
C-b 'Prefix' combination required to use keybings
M-1
SYSTEM
? List all key bindings
: Enter the tmux command prompt
r Force redraw of the attached client
t Show current time
d Detach the current client
D Choose a client to detach
[ Enter Copy Mode to copy text or view history.
~ Show info messages
s Select a new session for the attached client
WINDOW
c Create a new window
n Change to the next window
p Change to the previous window
l Switch to last window
w Choose the current window interactively
& Kill the current window
0-9 Select windows 0 to 9
, Rename current window
. Renumber current window NO.
f Find plain in all windows
PANE
% Split the current pane into two, left and right
" Split the current pane into two, top and bottom
q Show NO. of splited panes
; Switch to last pane
U/D/L/R Change to the pane above, below, left, or right
! Break the current pane out of the window.
x Kill the current pane
o Switch to next pane in current window
C-o Rotate all panes anti-clockwise
M-o Rotate all panes clockwise
C-U/D/L/R Resize the current pane in steps of one cell
M-U/D/L/R Resize the current pane in steps of five cells
Space Toggle in preset pane layouts including even-horizontal, even-vertical, main-horizontal, main-vertical, tiled
{ Swap the current pane with the previous pane
} Swap the current pane with the next pane
M-1 to M-5 Arrange panes
M-1 even-horizontal
M-2 even-vertical
M-3 main-horizontal
M-4 main-vertical
M-5 tiled

Configuring ~/.tmux.conf

tmux.conf can be used to set options automatically on start up, much like how .vimrc or init.el are used.

# Example tmux.conf

### General

# Scrollback/History limit
set -g history-limit 2048

# Index Start
set -g base-index 1

# Mouse
set-option -g -q mouse on

# Force reload of config file
unbind r
bind r source-file ~/.tmux.conf

### Keybinds

# Unbind C-b as the default prefix
unbind C-b

# Set new default prefix
set-option -g prefix ` 

# Return to previous window when prefix is pressed twice
bind C-a last-window
bind ` last-window

# Allow swapping C-a and ` using F11/F12
bind F11 set-option -g prefix C-a
bind F12 set-option -g prefix `

# Keybind prefrence
setw -g mode-keys vi
set-option -g status-keys vi

# Moving between panes with vim movement keys
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# Window Cycle/Swap
bind e previous-window
bind f next-window
bind E swap-window -t -1
bind F swap-window -t +1

# Easy split pane commands
bind = split-window -h
bind - split-window -v
unbind '"'
unbind %

# Activate inner-most session (when nesting tmux) to send commands
bind a send-prefix

### Theme

# Statusbar Color Palatte
set-option -g status-justify left
set-option -g status-bg black
set-option -g status-fg white
set-option -g status-left-length 40
set-option -g status-right-length 80

# Pane Border Color Palette
set-option -g pane-active-border-fg green
set-option -g pane-active-border-bg black
set-option -g pane-border-fg white
set-option -g pane-border-bg black

# Message Color Palette
set-option -g message-fg black
set-option -g message-bg green

# Window Status Color Palette
setw -g window-status-bg black
setw -g window-status-current-fg green
setw -g window-status-bell-attr default
setw -g window-status-bell-fg red
setw -g window-status-activity-attr default
setw -g window-status-activity-fg yellow

### UI

# Notification
setw -g monitor-activity on
set -g visual-activity on
set-option -g bell-action any
set-option -g visual-bell off

# Automatically set window titles
set-option -g set-titles on
set-option -g set-titles-string '#H:#S.#I.#P #W #T' # window number,program name,active (or not)

# Statusbar Adjustments
set -g status-left "#[fg=red] #H#[fg=green]:#[fg=white]#S#[fg=green] |#[default]"

# Show performance counters in statusbar
# Requires https://github.com/thewtex/tmux-mem-cpu-load/
set -g status-interval 4
set -g status-right "#[fg=green] | #[fg=white]#(tmux-mem-cpu-load)#[fg=green] | #[fg=cyan]%H:%M #[default]"

References


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 今天給大家帶來的討論主題是通過實戰經驗來對百億數據量下的多表數據查詢進行優化,俗話說的好,一切脫離業務的架構都是耍流氓,接下來我就整理一下今天早上微信群里石頭哥給大家分享的百億數據量多表查詢架構以及優化思路。由於本文內容整理自微信群,爬樓不易,整理更不易,如果有遺漏,歡迎大家在評論區留言。 作者:依 ...
  • 之前在隨筆《在Winform開發中使用Grid++報表》介紹了在Winform環境中使用Grid++報表控制項,本篇隨筆介紹在Boostrap開發框架中使用Grid++報表,也就是Web環境中使用Grid++報表,對於我上篇提到的二維碼條形碼的資產信息表,我系統通過Web方式進行呈現,或者展示其報表的... ...
  • 本文章是介紹和記錄如何創建GraphQL項目,以及如何使用GraphQL進行數據的相關操作。項目參照GraphQL .Net 的官方文檔進行實踐 一、項目結構: 為了更好的和原有的項目結合在一起,儘可能減少對原項目的修改。我對項目結構做瞭如下分層。 二、項目結構分層說明 Contracts層: 項目 ...
  • 1. ODBC、OLEDB、ADO、ADO.NET之間的關係 ODBC: 開放資料庫互連(ODBC)是MICROSOFT提出的資料庫訪問介面標準。ODBC(Open DatabaseConnectivity,開放資料庫互連)提供了一種標準的API(應用程式編程介面)方法來訪問資料庫管理系統(DBMS ...
  • 集合命名空間: using system.collections. 非泛型集合 using system.collections.Generic. 泛型集合 為什麼要用集合: 1、數組一旦聲明長度就固定了。 2、集合有很多方法可以用 等 常用集合: 類似數組集合:ArrayList List<> 鍵 ...
  • 一.分部視圖 對於MVC 視圖和 Razor Pages 頁面,都有分部視圖功能。通常將 MVC 視圖和 Razor Pages 頁面統稱為“標記文件”,下麵會常提到該名詞。使用分部視圖的優勢包括:(1) 將大型標記文件分解為更小的組件。(2) 減少跨標記文件中,常見標記內容的重覆。 建議:(1)不 ...
  • 1.什麼是Hadoop 管理網路中跨多台電腦存儲的文件系統稱為分散式文件系統面臨的挑戰:使文件系統能容忍節點故障且不丟失任何數據不適合的特點:低時間延遲的數據訪問&大量的小文件&多用戶寫入,任意修改文件 2. HDFS的概念元數據hdfs的目錄結構及每一個文件的塊信息(塊的ID,塊的副本數量,塊的 ...
  • liunx搭建DHCP伺服器以及DHCP中繼伺服器 一、實驗拓撲 二、實驗條件 虛擬機取消VMnet1和VMnet8的dhcp動態獲取ip地址,以免影響實驗 DHCPserver 網關以及DHCP中繼以及linux客戶端清除防火牆策略或者關閉防火牆 iptables -F setenforce 0 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...