Nếu bạn là người mới sử dụng Linux và công việc của bạn liên quan đến việc thực hiện các thao tác thông qua dòng lệnh, thì không cần phải nói rằng bạn phải dành nhiều thời gian trên cửa sổ terminal. Như bạn có thể đồng ý, có một số lệnh mà chúng ta có xu hướng sử dụng rất thường xuyên, như ls, cp và rm. Tuy nhiên, có một số lệnh khác ít được sử dụng hơn. Trong hướng dẫn này, chúng ta sẽ thảo luận về một lệnh ít được sử dụng như vậy: Exit.
Xin lưu ý rằng tất cả các ví dụ và hướng dẫn được đề cập trong bài viết này đã được thử nghiệm trên shell Bash chạy trên Ubuntu 22.04.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22213%22%20height=%2263%22%3E%3C/svg%3E
Nếu cửa sổ shell của bạn có nhiều tab, thì lệnh này sẽ thoát khỏi tab nơi nó được thực thi. Vì đây là lệnh tích hợp, nên rất có thể bạn sẽ không tìm thấy trang hướng dẫn chuyên dụng cho lệnh thoát. Để truy cập tài liệu chính thức của nó, hãy thực hiện lệnh sau:
Trên hệ thống của tôi, lệnh đã đề cập ở trên tạo ra đầu ra sau:
Bây giờ, một số bạn có thể hỏi tại sao (hay đúng hơn là khi nào) N lại được yêu cầu. Vâng, giá trị - về cơ bản là trạng thái thoát - chủ yếu được sử dụng khi lệnh được sử dụng từ bên trong một tập lệnh (tập lệnh bash). Trong một số trường hợp, giá trị này được ánh xạ thành lỗi, cảnh báo hoặc thông báo mà con người có thể đọc được.
Ngoài ra, như đã thấy rõ từ đầu ra lệnh trợ giúp ở trên, nếu giá trị N không được chỉ định rõ ràng, trạng thái thoát của lệnh được thực thi cuối cùng sẽ được coi là giá trị đó.
Hãy lấy một ví dụ đơn giản: Những gì tôi đã làm là chuyển đổi tài khoản người dùng và nhập shell gốc:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22268%22%20height=%2265%22%3E%3C/svg%3E
Sau đó, tôi thoát khỏi shell bằng lệnh exit. Ngoài ra, tôi đã sử dụng 8 làm giá trị trạng thái thoát.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22298%22%20height=%2293%22%3E%3C/svg%3E
Bây giờ, trong shell cha (nơi tôi đã trả về), tôi đã sử dụng lệnh sau để kiểm tra trạng thái thoát:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22293%22%20height=%22106%22%3E%3C/svg%3E
Vì vậy, bạn có thể thấy giá trị trạng thái này giống với giá trị được truyền cho lệnh thoát trong shell gốc. Vì vậy, theo cách này, chúng ta có thể truy cập trạng thái, sau đó thực hiện bất kỳ điều gì được dự định.
Bây giờ, đây là một ví dụ khác mà tôi không truyền rõ ràng bất kỳ trạng thái thoát nào từ shell gốc, nhưng khi truy vấn trong shell cha, trạng thái thoát của lệnh cuối cùng được chạy trong shell gốc đã được trả về:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22405%22%20height=%22123%22%3E%3C/svg%3E
Vì vậy, bất kỳ hành động nào bạn muốn hệ thống thực hiện khi thoát, bạn cần chỉ định lệnh tương ứng trong dấu ngoặc kép ở trên. Ví dụ, tôi đã sử dụng lệnh sau:
Thực tế là không có tệp nào như vậy tồn tại trên hệ thống của tôi, vì vậy sau khi lệnh thoát được thực thi, shell sẽ hiển thị lỗi cho lệnh này. Và đó là những gì thực sự đã xảy ra - hãy xem bên dưới:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22550%22%20height=%2281%22%3E%3C/svg%3E
Theo cách này, bạn có thể đặt bẫy khi thoát. Để biết thêm thông tin về bẫy, hãy chạy lệnh sau:
Xin lưu ý rằng tất cả các ví dụ và hướng dẫn được đề cập trong bài viết này đã được thử nghiệm trên shell Bash chạy trên Ubuntu 22.04.
Lệnh thoát Linux
Lệnh thoát cho phép bạn thoát khỏi shell tại nơi nó đang chạy.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22213%22%20height=%2263%22%3E%3C/svg%3E
Nếu cửa sổ shell của bạn có nhiều tab, thì lệnh này sẽ thoát khỏi tab nơi nó được thực thi. Vì đây là lệnh tích hợp, nên rất có thể bạn sẽ không tìm thấy trang hướng dẫn chuyên dụng cho lệnh thoát. Để truy cập tài liệu chính thức của nó, hãy thực hiện lệnh sau:
Mã:
help exit
Mã:
exit: exit [n]
Thoát khỏi shell.
Thoát khỏi shell với trạng thái là N. Nếu N bị bỏ qua, trạng thái thoát
là trạng thái của lệnh cuối cùng được thực thi.
Ngoài ra, như đã thấy rõ từ đầu ra lệnh trợ giúp ở trên, nếu giá trị N không được chỉ định rõ ràng, trạng thái thoát của lệnh được thực thi cuối cùng sẽ được coi là giá trị đó.
Hãy lấy một ví dụ đơn giản: Những gì tôi đã làm là chuyển đổi tài khoản người dùng và nhập shell gốc:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22268%22%20height=%2265%22%3E%3C/svg%3E
Sau đó, tôi thoát khỏi shell bằng lệnh exit. Ngoài ra, tôi đã sử dụng 8 làm giá trị trạng thái thoát.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22298%22%20height=%2293%22%3E%3C/svg%3E
Bây giờ, trong shell cha (nơi tôi đã trả về), tôi đã sử dụng lệnh sau để kiểm tra trạng thái thoát:
Mã:
echo $?
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22293%22%20height=%22106%22%3E%3C/svg%3E
Vì vậy, bạn có thể thấy giá trị trạng thái này giống với giá trị được truyền cho lệnh thoát trong shell gốc. Vì vậy, theo cách này, chúng ta có thể truy cập trạng thái, sau đó thực hiện bất kỳ điều gì được dự định.
Bây giờ, đây là một ví dụ khác mà tôi không truyền rõ ràng bất kỳ trạng thái thoát nào từ shell gốc, nhưng khi truy vấn trong shell cha, trạng thái thoát của lệnh cuối cùng được chạy trong shell gốc đã được trả về:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22405%22%20height=%22123%22%3E%3C/svg%3E
Định nghĩa bẫy
Nếu muốn, bạn cũng có thể định nghĩa một số hành động mà bạn muốn hệ thống thực hiện khi shell thoát. Ví dụ: bạn có thể muốn xóa một hoặc nhiều tệp khi thoát. Để làm được điều này, bạn phải đặt một trap, bạn có thể thực hiện theo cách sau:
Mã:
trap "ENTER-COMMAND-HERE" EXIT
Mã:
trap "rm hypotheticalfile.txt" EXIT
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22550%22%20height=%2281%22%3E%3C/svg%3E
Theo cách này, bạn có thể đặt bẫy khi thoát. Để biết thêm thông tin về bẫy, hãy chạy lệnh sau:
Mã:
help trap