Tạo các lệnh Linux của riêng bạn bằng cách sử dụng bí danh và các hàm Bash shell. Chế ngự các tác vụ lặp đi lặp lại, cắt ngắn các quy trình dài dòng và định cấu hình các lệnh tiêu chuẩn với các tùy chọn mà bạn luôn sử dụng và khó nhớ.
Bí danh và tập lệnh shell là những kỹ thuật mạnh mẽ trong các hệ điều hành giống như Linux và Unix cho phép bạn trau dồi trải nghiệm dòng lệnh của mình để trở thành những gì bạn muốn. Bạn có thể xác định các lệnh của riêng mình phù hợp với nhu cầu cụ thể của bạn và để giảm bớt gánh nặng của các tác vụ lặp đi lặp lại.
Bí danh và tập lệnh shell thực hiện cùng một loại công việc. Chúng cho phép bạn xác định — và đặt tên — một tập hợp các chức năng của trình bao Bash mà sau đó có thể gọi được bằng tên mà bạn đã đặt cho nó. Nhập tên dễ dàng và thuận tiện hơn so với việc phải nhập tất cả các bước hoặc lệnh mỗi khi bạn muốn sử dụng chúng.
Sự khác biệt giữa bí danh và tập lệnh là độ phức tạp và quy mô. Tập lệnh tốt hơn trong việc giữ các đoạn mã dài hơn và phức tạp hơn. Bí danh hoàn hảo để nắm giữ các bộ lệnh ngắn hơn, cô đọng hơn.
Bí danh được xác định trước
Một số bí danh được xác định trước cho bạn. Để xem danh sách các bí danh được xác định trong hệ thống của bạn, hãy sử dụng lệnh bí danh không có tham số:
alias
Đây là những bí danh được định nghĩa trên máy thử nghiệm Ubuntu mà bài viết này đã nghiên cứu. Nếu tôi đã xác định bất kỳ bí danh tùy chỉnh nào, những bí danh này cũng sẽ hiển thị trong danh sách này.
Ở đầu danh sách, có một bí danh trông phức tạp được gọi là alert
. Chúng tôi sẽ đến điều đó trong giây lát. Có một loạt các bí danh khác nhau cho ls
và có một nhóm các bí danh cung cấp đầu ra màu cho grep
họ lệnh. Ví dụ: với các bí danh này được xác định, bất cứ khi nào bạn nhập:
grep
Hệ thống sẽ giải thích nó là:
grep --color=auto
Điều này cho thấy một điểm quan trọng với bí danh. Chúng có thể có cùng tên với các lệnh hiện có. Chúng thậm chí có thể chứa lệnh gốc bên trong chính chúng.
Đây là định nghĩa của grep
bí danh.
alias grep='grep --color=auto'
- Các
alias
lệnh được sử dụng để xác định một bí danh. - Tên của bí danh được đưa ra tiếp theo. Trong ví dụ này, nó là
grep
. - Dấu bằng kết nối Tên của bí danh cho thân hình của bí danh. Đối với tất cả các bí danh nhưng rất đơn giản, phần nội dung của bí danh được đặt trong các dấu ngoặc kép
'
. - Phần thân của bí danh là phần được thực thi khi bí danh được sử dụng trên dòng lệnh.
Phần thân của bí danh này chỉ đơn giản gọi là grep
ra lệnh với --color=auto
Lựa chọn.
Bí danh cảnh báo
Như một cách nhanh chóng sang một bên, và để bạn biết những gì nó làm, alert
bí danh được sử dụng để cho bạn biết khi một lệnh kết thúc. Nó cũng cho biết lệnh đã hoàn thành thành công hay chưa. Nó cung cấp một cảnh báo hệ thống đồ họa ở đầu màn hình.
Đây là một ví dụ đơn giản. Các sleep
lệnh sẽ ngủ trong năm giây., alert
bí danh sau đó sẽ được gọi. Bí danh kiểm tra phản hồi từ lệnh trước đó. Nó trích xuất lệnh cuối cùng từ tệp lịch sử. Nó xác định xem lệnh có hoàn thành thành công hay không. Sau đó, nó hiển thị kết quả trong một cảnh báo hệ thống.
Nếu lệnh hoàn thành như mong đợi, biểu tượng trong cảnh báo hệ thống là một cửa sổ đầu cuối nhỏ. Nếu lệnh trả về mã lỗi, biểu tượng trong cảnh báo hệ thống là biểu tượng lỗi màu đỏ.
sleep 5; alert
Sau năm giây, chúng tôi thấy hệ thống này cảnh báo:
Biểu tượng là một cửa sổ đầu cuối nhỏ, có nghĩa là mọi thứ đã diễn ra tốt đẹp. Hãy thử lại điều đó với một lệnh mà chúng tôi biết sẽ không thành công:
DoomedToFail; alert
Cảnh báo hệ thống của chúng tôi hiện có biểu tượng lỗi.
Xác định một bí danh tầm thường
Như chúng ta đã thấy, để xác định bí danh, chúng tôi sử dụng alias
chỉ huy.
Chúng tôi sẽ tạo một bút danh cho clear
chỉ huy. Bí danh của chúng tôi sẽ được gọi là cls
và nó sẽ gọi clear
chỉ huy.
Định nghĩa bí danh của chúng tôi quá tầm thường nên nó không đảm bảo được gói gọn trong các dấu ngoặc kép. Nếu phần nội dung của bí danh phức tạp hơn bất kỳ điều gì hoặc nếu nó chứa khoảng trắng, hãy đặt nó trong dấu ngoặc kép. Chúng tôi sẽ xác định bí danh, sử dụng ls
để đặt một số đầu ra trong cửa sổ đầu cuối và sau đó sử dụng bí danh mới của chúng tôi cls
để xóa màn hình.
alias cls=clear
ls -l
cls
Màn hình bị xóa. Thành công, mặc dù còn thiếu sót. Bí danh sẽ chỉ tồn tại miễn là cửa sổ đầu cuối này vẫn mở. Sau khi đóng cửa sổ, bí danh sẽ biến mất.
Vậy làm cách nào để chúng tôi đặt bí danh của mình vĩnh viễn?
Tệp .bashrc và Bí danh
Bạn có thể tự hỏi nơi định nghĩa các bí danh đóng gói sẵn. nó nằm trong tệp “.bashrc” trong thư mục chính của bạn. Tệp này được đọc và các lệnh bên trong nó được thực thi bất cứ khi nào bạn khởi động một trình bao tương tác. Đó là, khi bạn mở một cửa sổ đầu cuối.
Nhập lệnh sau vào thư mục chính của bạn để xem nội dung của tệp “.bashrc” với tô sáng cú pháp.
gedit .bashrc
Điều này sẽ khởi chạy gedit
trình soạn thảo với tệp “.bashrc” được tải vào đó.
Các khu vực được đánh dấu hiển thị hai khu vực nơi các bí danh được xác định.
Cuộn qua tài liệu sẽ thấy hai phần khác liên quan đến bí danh:
Đầu tiên trong số này là định nghĩa của alert
bí danh. Thứ hai là một if
tuyên bố. Nó có nghĩa là, “nếu tệp“ .bash_aliases ”tồn tại, hãy đọc nó trong.”
Nếu bạn chỉ có một vài bí danh mà bạn muốn xác định, bạn có thể đưa chúng vào tệp “.bashrc” của mình. Nhét chúng vào bên dưới phần có chứa ls
bí danh.
Nếu bạn định tạo nhiều bí danh hoặc bạn chỉ thích ý tưởng gói bí danh của mình trong tệp riêng của chúng, bạn có thể xác định chúng trong tệp “.bash_aliases” của mình. Một lợi thế của việc tạo chúng trong tệp “.bash_aliases” của bạn là bạn không thể vô tình thay đổi bất kỳ cài đặt nào trong tệp “.bashrc”. Một ưu điểm khác là bí danh của bạn dễ dàng được sao chép sang các hệ thống mới vì chúng hoàn toàn tách biệt với tệp “.bashrc”.
Lưu trữ bí danh trong tệp .bash_aliases
Tệp “.bash_aliases” sẽ không tồn tại cho đến khi bạn tạo nó. Bạn có thể tạo tệp bằng lệnh này:
touch .bash_aliases
Hãy chỉnh sửa tệp và thêm một vài bí danh cho nó. Lệnh này sẽ mở tệp “.bash_aliases” trong gedit
người biên tập.
gedit .bash_aliases
Chúng tôi đã thêm ba bí danh. Đầu tiên là của chúng tôi cls
bí danh mà chúng tôi đã sử dụng trước đó. Tiếp theo được gọi là h.
và là một cách viết tắt để gọi history
chỉ huy.
Bí danh thứ ba được gọi là ftc
. Điều này là viết tắt của “số loại tệp.”
Bí danh này có liên quan nhiều hơn, vì vậy nó được gói trong các dấu ngoặc kép. Nó sử dụng một chuỗi lệnh được liên kết với nhau bằng các đường ống. Nó tạo ra một danh sách được sắp xếp gồm các phần mở rộng tệp và tên thư mục khác nhau, với số lượng cho mỗi mục nhập danh sách.
LIÊN QUAN: Cách sử dụng Pipes trên Linux
Khi chúng tôi đã lưu tệp “.bash_aliases”, chúng tôi có thể mong đợi bí danh của chúng tôi sẽ hoạt động và có thể truy cập được. Không phải vậy đâu. Tệp phải được đọc bởi trình bao Bash trước khi các định nghĩa bí danh có hiệu lực. Điều này được thực hiện bất cứ khi nào một trình bao tương tác được mở.
Chúng tôi cũng có thể sử dụng trình bao Bash được tích hợp sẵn .
để đọc và thực hiện các lệnh trong một tệp. Vì tệp “.bash_alias” của chúng tôi được đọc khi “.bashrc” được xử lý, chúng tôi phải thực hiện kiểm tra của mình bằng cách gọi “.bashrc”. Bằng cách đó, chúng tôi có thể kiểm tra xem tệp “.bash_alias” có được gọi từ “.bashrc” hay không và các bí danh của chúng tôi vẫn còn hoạt động tốt.
Các lệnh chúng tôi đã sử dụng là:
gedit .bash_alias
Để chỉnh sửa tệp “.bash_alias”.
. .bashrc
Điều này sẽ đọc và thực hiện các lệnh trong “.bashrc”, lệnh này sẽ gọi “.bash_alias”.
ftc
Điều này sẽ gọi ftc
bí danh.
Bí danh của chúng tôi phản hồi có nghĩa là Bash đã đọc bằng cả “.bashrc” và “.bash_aliases” và bí danh mới của chúng tôi hiện đã hoạt động.
Bây giờ bạn có thể tiếp tục và thêm các bí danh mới vào tệp “.bash_aliases” khi chúng xuất hiện với bạn. Nếu bạn thấy mình đang làm nhiều việc hơn một hoặc hai lần, hãy cân nhắc đặt bí danh cho nó.
Xóa bí danh
Có một lệnh xóa các bí danh để BAsh không nhận ra chúng cũng như phản hồi chúng. Nói một cách thẳng thắn, lệnh được gọi là unalias
.
Để sử dụng nó, hãy cung cấp tên của bí danh mà bạn muốn Bash quên. Để làm cho Bash quên đi ftc
bí danh, sử dụng unalias
như thế này:
unalias ftc
Bạn có thể dùng unalias
để xóa các bí danh bạn đã xác định và bất kỳ bí danh nào được xác định trước.
Để xóa tất cả các bí danh khỏi hệ thống của bạn, hãy sử dụng -a
(tất cả) tùy chọn:
unalias -a
Tuy nhiên, việc mất trí nhớ của Bash sẽ không phải là vĩnh viễn. Lần tới khi bạn mở cửa sổ dòng lệnh, bí danh “bị quên” sẽ quay trở lại. Để thực sự xóa sạch chúng, bạn cần xóa chúng khỏi các tệp “.bashrc” và “.bash_alias” của mình.
Nếu bạn nghĩ rằng bạn muốn lấy lại chúng, đừng xóa chúng khỏi tệp “.bashrc” của bạn. Thay vào đó, hãy bình luận chúng bằng cách thêm một hàm băm #
để bắt đầu mỗi alias
hàng. Để làm cho tệp “.bash_alias” của bạn không hiệu quả, hãy đổi tên nó. Nếu tệp “.bashrc” của bạn không thể nhìn thấy nó, nó sẽ không đọc được. Việc đảo ngược các bước này để khôi phục bí danh của bạn là một vấn đề nhỏ.
Các chức năng của Shell
Các bí danh Lika, các hàm Bash shell có thể được định nghĩa trong tệp “.bashrc”, nhưng thường sẽ gọn gàng hơn nếu đặt chúng trong tệp định nghĩa của riêng chúng. Chúng tôi sẽ gọi nó là “.bash_functions”, theo quy ước được sử dụng cho tệp “.bash_aliases”.
Điều đó có nghĩa là chúng ta cần cho tệp “.bashrc” đọc trong định nghĩa của chúng ta. Chúng tôi có thể sao chép và sửa đổi đoạn mã đọc trong tệp “.bash_aliases”. Phóng gedit
và tải tệp “.bashrc” bằng lệnh này:
gedit .bashrc
Bạn cần thêm phần được đánh dấu được hiển thị bên dưới.
Bạn có thể đánh dấu phần bí danh và nhấn Ctrl+C
và sau đó di chuyển đến nơi bạn muốn phần mới và nhấn Ctrl+V
để dán một bản sao của văn bản. Sau đó, tất cả những gì bạn cần làm là thay đổi hai vị trí có nội dung “.bash_aliases” thành “.bash_functions.”
Chúng tôi có thể lưu những thay đổi đó và đóng gedit
.
Bây giờ chúng ta sẽ tạo và chỉnh sửa tệp “.bash_functions” và đưa vào đó một định nghĩa hàm.
touch .bash_functions
gedit .bash_functions
Thao tác này sẽ mở tệp “.bash_functions” trống trong gedit
.
Chúng tôi sẽ thêm một hàm đơn giản có tên là up
. up
sẽ nhận một tham số dòng lệnh duy nhất, là một chữ số. up
sau đó sẽ gọi cd ..
số lần đó. Vì vậy, nếu bạn sử dụng lệnh
up 2
up
sẽ gọi cd ..
hai lần và sẽ tăng hai cấp trong cây thư mục.
Có nhiều cách khác nhau để xác định một hàm. Đây là một trong những:
function up() {
Từ function
Là tùy chọn. Nếu bạn là người theo chủ nghĩa truyền thống, hãy sử dụng nó, nếu bạn không thể làm phiền khi gõ nó vào, hãy bỏ nó ra.
Đây là toàn bộ chức năng của chúng tôi trong gedit
:
function up() {
Điều này đánh dấu sự bắt đầu của định nghĩa hàm của chúng tôi và nó đặt tên cho hàm up
.
levels=$1
Điều này tạo ra một biến được gọi là levels
và đặt nó thành giá trị của tham số đầu tiên. Tham số này sẽ là một chữ số được cung cấp bởi người dùng khi họ gọi hàm. Các $1
có nghĩa là “tham số dòng lệnh đầu tiên”.
while [ "$levels" -gt "0" ]; do
Sau đó, chúng tôi nhập một vòng lặp. Điều này được dịch là “trong khi giá trị của levels
lớn hơn 0, hãy thực hiện những gì được chứa trong phần thân của vòng lặp. ”
Bên trong phần thân của vòng lặp, chúng ta có hai lệnh. Họ đang:
cd ..
Di chuyển lên một cấp độ trong cây thư mục.
levels=$(($levels - 1))
Bộ levels
thành một giá trị mới, nhỏ hơn một giá trị hiện tại của nó.
Sau đó, chúng tôi quay lại đầu vòng lặp, so sánh giữa giá trị của levels
và số không được tạo ra một lần nữa. Nếu levels
lớn hơn 0, phần thân của vòng lặp được thực thi lại. Nếu nó không lớn hơn 0, vòng lặp đã kết thúc và chúng ta chuyển qua done
câu lệnh, và chức năng kết thúc.
Lưu những thay đổi này và đóng gedit
.
Chúng tôi sẽ đọc và thực hiện các lệnh trong “.bashrc” sẽ đọc và thực thi các lệnh trong tệp “.bash_functions” của chúng tôi.
. .bashrc
Chúng ta có thể kiểm tra chức năng bằng cách di chuyển đến một số vị trí trong cây thư mục và sử dụng up
để quay lại điểm “cao hơn” trong cây thư mục.
cd ./work/backup/
up 2
Chức năng hoạt động. Chúng tôi đã di chuyển hai cấp thư mục cao hơn trong cây.
Theo dõi với loại
Khi bạn xây dựng một bộ bí danh và thư viện hàm, bạn có thể khó nhớ một lệnh cụ thể là bí danh hay hàm. Bạn có thể dùng type
lệnh để nhắc nhở bạn. Điều thú vị ở đây là bạn cũng có thể xem định nghĩa.
Hãy sử dụng type
trên của chúng tôi ftc
bí danh và của chúng tôi up
chức năng.
type ftc
type up
Chúng tôi nhận được một lời nhắc rất hữu ích về loại lệnh của mỗi lệnh, cùng với định nghĩa của chúng.
Bắt đầu thu thập
Bí danh và chức năng có thể tăng tốc độ sử dụng dòng lệnh của bạn lên rất nhiều. Chúng có thể rút ngắn các chuỗi lệnh và cho phép bạn bổ sung các tùy chọn mà bạn luôn sử dụng với các lệnh tiêu chuẩn.
Mỗi khi bạn nhìn thấy một lớp lót tiện lợi hoặc chức năng hữu ích, bạn có thể điều chỉnh và cá nhân hóa nó, sau đó thêm nó vào tệp “.bash_aliases” hoặc “.bash_functions” của bạn.