Tin tức và phân tích của tất cả các thiết bị di động

Cách tùy chỉnh vỏ Bash với shopt

Nếu bạn điều chỉnh hành vi của trình bao Bash bằng shopt, bạn có thể kiểm soát hơn 50 cài đặt. Chúng tôi sẽ chỉ cho bạn cách tùy chỉnh Linux theo cách bạn muốn.

Cửa hàng tích hợp

Cửa hàng tích hợp là một phần của tất cả các phiên bản Bash shell, vì vậy không cần cài đặt bất cứ thứ gì. Số lượng tùy chọn có sẵn trên Shopt đã tăng đều đặn trong những năm qua. Vì vậy, phiên bản Bash càng cũ thì danh sách các tùy chọn mua sắm sẽ càng ngắn.

Nếu có gì đó không hoạt động trên máy của bạn, hãy kiểm tra mục nhập Bash trong trang hướng dẫn và xem liệu tùy chọn này có sẵn trong phiên bản shopt của bạn không.

Dưới đây chúng tôi mô tả tất cả các tùy chọn cửa hàng. Chúng tôi cũng mô tả cách sử dụng nó và cung cấp một số ví dụ. Từ đó, bạn có thể xem trang hướng dẫn Bash hoặc Hướng dẫn tham khảo GNU Bash để xem liệu có bất kỳ tùy chọn nào trong số này có vẻ hữu ích hoặc hấp dẫn đối với bạn hay không.

Một số tùy chọn shopt được bật theo mặc định và là một phần của hành vi Bash mặc định. Bạn có thể bật tùy chọn shopt dưới dạng thay đổi ngắn hạn đối với Bash. Sau đó, nó sẽ trở lại hành vi mặc định khi Shell được đóng lại.

Tuy nhiên, nếu bạn muốn hành vi đã sửa đổi có sẵn mỗi khi bạn khởi động trình bao Bash, bạn có thể thực hiện các thay đổi vĩnh viễn.

lựa chọn cửa hàng

Có 53 tùy chọn cửa hàng có sẵn. Nếu bạn sử dụng lệnh shopt mà không có bất kỳ tùy chọn nào, nó sẽ hiển thị chúng. Nếu chúng ta gửi đầu ra bằng lệnh wc, nó sẽ đếm số dòng, từ và ký tự cho chúng ta. Vì mỗi tùy chọn shopt nằm trên một dòng riêng biệt nên số dòng chính là số tùy chọn.

Chúng tôi nhập:

shopt | wc

Để xem tất cả các tùy chọn, chúng ta có thể tạo kết quả đầu ra bằng lệnh cột để hiển thị tên tùy chọn trong cột hoặc chúng ta có thể thực hiện điều đó ít hơn.

Chúng tôi nhập:

shopt | column

cửa hàng |  cột trong cửa sổ đầu cuối.

Tìm shopt trong sổ tay Linux

Để biết phần về shopt và các tùy chọn của nó, hãy xem phần Bash của sổ tay Linux. Phần Bash có hơn 6.000 dòng. Bạn có thể tìm thấy phần mô tả cửa hàng bằng cách cuộn nhiều lần hoặc bạn chỉ cần tìm kiếm nó trong sách hướng dẫn.

Để thực hiện việc này, hãy mở hướng dẫn trong phần Bash:

man bash

bash man trong cửa sổ đầu cuối.

Trong sách hướng dẫn, nhấn / để bắt đầu tìm kiếm. Nhập lệnh sau, rồi nhấn Enter:

assoc_expand_once

Phần Bash của sách hướng dẫn, với cụm từ tìm kiếm được nhập trên dòng lệnh trong cửa sổ đầu cuối.

Đầu mục shoptoption sẽ hiện ra ở cửa sổ man.

Hướng dẫn hiển thị phần tùy chọn shopt của trang man Bash trong cửa sổ đầu cuối.

Tùy chọn vũ trang và giải giáp

Để đặt và hủy các tùy chọn shopt, hãy sử dụng các lệnh sau:

-s: Đặt hoặc bật.
-u: Vô hiệu hóa hoặc vô hiệu hóa.

Vì một số tùy chọn được bật theo mặc định nên bạn cũng nên kiểm tra xem tùy chọn nào đã được bật. Bạn có thể làm điều này với các tùy chọn -s và -u mà không cần sử dụng tên tùy chọn. Điều này khiến shopt hiển thị danh sách các tùy chọn được bật và tắt.

Nhập các thông tin sau:

shopt -s

shopt -s trong cửa sổ đầu cuối.

shopt -u | column

shopt -u |  cột trong cửa sổ đầu cuối.

Bạn có thể sử dụng tùy chọn shopt mà không có lệnh -s hoặc -u để xem trạng thái bật hoặc tắt của từng tùy chọn.

Ví dụ: chúng ta có thể gõ lệnh sau để kiểm tra cài đặt tùy chọn xác minh lịch sử:

shopt histverify

Chúng ta có thể nhập:

shopt -s histverify

Sau đó, chúng ta có thể gõ lệnh sau để kiểm tra lại:

shopt histverify

shopt xác minh lịch sử trong cửa sổ đầu cuối.

Tùy chọn xác minh lịch sử thay đổi cách thức hoạt động của một khía cạnh của lệnh lịch sử. Thông thường, nếu bạn yêu cầu lịch sử lặp lại một lệnh bằng cách tham chiếu nó theo số chẳng hạn! 245, lệnh được lấy từ lịch sử lệnh và được thực thi ngay lập tức.

Nếu bạn muốn xem lại lệnh để đảm bảo đó là những gì bạn mong đợi và chỉnh sửa lệnh nếu cần, hãy nhập lệnh sau để bật tùy chọn shopt histverify:

!245

!  245 trong cửa sổ đầu cuối.

Lệnh được tìm nạp và trình bày trên dòng lệnh. Bạn có thể xóa, chỉnh sửa hoặc thực thi nó bằng cách nhấn Enter.

tùy chọn cd tự động

Khi bật autocd, nếu bạn nhập tên thư mục trên dòng lệnh và nhấn enter, nó sẽ được xử lý như thể bạn đã nhập cd trước nó.

Để bật tùy chọn autocd, hãy nhập:

shopt -s autocd

Sau đó nhập tên thư mục:

Documents

shopt -s autocd trong cửa sổ đầu cuối.

tùy chọn cdspell

Khi tùy chọn cdspell được bật, Bash sẽ tự động sửa các lỗi chính tả và lỗi chính tả đơn giản trong tên thư mục.

Chúng ta nhập lệnh sau để thiết lập tùy chọn cdspell:

shopt -s cdspell

Để cố gắng thay đổi thư mục chữ thường có chữ cái đầu viết hoa, hãy nhập:

cd documents

Sau đó, chúng ta có thể gõ lệnh sau để thử tên thư mục có thêm chữ “t” trong tên:

cd ../Picttures

shopt -s cdspell trong cửa sổ đầu cuối.

Bash thay đổi trong mọi thư mục bất kể lỗi chính tả.

tùy chọn xpg_echo

Khi tùy chọn xpg_echo được bật, lệnh echo sẽ ưu tiên các ký tự thoát như n cho dòng mới và t cho tab ngang.

Đầu tiên, chúng tôi gõ như sau để đảm bảo tùy chọn được đặt:

shopt -s xpg_echo

Sau đó, chúng tôi nối n vào chuỗi, chúng tôi sẽ chuyển đến tiếng vang:

echo "This is line onenThis is line two"

shopt -s xpg_echo trong cửa sổ đầu cuối.

Dòng mới thoát buộc ngắt dòng trong đầu ra.

Điều này mang lại hành vi tương tự như tiếng vang -e (cho phép giải thích thoát), nhưng xpg_echo cho phép đây là hành động mặc định.

tùy chọn dotglobe

Tùy chọn dotglob nên được tiếp cận một cách thận trọng. Cho phép các tệp và thư mục bắt đầu bằng dấu chấm (.) được đưa vào phần mở rộng tên hoặc “quả địa cầu”. Chúng được gọi là “tệp chấm” hoặc “thư mục chấm” và thường bị ẩn. Tùy chọn dotglob bỏ qua dấu chấm ở đầu tên của chúng.

Trước tiên, chúng tôi sẽ tìm kiếm các tệp hoặc thư mục kết thúc bằng “geek” bằng cách nhập:

ls *geek

Đã tìm thấy và thay thế một tệp. Sau đó, chúng tôi sẽ kích hoạt tùy chọn dotglob bằng cách gõ:

shopt -s dotglob

Chúng tôi đưa ra lệnh ls tương tự để tìm kiếm các tệp và thư mục kết thúc bằng “geek”:

ls *geek

ls*geek trong cửa sổ đầu cuối.

Lần này, hai tệp sẽ được tìm thấy và hiển thị, một trong số đó là tệp dấu chấm. Bạn cần cẩn thận với rm và mv khi bật dotglob.

tùy chọn nocaseglob

Tùy chọn nocaseglob tương tự như tùy chọn dotglob, ngoại trừ việc nocaseglob gây ra sự khác biệt về chữ hoa và chữ thường trong tên tệp và thư mục bị bỏ qua trong quá trình mở rộng tên.

Chúng ta nhập lệnh sau để tìm kiếm file hoặc thư mục bắt đầu bằng “like”:

ls how*

Đã tìm thấy và thay thế một tệp. Để bật tùy chọn nocaseglob, hãy nhập:

shopt -s nocaseglob

Sau đó lặp lại lệnh ls:

ls how*

Như* trong một cửa sổ đầu cuối.

Hai tệp đã được tìm thấy, một trong số đó chứa các chữ cái viết hoa.

Thay đổi vĩnh viễn

Những thay đổi chúng tôi đã thực hiện sẽ chỉ áp dụng cho đến khi Bash shell hiện tại được đóng lại. Để làm cho chúng không đổi trong các phiên shell, chúng ta cần thêm chúng vào tệp “.bashrc” của mình.

Trong thư mục chính của bạn, hãy nhập lệnh sau để mở tệp “.bashrc” trong trình soạn thảo văn bản đồ họa Gedit (hoặc thay đổi nó cho phù hợp để sử dụng trình soạn thảo ưa thích của bạn):

gedit .bashrc

Trình chỉnh sửa gedit sẽ mở với tệp “.bashrc” được tải. Bạn sẽ thấy rằng một số mục Shopt đã có trong đó.

Trình chỉnh sửa gedit với tệp .bashrc được tải và các tùy chọn shopt được làm nổi bật.

Bạn cũng có thể thêm các tùy chọn shopt của riêng mình tại đây. Sau khi thêm, hãy lưu các thay đổi và đóng trình chỉnh sửa. Giờ đây, mỗi khi bạn mở trình bao Bash mới, các tùy chọn của bạn sẽ được đặt cho bạn.

Tùy chọn xa như mắt có thể nhìn thấy

Đúng là lệnh shopt có rất nhiều tùy chọn, nhưng bạn không cần phải xử lý tất cả chúng cùng một lúc, nếu có. Vì có rất nhiều nên có khả năng sẽ có một số bạn không quan tâm.

Ví dụ: có một số buộc Bash phải hành xử theo cách tương thích với một số phiên bản cũ hơn. Điều này có thể hữu ích cho ai đó, nhưng đó là một trường hợp thích hợp.

Bạn có thể xem lại trang hướng dẫn Bash hoặc Hướng dẫn tham khảo GNU Bash. Quyết định những tùy chọn nào sẽ quan trọng đối với bạn và sau đó thử nghiệm với chúng. Chỉ cần cẩn thận với các tùy chọn ảnh hưởng đến cách mở rộng tên tệp và thư mục. Hãy thử chúng với một lệnh nhẹ nhàng như ls cho đến khi bạn cảm thấy thoải mái với chúng.