Share this page

Learn X in Y minutes

Where X=tmux

tmux yra terminalo daugintuvas: jis leidžia vienu metu sukurti, turėti ir valdyti kelis terminalus viename ekrane. tmux gali būti atjungtas nuo ekrano ir veikti fone, o vėliau gali būti vėl prijungtas.

  tmux [komanda]     # Vykdyti komandą
                     # 'tmux' be komandų sukurs naują sesiją

    new              # Sukurti naują sesiją
     -s "Session"    # Sukurti pavadintą sesiją
     -n "Window"     # Sukurti pavadintą langą
     -c "/dir"       # Pradėti nurodytoje direktorijoje

    attach           # Priskirti paskutinę/prienamą sesiją
     -t "#"          # Priskirti nurodytą sesiją
     -d              # Atjungti sesiją nuo kitų langų

    ls               # Aktyvių sesijų sąrašas
     -a              # Visų aktyvių sesijų sąrašas

    lsw              # Langų sąrašas
     -a              # Visų langų sąrašas
     -s              # Visų langų sesijoje sąrašas

    lsp              # Skydelių sąrašas
     -a              # Visų skydelių sąrašas
     -s              # Visų skydelių sesijoje sąrašas
     -t              # Visų skydelių taikinyje sąrašas

    kill-window      # Užbaigti dabartinį langą
     -t "#"          # Užbaigti nurodytą langą
     -a              # Užbaigti visus langus
     -a -t "#"       # Užbaigti visus langus, bet ne taikinį

    kill-session     # Užbaigti dabartinę sesiją
     -t "#"          # Užbaigti nurodytą sesiją
     -a              # Užbaigti visas sesijas
     -a -t "#"       # Užbaigti visas sesijas, bet ne taikinį

Klavišai

Priskirta tmux sesija yra valdoma klavišų kompinacijomis.

----------------------------------------------------------------------
  (C-b) = Ctrl + b    # Kombinacija reikalinga norint naudoti klavišus

  (M-1) = Meta + 1 -or- Alt + 1
----------------------------------------------------------------------

  ?                  # Rodo visų klavišų kombinacijų sąrašą
  :                  # Įjungiama tmux komandinė eilutė
  r                  # Priverstinai perpiešiamas prijungtas klientas
  c                  # Sukurti naują langą

  !                  # Iškelia esamą skydelį iš lango.
  %                  # Perskelia esamą skydelį į du, kairįjį ir dešinį
  "                  # Perskelia esamą skydelį į du, viršutinį ir apatinį

  n                  # Pakeičia į kitą langą
  p                  # Pakeičia į buvusį langą
  {                  # Apkeičia dabartinį skydėlį su buvusiu
  }                  # Apkeičia dabartinį skydėlį su sekančiu

  s                  # Pasirinkti naują sesiją prijungtam klientui interaktyviai
  w                  # Pasirinkti dabartinį langą interaktyviai
  0 to 9             # Pasirinkti langą nuo 0 iki 9

  d                  # Atjungti dabartinį klientą
  D                  # Pasirinkti klientą, kurį atjungti

  &                  # Užbaigti dabartinį langą
  x                  # Užbaigti dabartinį skydelį

  Up, Down           # Pakeisti į skydelį viršuje, apačioje, kairėje arba
                     dešinėje
  Left, Right

  M-1 to M-5         # Rikiuoti skydelius:
                       # 1) even-horizontal
                       # 2) even-vertical
                       # 3) main-horizontal
                       # 4) main-vertical
                       # 5) tiled

  C-Up, C-Down       # Keisti esamo skydelio dydį vienos ląstelės žingsniu
  C-Left, C-Right

  M-Up, M-Down       # Keisti esamo skydelio dydį penkių ląstelių žingsniu
  M-Left, M-Right

Configuring ~/.tmux.conf

tmux.conf gali būti nustatytas automatiškai paleidimo metu, panašiai kaip ir .vimrc arba init.el.

# Pavyzdys tmux.conf
# 2014.10


### General
###########################################################################

# Enable UTF-8
setw -g utf8 on
set-option -g status-utf8 on

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

# Index Start
set -g base-index 1

# Mouse
set-option -g mouse-select-pane 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 preference
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-content-attr default
setw -g window-status-content-fg yellow
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]"

Šaltiniai

Tmux | Home

Tmux Manual page

Gentoo Wiki

Archlinux Wiki

Display CPU/MEM % in statusbar

tmuxinator - Manage complex tmux sessions


Got a suggestion? A correction, perhaps? Open an Issue on the GitHub Repo, or make a pull request yourself!

Originally contributed by mdln, and updated by 1 contributor.