Cách chạy hai hoặc nhiều lệnh đầu cuối cùng một lúc trong Linux
Nếu bạn sử dụng Linux, bạn sẽ biết dòng lệnh có thể hữu ích như thế nào khi làm việc với các tệp, cài đặt phần mềm và khởi chạy chương trình. Nhưng nó có thể hiệu quả hơn nữa nếu bạn chạy nhiều lệnh cùng một lúc.
Việc kết hợp hai hoặc nhiều lệnh trên dòng lệnh còn được gọi là lệnh Lệnh chẻ ra. Chúng tôi sẽ chỉ cho bạn các cách khác nhau để bạn có thể kết hợp các lệnh trên dòng lệnh.
Tùy chọn Một: Toán tử Dấu chấm phẩy (;)
Toán tử dấu chấm phẩy (;) cho phép bạn thực hiện nhiều lệnh liên tiếp, bất kể mỗi lệnh trước đó có thành công hay không. Ví dụ: mở cửa sổ Terminal (Ctrl + Alt + T trong Ubuntu và Linux Mint). Sau đó, nhập ba lệnh sau trên một dòng, phân tách bằng dấu chấm phẩy và nhấn Enter. Điều này sẽ cung cấp cho bạn một danh sách các thư mục hiện tại ( ls
), tìm ra thư mục bạn hiện đang ở ( pwd
) và hiển thị tên đăng nhập của bạn ( tôi là ai
) tất cả trong một.
ls; pwd; tôi là ai
Bạn cũng không phải đặt khoảng trắng giữa dấu chấm phẩy và các lệnh. Bạn có thể nhập ba lệnh như ls; pwd; whoami
. Tuy nhiên, khoảng trắng làm cho lệnh kết hợp dễ đọc hơn, đặc biệt hữu ích nếu bạn đặt lệnh kết hợp vào tập lệnh shell.
Tùy chọn hai: Toán tử và toán tử (&&)
Nếu bạn muốn lệnh thứ hai chỉ chạy nếu lệnh thứ nhất thành công, hãy tách các lệnh bằng toán tử AND logic, đó là hai ký hiệu ( &&
). Ví dụ: chúng tôi muốn tạo một thư mục có tên MyFolder và sau đó thay đổi thành thư mục đó - miễn là nó được tạo thành công. Vì vậy, chúng tôi gõ như sau trên dòng lệnh và nhấn Enter.
mkdir MyFolder && cd MyFolder
Thư mục đã được tạo thành công, vì vậy CD
lệnh đã được thực thi và chúng ta đang ở trong thư mục mới.
Chúng tôi khuyên bạn nên sử dụng toán tử AND logic hơn là toán tử dấu chấm phẩy hầu hết thời gian (;
). Điều này đảm bảo rằng bạn không làm điều gì tai hại. Ví dụ: nếu bạn chạy một lệnh để thay đổi thành một thư mục và sau đó buộc loại bỏ mọi thứ trong thư mục đó một cách đệ quy ( cd / some_directory; rm -Rf *
), bạn có thể sẽ phá hỏng hệ thống của mình nếu thay đổi thư mục không xảy ra. Không phải chúng tôi khuyên bạn nên chạy lệnh để xóa vô điều kiện tất cả các tệp trong một thư mục cùng một lúc.
Tùy chọn ba: Toán tử HOẶC Toán tử (||)
Đôi khi bạn có thể muốn thực hiện lệnh thứ hai chỉ khi lệnh đầu tiên thực hiện không phải thành công Để làm điều này, chúng tôi sử dụng toán tử OR logic hoặc hai thanh dọc ( | |
). Ví dụ: chúng tôi muốn kiểm tra xem thư mục MyFolder có tồn tại không ( [-d ~ / MyFolder]
) và tạo nó nếu nó không ( mkdir ~ / MyFolder
). Vì vậy, chúng tôi gõ lệnh sau tại dấu nhắc và nhấn Enter.
[-d ~ / MyFolder] || mkdir ~ / MyFolder
Hãy chắc chắn có một khoảng trắng sau dấu ngoặc đầu tiên và trước dấu ngoặc thứ hai hoặc lệnh đầu tiên kiểm tra xem thư mục tồn tại sẽ không hoạt động.
Trong ví dụ của chúng tôi, thư mục MyFolder không tồn tại, vì vậy lệnh thứ hai tạo thư mục.
Kết hợp nhiều toán tử
Bạn cũng có thể kết hợp nhiều toán tử trên dòng lệnh. Ví dụ: trước tiên chúng tôi muốn kiểm tra xem một tệp có tồn tại không ( [-f ~ / sample.txt]
). Nếu có, chúng tôi sẽ in một thông báo ra màn hình ( tập tin echo echo tồn tại.
). Nếu không, chúng ta tạo tập tin ( chạm ~ / sample.txt
). Vì vậy, chúng tôi gõ như sau tại dấu nhắc lệnh và nhấn Enter.
[-f ~ / sample.txt] && echo Tập tin tồn tại. chạm ~ / sample.txt
Trong ví dụ của chúng tôi, tệp không tồn tại, vì vậy nó đã được tạo.
Đây là một bản tóm tắt hữu ích của từng toán tử được sử dụng để kết hợp các lệnh:
-
A; B
- Chạy A và sau đó B, bất kể thành công hay thất bại của A -
A && B
- Chỉ chạy B nếu A thành công -
Một | | B
- Chỉ chạy B nếu A thất bại
Tất cả các phương thức kết hợp các lệnh này cũng có thể được sử dụng trong các tập lệnh shell trên cả Linux và Windows 10.
Bạn cũng có thể tự động sửa lỗi chính tả và lỗi chính tả khi sử dụng dòng cd cd trên dòng lệnh trong Linux để tránh hậu quả nghiêm trọng khi kết hợp các lệnh.