Một điểm nữa tôi thấy tmux khá hấp dẫn là cho phép tạo nhiều window, mỗi window lại cho phép tạo nhiều pane. Tmux sẽ biến terminal của bạn trông rất ngầu. Rất tiện khi bạn dễ dàng thao tác trên nhiều cửa sổ. Tuy vậy, nếu bạn lạm dụng thì chúng lại khiến bạn rối trí.
Giờ thì chúng ta xem tmux thực hiện các phép màu của nó như thế nào
Cài đặt và khởi động
Cài đặt, đơn giản bạn chỉ cần gõ yum install tmux
Khởi động tmux session, cũng đơn giản bạn chỉ cần gõ tmux
Một số câu lệnh cơ bản
Ctrl + b được tmux gọi là bind-key
Ctrl + b " sẽ chia màn hình terminal thành hai nửa theo chiều ngang
Ctrl + b % sẽ chia màn hình terminal thành hai nửa theo chiều dọc
Ctrl +b, giữ và dùng arrow keys để thay đổi kích cỡ của pane
Ctrl + b c tạo một cửa sổ mới
Ctrl + b w danh sách cửa sổ
Ctrl + b n di chuyển đến cửa sổ tiếp theo
Ctrl + b p di chuyển về cửa sổ trước đó.
Ctrl + b [ chuyển vào chế độ copy mode để cho phép bạn copy text trong một window hoặc một pane.
Ctrl + b ? liệt kê tất cả các bind key
Ctrl + b & Kill window, kéo theo toàn bộ các pane trong window đó.
Ctrl + b x Kill pane, xóa một pane trong một window
Ctrl +b d detach tmux session
Các window khi được tạo ra bằng Ctrl + b c sẽ được đánh số từ 0. Bạn có thể dùng Ctrl + c 0 hoặc Ctrl + c 9 để di chuyển đến các window có số tương ứng. Với những window từ 10 bạn sẽ nên đặt tên cho nó để tiện truy cập.
Tái truy cập tmux session
Giờ là phần thú vị nhất của tmux. Tất cả window, pane mà bạn tạo ra nằm trong tmux session. Khi thao tác từ xa trên server bạn bỗng nhiên bị mất kết nối network hoặc có thể bạn nhỡ tay đóng terminal (tương đương với việc bạn detach tmux session), tmux session vẫn nguyên vẹn. Truy cập lại server, bạn chạy lệnh
tmux ls
0: 16 windows (created Sat Feb 6 18:36:47 2016) [80x23] (attached)
0 là số id cho tmux session. Hiện tại tôi có một tmux session. Trong session đó tôi có 16 windows.
Tôi có thể tái truy cập tmux session này bằng cách:
tmux attach -t 0
Ở đây tôi tái truy cập vào tmux session 0. Bạn có thể có nhiều tmux session trên một máy. Bạn có thể hủy tmux session bằng cách:
tmux kill-session -t <session_name hoặc session_id>
Một số tiện ích khác
Để thân thiện hơn và cũng dễ quản lý hơn, tôi sẽ đặt lại tên cho tmux session
Ctrl + b : Truy cập vào chế độ command của tmux, tôi gõ rename-session niceday
Khi đó tmux ls
niceday: 16 windows (created Sat Feb 6 18:36:47 2016) [80x23] (attached)
Và bạn phải tmux attach -t niceday để tái truy cập lại
Nếu muốn đặt tên cho window, bạn có thể dùng ctrl + b ,
Và dùng ctrl +b f để tìm window
tmux cũng thiết kế ngầm một big clock, bạn có thể dùng ctrl + b t để xem đồng hồ :)
Thay đổi tmux bind-key
Mặc định tmux dùng bind-key là Ctrl + b, tôi sẽ thử đổi sang Ctrl + a
vim ~/.tmux.conf
set -g prefix C-a
unbind C-b
bind C-a send-prefix
Bạn phải kill tất cả các tmux session hiện tại. Sau đó, thay đổi bind-key sẽ được áp dụng với các tmux session mới.
Sharing screen dùng tmux
Với hai terminal, cùng một account thì đơn giản chỉ cần hai bước:
Ở terminal thứ nhất
tmux new-sesssion -s shared
Ở terminal thứ hai
tmux attach -t shared
shared không là keyword, bạn có thể dùng bất cứ session-name nào cũng được.
Cả hai terminal khi đó đều nhận keyboard. Để các terminal attach chỉ có quyền xem, bạn dùng
tmux attach -t shared -r
Với hai terminal của hai account khác nhau:
Ở terminal thứ nhất, trong account root
tmux -S /tmp/shareds new -s shared
Tương tự, /tmp/shareds cũng không phải keyword, bạn có thể dùng file có tên bất kỳ.
Tạo user thứ hai: useradd admin
Tạo group chia sẻ: groupadd tmux_shared
Thêm root và admin vào chung tmux_shared:
usermod -a -G tmux_shared root
usermod -a -G tmux_shared admin
Kiểm tra lại:
cat /etc/group | grep tmux
tmux_shared:x:501:root,admin
[admin@localhost ~]$ groups
admin tmux_shared
[root@localhost ~]# groups
root tmux_shared
chown root:tmux_shared /tmp/shareds
ls -l
srwxrwx---. 1 root tmux_shared 0 Th02 6 20:35 shareds
Ở terminal thứ hai, trong account admin
tmux -S /tmp/shareds attach -t shared -r
Nếu bạn không thêm tham số -r thì admin sẽ có quyền chỉnh sửa như root vì đang truy cập vào tmux session của root qua socket chia sẻ /tmp/shareds
Như trên hình vẽ, tôi đang dùng tài khoản admin, mượn quyền root qua việc truy cập vào tmux session together của root để tạo folder test1 trong /root
Tham khảo:
https://gist.github.com/henrik/1967800
http://tmuxp.readthedocs.org/en/latest/about_tmux.html
https://www.howtoforge.com/sharing-terminal-sessions-with-tmux-and-screen
Không có nhận xét nào:
Đăng nhận xét