Cách tạo Bí danh và Hàm Shell trên Linux?
Việc biết các lời nhắc lệnh & tập lệnh shell vẫn cần thiết nếu bạn muốn tận dụng tối đa hệ thống GNU / Linux & càng hoạt động nhiều hơn ở dòng lệnh, người ta sẽ thấy rằng phần lớn các lệnh đang được sử dụng rất tập hợp con nhỏ của các lệnh có sẵn. Hầu hết các tác vụ là theo thói quen và người dùng mà bạn có thể chạy chúng theo cùng một cách hàng ngày.
Trong khi các nhà sản xuất của nhiều tiện ích lệnh phổ biến nhất đã cố gắng loại bỏ việc nhập không liên quan bằng cách sử dụng các tên rút gọn, ví dụ: thay vì danh sách, chúng tôi nhập “ls”& Thay vì thay đổi thư mục, chúng tôi nhập“CD”. Ngoài ra, nhiều người dùng Linux thường cần sử dụng lặp đi lặp lại một lệnh. Việc gõ / sao chép cùng một lệnh lặp đi lặp lại sẽ làm giảm năng suất và khiến người dùng mất tập trung vào công việc thực tế.
Sẽ thật tuyệt nếu chúng ta dành ít thời gian hơn để gõ những câu lệnh dài dòng đó. Chúng tôi có Hai cách hiệu quả để giảm thiểu thời gian của bạn trên dòng lệnh là bí danh shell và chức năng, bằng cách sử dụng hai điều này, người dùng có thể Chế ngự các tác vụ lặp đi lặp lại, rút ngắn các quy trình dài và cấu hình các lệnh tùy chỉnh với các tùy chọn mà người dùng luôn sử dụng và khó nhớ.
Bạn có thể xác định các lệnh phù hợp với nhu cầu cụ thể của mình 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, tức là các hàm 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à một hàm 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 Shell
Bí danh shell là một phím tắt tùy chỉnh để tham chiếu đến một lệnh hoặc tập hợp các lệnh được thực thi có hoặc không có các tùy chọn tùy chỉnh. Những bí danh này là những tên thay thế, dễ nhớ cho các lệnh dài mà bạn cần thực hiện thường xuyên. Khi bạn nhập vào dòng lệnh, đầu tiên shell sẽ tìm kiếm những gì bạn đã viết trong danh sách bí danh của nó. Nếu tìm thấy kết quả trùng khớp, bí danh đó sẽ được thay thế bằng bí danh bằng văn bản tương ứng; sau khi hoàn thành, nó sẽ xem lại toàn bộ dòng lệnh kết quả và thực thi nó.
Rất có thể bạn đã sử dụng bí danh trên hệ thống Linux vì hầu hết các bản phân phối Linux đều thêm ít nhất một số bí danh phổ biến theo mặc định trong “.bashrc ” tệp của tài khoản người dùng.
Ngoài bí danh: Các hàm Shell
Các khối có mã tương tự nhưng không giống nhau không thể được thay thế bằng Bí danh. Chúng không thể xử lý lỗi cũng như trả về mã thoát tùy chỉnh, kiểm soát luồng hoặc sử dụng các biến. Nếu bạn cần thực hiện bất kỳ thao tác nào trong số này, đã đến lúc sử dụng các hàm shell.
Các hàm Shell là các khối mã có cấu trúc như các tập lệnh con hoàn chỉnh, được viết một lần và được gọi từ bất kỳ tập lệnh nào cần đến nó.
Cú pháp của bí danh:
Tạo bí danh trong bash rất đơn giản. Cú pháp như sau:
bí danh alias_name = ”command_to_run”
Để tạo bí danh bash mới trong phiên hiện tại
- Nhập “bí danh”
- Sau đó khai báo tên bí danh
- Theo sau là dấu bằng
- Và lệnh sẽ chạy khi bí danh được gọi.
Lệnh phải được đặt trong dấu ngoặc kép & không có khoảng cách xung quanh dấu bằng. Dấu cách ở đây sẽ phá vỡ lệnh. Mỗi bí danh phải được khai báo trên một dòng mới.
Hãy để chúng tôi làm rõ nó bằng ví dụ. Trên dòng lệnh Linux, một trong những lệnh được sử dụng nhiều nhất là “ls”. Chủ yếu lệnh “ls” được sử dụng với lệnh “la”Chuyển đổi sẽ liệt kê tất cả các tệp & thư mục có tệp ẩn ở định dạng danh sách dài. Bây giờ chúng ta sẽ tạo một bí danh bash đơn giản "ll”Sẽ là một lối tắt dẫn đếnls -la chỉ huy.
- Mở một cửa sổ đầu cuối
- Kiểu:
bí danh ll = "ls -la"
& nhấn đi vào
- Bây giờ trong bảng điều khiển, loại “ll" và hãy nhấn đi vào
- Đầu ra sẽ giống như bằng cách gõ ls -la.
Bí danh “ll” được xác định ở trên sẽ chỉ có sẵn trong phiên trình bao hiện tại. Nếu bạn đóng phiên hoặc một cửa sổ phiên mới được khởi tạo từ một thiết bị đầu cuối khác, bí danh “ll” được xác định ở trên sẽ không khả dụng.
Chúng ta sẽ thảo luận sau về cách làm cho bí danh này tồn tại lâu dài. Các ví dụ ở đây dành cho bash shell, nhưng tất cả các khái niệm và hầu hết các mã đều hợp lệ cho các shell khác.
Bí danh được xác định trước
Một số bí danh được xác định trước cho bạn. Để biết danh sách tất cả các bí danh được xác định trong hệ thống, chúng tôi sẽ sử dụng lệnh "bí danh" mà không có bất kỳ tham số nào:
bí danh
Đây là các bí danh trên máy thử nghiệm Ubuntu mà bài viết này đã nghiên cứu. Ngoài ra, bất kỳ bí danh nào được xác định tùy chỉnh, cũng sẽ hiển thị trong danh sách này.
Có một loạt các bí danh khác nhau cho lệnh ls và có một nhóm các bí danh cung cấp đầu ra màu cho họ lệnh grep, ví dụ: với bí danh được xác định như trên, bất cứ khi nào bạn nhập:
grep
Nó sẽ được hiểu 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 bí danh grep.
bí danh grep = 'grep --color = auto'
- Lệnh bí danh được sử dụng để xác định 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 nối tên của bí danh vớithâ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 dấu ngoặc kép duy nhất ‘.
- 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ỉ cần gọi lệnh grep với tùy chọn –color = auto.
Bí danh cảnh báo
Ở đầu danh sách, có một bí danh trông phức tạp được gọi làcảnh giác. Nhanh chóng sang một bên và để bạn biết nó làm gì, bí danh cảnh báo đượ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. Lệnh ngủ sẽ ngủ trong năm giây. Sau đó, bí danh cảnh báo 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 đỏ.
ngủ 5; cảnh giác
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 rằng sẽ không thành công:
Cam chịu thất bại; cảnh giác
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 lệnh bí danh.
Chúng tôi sẽ tạo một bút danh cho lệnh rõ ràng. Bí danh của chúng ta sẽ được gọi là cls và nó sẽ gọi lệnh rõ ràng.
Đị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 để đưa một số đầu ra vào cửa sổ đầu cuối và sau đó sử dụng cls bí danh mới của chúng tôi để xóa màn hình.
bí danh 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.
Để đặt Bí danh vĩnh viễn bằng cách sử dụng Tệp “.bashrc”
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ạygedittrì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 bí danh cảnh báo. Thứ hai là câu lệnh if. Nó dịch thành, "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. Đưa chúng vào bên dưới phần chứa bí danh ls.
Nếu bạn định tạo nhiều bí danh hoặc bạn chỉ thích ý tưởng đóng gói bí danh của mình trong tệp riê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 được tách ra khỏi tệp “.bashrc”.
Bí danh nên được đặt tên theo cách dễ nhớ. Nó cũng được khuyến khích để thêm một bình luận để tham khảo trong tương lai.
Lưu trữ bí danh trong tệp .bash_aliases
Tệp “.bash_aliases” không tồn tại theo mặc định, bạn sẽ phải tạo nó. Bạn có thể tạo tệp bằng lệnh này:
chạm vào .bash_aliases
Hãy chỉnh sửa tệp và thêm một vài bí danh cho tệp. Lệnh này sẽ mở tệp “.bash_aliases” trong trình chỉnh sửa gedit.
gedit .bash_aliases
Chúng tôi đã thêm ba bí danh. Đầu tiên là của chúng tôiclsbí danh mà chúng tôi đã sử dụng trước đó. Tiếp theo được gọi làh. và là cách gọi tắt của lệnh history.
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.
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 là trường hợp. 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 ta 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 có còn hoạt động tốt hay không.
Các lệnh chúng tôi đã sử dụng là:
gedit .bash_aliases
Để chỉnh sửa tệp “.bash_aliases”.
. .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_aliases”.
ftc
Điều này sẽ gọi là bí danh ftc.
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 bạn muốn Bash quên. Để làm cho Bash quên bí danh ftc của chúng tôi, hãy sử dụng unalias, ví dụ: trước đây đã sử dụng “ll" chỉ huy:
unalias ll
Bạn có thể sử 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 tùy chọn -a (tất cả):
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 # băm vào đầu mỗi dòng bí danh. Để 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ỏ.
Để tạm thời bỏ qua bí danh (giả sử chúng ta đặt bí danh ls thành ls -a), chúng ta có thể nhập:
\ ls
Kết quả là lệnh bình thường sẽ được gọi, không phải là phiên bản bí danh.
Trợ giúp cho lệnh Bí danh:
- –Tùy chọn trợ giúp: Nó hiển thị thông tin trợ giúp.
Cú pháp:
bí danh - trợ giúp
Các chức năng của Shell
Đôi khi, một bí danh có thể chấp nhận một hoặc nhiều đối số được yêu cầu, đó là khi các hàm bash được sử dụng.
Cú pháp
Tạo một hàm bash không khó lắm. Chúng có thể được khai báo ở bất kỳ một trong hai định dạng khác nhau sau:
function_name () {[các lệnh]}
hoặc là
chức năng function_name {[các lệnh]}
Chúng ta có thể nén biểu mẫu thứ hai này thành một dòng và phân tách các lệnh bằng dấu chấm phẩy. Dấu chấm phẩyphải cũng đến sau lệnh cuối cùng:
function_name () {command1; lệnh2; }
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”. Khởi chạy gedit và tải tệp “.bashrc” bằng lệnh sau:
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, sau đó di chuyển đến nơi bạn muốn phần mới và nhấn Ctrl + V để dán bản sao 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.
chạm vào .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 gọi lên. 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
lên 2
up sẽ gọi cd .. hai lần và sẽ di chuyển lên 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 () {
Chức năng từ 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ấy phiền khi nhập 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.
cấp độ = $ 1
Điều này tạo ra một biến được gọi làcấp độ 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. $ 1 có nghĩa là “tham số dòng lệnh đầu tiên”.
while ["$ levels" -gt "0"]; làm
Sau đó, chúng tôi nhập một vòng lặp mà sau đó sẽ dịch là “khi“giá trị”Trong số“cấp độ"Là số dương hoặc 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.
cấp độ = $ (($ cấp độ - 1))
Đặt các cấp thành giá trị mới, nhỏ hơn một giá trị hiện tại của nó.
Sau đó, chúng tôi quay trở lại đầu vòng lặp, so sánh giữa giá trị của các mức và 0 được thực hiện một lần nữa. Nếu “mức” lớn hơn 0, phần thân của vòng lặp sẽ được thực thi lại. Nếu nó không phải là số dương hoặc lớn hơn 0, vòng lặp đã kết thúc và chúng ta chuyển đến câu lệnh done, và chức năng kết thúc.
Tiết kiệm những thay đổi này và đóng lạigedit.
Chúng tôi sẽ đọc và thực hiện các lệnh trong “.bashrc”. Các lệnh này 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 hết để di chuyển trở 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 "kiểu" 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 loại trên của chúng tôiftcbí danh và chức năng của chúng tôi.
gõ ftc gõ lên
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. Sử dụng rộng rãi những thứ này có thể giúp thời gian của bạn thú vị hơn và ít phức tạp hơn.
Hãy nhớ cảnh giác với việc xác định lại các lệnh hiện có với hành vi có khả năng phá hoại.Ngay cả khi làm ngược lại và đặt biệt hiệu lệnh cho một biến thể an toàn hơn (ví dụ: luôn yêu cầu xác nhận trước khi xóa đệ quy) có thể quay lại cắn bạn lần đầu tiên khi bạn sử dụng một hệ thống mà không có nó khi bạn đã dựa vào nó . Để tìm các ứng cử viên có thể tốt để tạo bí danh, bạn có thể tìm kiếm trong lịch sử các lệnh thường dùng nhất của mình.