New FAMILUG

The PyMiers

Sunday, 17 February 2013

Tmux

NOTE: bài này còn sơ sài, sẽ được bổ sung sau.
PS: dạo này nhiều bài chỉ muốn take note nhanh chứ ko có time ngồi viết tut :D

tmux - screen - byobu

hvn@lappy: ~ () $ for i in tmux screen byobu; do whatis $i; done
tmux (1)             - terminal multiplexer
screen (1)           - screen manager with VT100/ANSI terminal emulation
byobu (1)            - wrapper script for seeding a user's byobu configuration and launching a text based window manager (either screen or tmux)

về tính năng, tmux và screen là 2 chương trình tương đương nhau.
byobu là frontend sử dụng 1 trong 2 backend tmux hoặc screen.

Như những gì `whatis` đã mô tả, tmux / screen giúp bạn sử dụng được nhiều terminal trong 1 cửa sổ duy nhất (giống như tab trong các trình duyệt web ngày nay), điều này cực kỳ hữu ích khi bạn làm việc với server. Bạn hoàn toàn có thể dùng nó để có thể làm việc một cách linh hoạt trong môi trường desktop.

tmux mới hơn và có nhiều tính năng cải tiến (vd tính năng pane) (chia 1 "màn hình" thành nhiều ô nhỏ) nên ở đây tớ sẽ giới thiệu về tmux.

1. Cài đặt và sử dụng
cài đặt:
hvn@lappy: ~ () $ sudo apt-get install tmux
hvn@lappy: ~ () $ tmux -V
tmux 1.6

sử dụng:
hvn@lappy: ~ () $ tmux
và bạn sẽ ở trong 1 terminal, nhưng bạn sẽ thấy ở dưới cùng có thanh status.

xem trong man tmux, phần KEY BINDINGS để biết các phím mặc định của tmux.


Ctrl (ký hiệu là C hoặc ^)
Ctrl-b (hay C-b hoặc ^b) : gửi đi prefix key - bạn sẽ bấm tổ hợp phím này trước khi gửi đi bất kỳ phím nào. Nếu bạn gõ C-b c Tmux sẽ hiểu bạn gửi đi "tín hiệu" phím c chứ không phải gõ chữ c bình thường, và tmux sẽ xử lý câu lệnh mà đã được gán trước cho phím c.

C-b c : tạo 1 window
C-b l : chuyển đến window vừa rồi
C-b n: chuyển đến window kế tiếp
C-b p: chuyển đến window trước đó
C-b w: liệt kê các window
C-b : : chuyển sang chế độ gõ lệnh

2. Customize
file config của tmux là file ~/.tmux.conf
trong file này chứa các câu lệnh của tmux

VD:
hvn@lappy: ~ () $ cat .tmux.conf
set -g prefix C-a
unbind-key C-b
bind-key C-a send-prefix
bind a last-window

bind | split-window -h
bind - split-window -v

set -g status-bg black
set -g status-fg white
set -g status-left '#[fg=green]#H'
set -g status-right '#[fg=yellow] #(uptime | cut -d "," -f 2-)'
set -g status-interval 7
set-window-option -g window-status-current-bg red
hvn@lappy: ~ () $

NOTE: để sử dụng config từ 1 file nào đó, gõ lệnh:
hvn@lappy: ~ () $ tmux source-file .tmux.conf 
nếu không bạn sẽ phải thoát hết các session tmux rồi chạy lại để sử dụng cấu hình mới.

3. Scripting
...

http://www.familug.org/2013/02/tmux-scripting.html

2 comments:

  1. thêm dòng
    setw -g mode-mouse on
    vào file .tmux.conf để có thể scroll bằng chuột

    Sau đó để copy và paste trong screen có thể làm như sau (có vẻ bất tiện)
    Bấm C-[ để vào copy-mode
    bôi chuột vùng cần copy
    bấm C-] để paste.

    ReplyDelete
  2. resize panel trong byobu (hoặc tmux)
    giữ phím prefix (ctrl b hoặc ctrl a - tùy config) và 1 trong 4 phím mũi tên.

    ReplyDelete