- vừa được xem lúc

Giới thiệu cơ bản về Tmux

0 0 25

Người đăng: Heasygame

Theo Viblo Asia

Tôi bắt đầu dùng Tmux thế nào?

Ngày chập chững bắt đầu biết cách ssh vào server, chạy các tác vụ trực tiếp trên staging và production, tôi có gặp một vấn đề như sau. Khi đang chạy một tác vụ chuyển dữ liệu với thời gian thực thi lên tới gần 1 tiếng đồng hồ, đột nhiên tôi gặp thông báo:

$ Write failed: Broken pipe

Cái gì vậy?

Thì ra là mạng chập chờn khiến cho kết nối từ máy tính của tôi đến server bị mất. Và thế là tôi bắt đầu bấn loạn! Lo lắng ssh lại, mọi thứ quay lại từ đầu, không biết cái tiến trình đang chạy ban nãy nó thế nào rồi, có xong được không, hay lỗi ở đâu.

Phải có cách nào đó chứ? Nghĩ vậy tôi bắt đầu tìm và nhanh chóng tìm được một cái tên: Tmux. Phải thử ngay!

Sau khi ssh lại vào server và cài tmux, tôi thử chạy:

$ tmux

Màn hình terminal thay đổi về giao diện của tmux session, tôi gõ thử:

$ I am going to run db migration here

và sau đó... rút dây mạng. Tất nhiên, một lần nữa

$ Write failed: Broken pipe

Sau đó tôi ssh lại vào server, gõ thử:

tmux a

Kết quả:

$ I am going to run db migration here

Thật là tuyệt vời, tmux mở lại cho tôi đúng session là tôi đang có trước khi mất mạng. Như chưa hề có cuộc chia ly! Kể từ đó tôi hoàn toàn yên tâm khi phải thực thi những tác vụ kéo dài hàng tiếng, thậm chí là cả ngày trên server.

Tôi đã bắt đầu dùng Tmux như thế đó.

Cụ thể hơn về Tmux

Bên trên là kỷ niệm đầu đời cũng như là giá trị có lẽ là tuyệt vời nhất mà Tmux đem lại cho tôi. Phần này tôi sẽ trình bày kỹ hơn xem thực sự Tmux là cái gì và nó có thể làm được những gì.

Tmux là gì?

Định nghĩa trên trang https://tmux.github.io/ có nói rằng: Tmux là một Terminal Multiplexer - "bộ ghép kênh". Nó cho phép bạn chuyển qua lại giữa các chương trình độc lập ngay trên một terminal, tách các chương trình ra một terminal riêng mà vẫn giữ được trạng thái hoạt động của chúng. Và còn làm được nhiều việc hơn thế nữa...

Cài đặt Tmux thế nào?

Bạn có thể tải và cài tại đây Download hoặc cài trực tiếp từ terminal:

sudo apt-get update
sudo apt-get install tmux

Những tính năng hay của Tmux

Đầy đủ tính năng ghi hết ra đây không hết được. Các bạn có thể đọc tại đây hoặc tìm kiếm ở các nguồn khác. Ở đây tôi sẽ chỉ xin phép nêu ra các tính năng cơ bản mà tôi thường sử dụng.

Liên quan đến tạo và attach sessions

Tạo một session mới:

tmux

Attach nó:

tmux a

Tạo một session mới kèm theo tên gọi:

tmux new -s s_name

Attach session đã được đặt tên:

tmux a -t s_name

Hiện thị danh sách các sessions:

tmux ls

Xoá một session:

tmux kill-session -t s_name

Khi đã ở trong tmux

Mặc định của tmux, prefix của các lệnh sẽ là tổ hợp Ctrl+b, cũng giống như gõ Esc để chuyển về chế độ dòng lệnh như Vim vậy.

Các lệnh làm việc với cửa sổ
Ctrl+b c # Tạo một cửa sổ mới
Ctrl+b w # Xem danh sách cửa sổ hiện tại
Ctrl+b n/p # Chuyển đến cửa sổ tiếp theo hoặc trước đó
Ctrl+b f # Tìm kiếm cửa sổ
Ctrl+b , # Đặt/Đổi tên cho cửa sổ
Ctrl+b & # Đóng cửa sổ
Cách lệnh làm việc với các panel trong 1 cửa sổ
Ctrl+b % # chia đôi màn hình theo chiều dọc
Ctrl+b " # chia đôi màn hình theo chiều ngang Ctrl+b o/<phím mũi tên> # Di chuyển giữa các panel
Ctrl+b q # Hiện số thứ tự trên
Ctrl+b x # Xoá panel
Những thứ khác

Còn rất nhiều những thứ hay ho khác có thể làm trên Tmux, tất nhiên có những thứ có lẽ sẽ chả giúp ích gì mấy cho công việc của bạn. Ví dụ xem giờ trên Terminal, tại sao không?

4063a796e51c96868836c92917139264.png

Tuỳ biến Tmux

Bản thân tôi hài lòng với những thiết lập mặc định của Tmux. Tuy nhiên nếu bạn khó tính, ví dụ cảm thấy prefix Ctrl+b rất là khó dùng chẳng hạn, bạn cũng có thể thay đổi nó. Tạo file .tmux.conf tại thư mục home của user của bạn và bạn có thể config tmux theo ý mình.

tmux source-file .tmux.conf

Ví dụ bạn thích Ctrl+c thay vì Ctrl+b? Chỉ cần viết vào file .tmux.conf mới tạo

unbind C-b
set -g prefix C-a

và thế là xong 😄

Một video thực tế về sử dụng Tmux

Tôi tìm được trên Youtube một video rất hay. Các bạn hãy xem thử nhé!

Kết luận

Với tôi, Tmux là một công cụ tuyệt với trong công việc, càng dùng càng thấy hay. Nếu công việc đòi hỏi bạn phải làm việc nhiều trên terminal, hãy thử và cảm nhận sự tuyệt với của Tmux nhé.

Cảm ơn các bạn đã đọc bài và chúc các bạn thành công! Happy coding!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 499

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 374

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 701

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 335

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 420

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 414