Linux tmux
lệnh là một bộ ghép kênh đầu cuối, như screen
. Những người ủng hộ nó rất nhiều và có tiếng nói, vì vậy chúng tôi quyết định so sánh hai. Là tmux
thực sự tốt hơn, hay đó chỉ là một trường hợp thích những gì bạn biết?
tmux so với màn hình
Cả hai tmux
và GNU screen
lệnh là bộ ghép kênh đầu cuối. Chúng cho phép bạn có nhiều cửa sổ trong một cửa sổ đầu cuối duy nhất và nhảy qua lại giữa chúng. Một cửa sổ có thể được chia thành các ô, mỗi cửa sổ cung cấp cho bạn một dòng lệnh độc lập.
Bạn cũng có thể tách phiên và nó trở thành một thực thể không đầu đang chạy trong nền Bối cảnh bạn thậm chí có thể đóng cửa sổ đầu cuối đã khởi chạy nó. Khi bạn đã sẵn sàng, bạn có thể mở một cửa sổ terminal mới và gắn lại phiên vẫn đang chạy. Bạn cũng có thể làm điều này qua kết nối SSH.
Bạn có thể tách phiên trên một máy tính, về nhà và đăng nhập vào máy tính từ xa. Khi được kết nối lại, bạn có thể gắn lại phiên nền và sử dụng lại tương tác.
Lệnh gì trên màn hình?
Các screen
lệnh cũng là một bộ ghép kênh đầu cuối và nó có rất nhiều tùy chọn. Để biết thông tin chi tiết về mọi thứ bạn có thể làm với nó, hãy xem bài viết chuyên sâu của chúng tôi.
Lần này, chúng tôi sẽ tập trung vào tmux
. Khi chúng tôi đi cùng, chúng tôi sẽ đề cập đến cách screen
xử lý các tính năng hoặc chức năng tương tự.
Chỉ có một điều làm chúng tôi khó chịu về screen
. Chúng tôi sẽ bao gồm điều đó khi chúng tôi nhận được nó, và xem nếu tmux
giá vé nào tốt hơn
LIÊN QUAN: Cách sử dụng lệnh màn hình của Linux
cài đặt tmux
Trong khi screen
thường được cài đặt theo mặc định trên các bản phân phối Linux phổ biến, tmux
isn Quảng. Để cài đặt tmux
trên Ubuntu, gõ như sau:
sudo apt-get install tmux
Trên Manjaro bạn có thể sử dụng pacman
:
sudo pacman -Sy tmux
Trên Fedora 31, tmux
đã được cài đặt.
Bắt đầu một phiên tmux
Để bắt đầu tmux
, chỉ cần gõ nó và nhấn Enter:
tmux
Cửa sổ terminal sẽ hiển thị một thanh trạng thái khi bạn trong một tmux
phiên.
Phía bên phải của thanh trạng thái hiển thị tên máy chủ và thời gian và ngày. Phía bên trái hiển thị các thông tin liên quan đến phiên sau:
- (0): Đây là tên phiên. Theo mặc định, họ đã đánh số thứ tự, bắt đầu bằng số không. Chúng tôi trình bày cách bạn có thể đặt tên có ý nghĩa cho các phiên bên dưới.
- 0: bash *: Số 0 chỉ ra đây là cửa sổ đầu tiên trong phiên này. Quá trình duy nhất đang chạy trong phiên này là
bash
. Nếu bạn chạy một chương trình, tên của nó sẽ xuất hiện ở đây. Dấu hoa thị (*) có nghĩa đây là cửa sổ mà bạn đang nhìn. Mỗi khi bạn tạo một cửa sổ mới trong mộttmux
phiên, số cửa sổ của nó và tên của chương trình đang chạy trong nó được thêm vào thanh trạng thái.
Các screen
lệnh doesn không cung cấp cho bạn một thanh trạng thái. Bạn phải bay mù và dựa vào trí thông minh của mình để biết những gì đang diễn ra, điều này cần một chút luyện tập.
Về mặt tích cực, bạn thắng won mất một dòng bất động sản cửa sổ thiết bị đầu cuối. Tất nhiên, bạn thường mở rộng cửa sổ đầu cuối của mình để sử dụng bộ ghép kênh đầu cuối đáng giá. Trong trường hợp đó, việc mất một dòng cho thanh trạng thái không phải là vấn đề. Chúng tôi đã để lại hình ảnh của các cửa sổ đầu cuối ở đây với kích thước mặc định để bạn có thể xem thông tin.
Các lệnh được trao cho tmux
sử dụng tổ hợp phím và có hai phần này. Đầu tiên, bạn nhấn Ctrl + B để nhận tmux
Chú ý. Sau đó, bạn nhanh chóng nhấn phím tiếp theo để gửi lệnh đếntmux
. Các lệnh được đưa ra bằng cách nhấn chữ cái, số, dấu chấm câu hoặc phím mũi tên.
Nó giống nhau trong screen
, ngoại trừ bạn nhấn Ctrl + A để thu hút sự chú ý của nó.
Để đóng cửa sổ, nhấn Ctrl + B, sau đó nhấn nhanh X. Thanh trạng thái chuyển sang màu hổ phách. Sau đó, bạn nhắc nhở để xác nhận rằng bạn muốn giết cửa sổ.
Nhấn Y để đóng cửa sổ hoặc N nếu bạn đổi ý. Bạn không cần phải nhấn Enter sau đó; Y hoặc N là đủ để đăng ký lựa chọn của bạn.
Nếu bạn nhấn Y, cửa sổ sẽ đóng lại. Bởi vì đây là cửa sổ duy nhất trong phiên này, phiên bị chấm dứt.
Các tmux
phiên bị đóng và bạn đã quay trở lại dòng lệnh mà bạn đã khởi chạy tmux
. Bạn có thể nhìn thấy những người khác (đã thoát) trong cửa sổ terminal.
Điều này có vẻ giống như nó nói rõ ràng, nhưng đó là một xác nhận mà bạn đã đóng phiên và không để nó tách ra và chạy. Chúng tôi sẽ thảo luận về các phiên tách ra dưới đây.
Bắt đầu một phiên tmux được đặt tên
Nếu bạn thường xuyên bắt đầu nhiều tmux
các phiên, bạn sẽ nhanh chóng đánh giá cao chức năng của việc đặt cho mỗi người một cái tên có ý nghĩa. Bạn có thể đặt tên phiên trong screen
cũng vậy, nhưng họ không hiển thị ở bất cứ đâu trong cửa sổ phiên.
Để bắt đầu tmux
với tên phiên, sử dụng new
(phiên mới) lệnh và lệnh -s
(tên phiên) tùy chọn. Phiên của chúng tôi sẽ có tên là geek-1, nên chúng tôi gõ như sau:
tmux new -s geek-1
Khi mà tmux
tải phiên, trên geek-1, được hiển thị dưới dạng mục đầu tiên trên thanh trạng thái, ở phía xa bên trái.
Thêm Windows nữa
Để tạo một cửa sổ mới trong phiên hiện tại, nhấn Ctrl + B, sau đó C. Bạn sẽ nhận được một cửa sổ đầu cuối trống trong phiên hiện tại. Vì vậy, chúng tôi sẽ có một cái gì đó chạy trong cửa sổ mới này, hãy để bắt đầu dmesg
lệnh với -w
(theo) tùy chọn:
dmesg -w
Bây giờ chúng tôi có hai cửa sổ trong phiên; một cái đang chạy top
, và điều khác dmesg
. Tuy nhiên, chúng ta chỉ có thể nhìn thấy từng cái một (nhiều hơn về điều đó trong một khoảnh khắc).
Hãy nhìn vào phía bên trái của thanh trạng thái. Chúng tôi vẫn còn trong thế giới geek-1 tmux
phiên. Trong cửa sổ số 0, đỉnh đang chạy và trong cửa sổ một, dmesg
đang chạy. Dấu hoa thị (*) sau dmesg
cho chúng tôi biết cửa sổ nào có thể nhìn thấy.
Để nhảy giữa các cửa sổ, nhấn Ctrl + B, và sau đó một trong các phím sau:
- N: Hiển thị cửa sổ tiếp theo.
- P: Hiển thị cửa sổ trước.
- 0 đến 9: Hiển thị một cửa sổ được đánh số từ 0 đến 9.
Bạn cũng có thể chọn một cửa sổ từ danh sách. Nếu bạn nhấn Ctrl + B, rồi W, một danh sách các cửa sổ sẽ xuất hiện.
Để di chuyển thanh tô sáng màu hổ phách, nhấn Mũi tên Lên hoặc Xuống, Trang chủ hoặc Kết thúc. Phần dưới cùng của màn hình hiển thị bản xem trước của nội dung trong cửa sổ được tô sáng.
Nhấn Enter để di chuyển đến cửa sổ được tô sáng hoặc Esc để rời khỏi danh sách cửa sổ mà không cần chuyển đổi.
Tách rời và đính kèm phiên
Nếu bạn nhấn Ctrl + B, rồi D, bạn sẽ tách phiên. Nó sẽ tiếp tục chạy trong nền, nhưng bạn đã thắng có thể nhìn thấy hoặc tương tác với nó.
Chúng tôi bắt đầu top
trong phiên để chúng tôi có một quy trình chạy để chứng minh với. Sau đó, chúng tôi nhấn Ctrl + B và sau đó D. Phiên biến mất và trở thành phiên nền.
Chúng tôi trở lại cửa sổ thiết bị đầu cuối ban đầu. Có một tin nhắn từ tmux
nói với chúng tôi phiên là tách ra. Nó cũng nhắc nhở chúng ta về tên mà chúng ta đã đặt cho phiên. Điều này rất hữu ích vì đó là những gì chúng ta sử dụng để đính kèm vào một phiên nền, và sau đó khôi phục nó thành một phiên tương tác.
Để đính kèm một phiên tách ra, chúng tôi sẽ sử dụng phần tự giải thích attach-session
lệnh với -t
(phiên mục tiêu) tùy chọn. Chúng tôi cũng sẽ cung cấp tên của phiên chúng tôi muốn nhớ lại.
Chúng tôi gõ như sau:
tmux attach-session -t geek-1
Phiên của chúng tôi trở lại và trở thành một phiên tương tác rõ ràng một lần nữa.
Bất kỳ quy trình chạy dài hoặc liên tục nào bạn đã khởi chạy trước khi tách phiên vẫn sẽ chạy trong nền (trừ khi chúng kết thúc) khi bạn đính kèm phiên.
screen
có thể làm điều này, nhưng không phải bằng trực giác.
Xử lý nhiều phiên
Hãy để mở một cửa sổ đầu cuối khác và bắt đầu một cửa sổ mới tmux
phiên gọi là geek-2
tmux new -s geek-2
Trong phiên đó, chúng tôi sẽ bắt đầu dmesg
:
dmesg -w
Bây giờ, chúng tôi đã có được bản gốc geek-1 của chúng tôi tmux
phiên và một phiên bản mới có tên là geek-2.
Thanh trạng thái cho chúng ta thấy phiên này có tên là geek-2, và nó có một cửa sổ đang chạy dmesg
.
Nếu chúng ta nhấn Ctrl + B, và sau đó D, chúng ta sẽ tách phiên đó.
Quay trở lại trong thế giới geek-1 tmux
phiên, chúng tôi nhấn Ctrl + B, và sau đó S để xem danh sách tmux
phiên.
Để rõ ràng, đây là một danh sách các phiên. Màn hình tương tự mà chúng ta đã thấy trước đó là một danh sách các cửa sổ trong một phiên duy nhất.
Bạn có thể di chuyển thanh tô sáng màu hổ phách bằng cách nhấn Mũi tên Lên và Xuống, Trang chủ và Kết thúc. Phần dưới cùng hiển thị bản xem trước của nội dung trong phiên được tô sáng.
Nếu bạn nhấn Mũi tên Phải, các cửa sổ cho phiên được tô sáng sẽ được hiển thị.
Nhấn Enter để di chuyển đến phiên hoặc cửa sổ được tô sáng hoặc Esc để rời khỏi danh sách phiên mà không thay đổi phiên. Nếu bạn chọn một phiên mới, phiên hiện tại của bạn sẽ tách ra và phiên bạn đã chọn được đính kèm.
Chúng tôi đã tách phiên làm việc của geek-2 trước khi chúng tôi làm điều này. Tuy nhiên, bạn có thể làm điều này với các phiên vẫn được gắn vào cửa sổ đầu cuối ban đầu của chúng. Khi bạn thực hiện, mọi thay đổi màn hình sẽ xuất hiện đồng thời ở cả hai tmux
phiên.
Các screen
lệnh cũng có thể làm điều này thông qua một bộ lệnh tương tự.
Làm việc với các ô cửa sổ
Nếu bạn nhấn Ctrl + B, sau đó tăng gấp đôi dấu ngoặc kép (kiểu Tối), bạn chia cửa sổ theo chiều ngang thành hai tấm.
Điều này chỉ ảnh hưởng đến cửa sổ hiện tại; những người khác trong phiên thắng won được thay đổi. Chúng tôi đã sử dụng tmux ls
lệnh trong khung trên cùng để liệt kê các cửa sổ trong phiên này. Có hai và dòng trạng thái cho chúng ta biết chúng ta ở cửa sổ một. Nếu chúng ta nhảy qua cửa sổ số 0 bằng cách nhấn Ctrl + B, rồi 0 (không), chúng ta sẽ thấy nó giống như khi chúng ta rời khỏi nó.
Đây là hai dòng lệnh độc lập, không phải hai khung nhìn trong một cửa sổ; chúng là vỏ riêng biệt và riêng biệt. Chúng ta có thể hiển thị điều này bằng cách chạy một lệnh khác nhau trong mỗi khung.
Chúng tôi gõ như sau:
uname -a
ls -hl
Để di chuyển từ khung này sang khung khác, nhấn Ctrl + B, sau đó chọn Mũi tên Lên, Xuống, Trái hoặc Phải.
Nếu bạn nhấn Ctrl + B, và sau đó là dấu phần trăm (%)
nó tách khung hiện tại theo chiều dọc.
Nhấn Ctrl + B, sau đó Q để thực hiện tmux
chớp nhoáng số lượng của mỗi khung.
Những số này được sử dụng trong lời nhắc và tin nhắn từ tmux
. Nhấn Ctrl + B, rồi X để đóng khung hiện tại. Thanh trạng thái thay đổi thành màu hổ phách và bạn được nhắc xác nhận rằng bạn muốn đóng số khung đó. Nhấn Y để loại bỏ khung hoặc N để rời khỏi mọi thứ.
Nếu bạn nhấn Y, khung sẽ bị xóa.
Các screen
lệnh cũng có panes, nhưng, một lần nữa, chúng lại ít trực quan hơn để sử dụng. Điều làm chúng tôi khó chịu screen
là nếu bạn tách phiên bằng panes, chúng sẽ biến mất khi bạn gắn lại phiên đó. Điều này trở nên cũ rất nhanh chóng.
Một bảng cheat Ctrl + B
Chúng tôi đã bao gồm một bảng cheat của các lệnh khác nhau mà bạn có thể sử dụng trong tmux
phía dưới.
Lệnh phiên
- S: Liệt kê các phiên.
- $: Đổi tên phiên hiện tại.
- Đ: Tháo phiên hiện tại.
- Ctrl + B, sau đó ?: Hiển thị trang Trợ giúp trong
tmux
.
Lệnh cửa sổ
- C: Tạo một cửa sổ mới.
- ,: Đổi tên cửa sổ hiện tại.
- W: Liệt kê các cửa sổ.
- N: Di chuyển đến cửa sổ tiếp theo.
- P: Di chuyển đến cửa sổ trước.
- 0 đến 9: Di chuyển đến số cửa sổ được chỉ định.
Lệnh Pane
- %: Tạo sự phân chia ngang.
- Sầu: Tạo sự phân chia theo chiều dọc.
- H hoặc Mũi tên trái: Di chuyển đến khung bên trái.
- Tôi hoặc Mũi tên phải: Di chuyển đến khung bên phải.
- Mũi tên J hoặc Xuống: Di chuyển đến khung bên dưới.
- Mũi tên K hoặc Up: Di chuyển đến khung ở trên.
- Q: Hiển thị ngắn gọn số khung.
- Ôi Di chuyển qua các tấm theo thứ tự. Mỗi lần nhấn sẽ đưa bạn tới lần tiếp theo, cho đến khi bạn lặp qua tất cả chúng.
- }: Hoán đổi vị trí của khung hiện tại với tiếp theo.
- {: Hoán đổi vị trí của khung hiện tại với trước đó.
- X: Đóng khung hiện tại.
Họ so sánh như thế nào
Về chức năng, screen
và tmux
cả hai thực hiện tương tự và cung cấp các tính năng chính giống nhau. Nó khác với cách bạn truy cập các tính năng khác biệt rõ rệt. tmux
cung cấp các cách mượt mà, thoải mái hơn để có được các chức năng khác nhau. Tuy nhiên, đó không phải là sự khác biệt duy nhất.
Khả năng đổi tên phiên và cửa sổ trong tmux
là gọn gàng, và thực tế là nó giữ lại các bảng khi bạn gắn lại một phiên là một thay đổi trò chơi.
screen
mặt khác, mất hoàn toàn panes khi bạn tách ra và gắn lại một phiên. Điều này gần như đủ khó chịu để làm cho bạn tránh tách ra ngay từ đầu.
Có rất nhiều thứ nữa tmux
, bao gồm khả năng kịch bản vô cùng linh hoạt của nó. Bạn nợ nó để kiểm tra xem nó ra.
xem thêm:
Mở rộng tập lệnh bash shell trên linux
Hướng dẫn tạo usb boot bằng rufus