Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

10 toán tử chuỗi hữu ích trong Linux với các ví dụ thực tế

Chuỗi các lệnh Linux có nghĩa là, kết hợp một số lệnh và làm cho chúng thực thi dựa trên hành vi của toán tử được sử dụng giữa chúng. Chuỗi các lệnh trong Linux, giống như bạn đang viết các tập lệnh shell ngắn tại chính shell và thực thi chúng trực tiếp từ thiết bị đầu cuối. Chuỗi làm cho nó có thể tự động hóa quy trình. Hơn nữa, một cỗ máy không có người giám sát có thể hoạt động một cách có hệ thống với sự trợ giúp của các nhà khai thác chuỗi.

10 toán tử chuỗi hữu ích trong Linux với các ví dụ thực tế

Đọc thêm: Cách sử dụng Awk và Biểu thức chính quy để lọc văn bản trong tệp

Bài viết này nhằm mục đích làm sáng tỏ các toán tử chuỗi lệnh được sử dụng thường xuyên , với các mô tả ngắn và các ví dụ tương ứng chắc chắn sẽ làm tăng năng suất của bạn và cho phép bạn viết các mã ngắn và có ý nghĩa bên cạnh việc giảm tải hệ thống.

1. Ký hiệu và toán tử (&)

Chức năng của ‘ & ‘Là làm cho lệnh chạy trong nền. Chỉ cần nhập lệnh theo sau với khoảng trắng và ‘ & ‘. Bạn có thể thực hiện nhiều lệnh trong nền, chỉ trong một lần.

Chạy một lệnh trong nền:

admin@wsxdn.com:~$ ping ­c5 www.tecmint.com &

Chạy đồng thời hai lệnh trong nền:

admin@wsxdn.com:/home/tecmint# apt-get update & apt-get upgrade &

2. Toán tử dấu chấm phẩy (;)

Toán tử dấu chấm phẩy giúp nó có thể chạy, một số lệnh trong một lần thực hiện và việc thực thi lệnh diễn ra tuần tự.

admin@wsxdn.com:/home/tecmint# apt-get update ; apt-get upgrade ; mkdir test

Đầu tiên, tổ hợp lệnh trên sẽ thực thi cập nhật hướng dẫn, sau đó nâng cấp hướng dẫn và cuối cùng sẽ tạo một ‘ kiểm tra Thư mục ‘trong thư mục làm việc hiện tại.

3. Toán tử VÀ (&&)

Nhà điều hành AND ( && ) sẽ chỉ thực thi lệnh thứ hai, nếu việc thực thi lệnh đầu tiên SUCCEEDS , tức là trạng thái thoát của lệnh đầu tiên là 0 . Lệnh này rất hữu ích trong việc kiểm tra trạng thái thực thi của lệnh cuối cùng.

Ví dụ:tôi muốn truy cập trang web tecmint.com bằng cách sử dụng lệnh liên kết, trong thiết bị đầu cuối nhưng trước đó, tôi cần kiểm tra xem máy chủ lưu trữ có đang hoạt động không hoặc không .

admin@wsxdn.com:/home/tecmint# ping -c3 www.tecmint.com && links www.tecmint.com

4. HOẶC Toán tử (||)

Nhà điều hành HOẶC ( || ) giống như một ‘ else Câu lệnh ‘trong lập trình. Toán tử trên chỉ cho phép bạn thực hiện lệnh thứ hai nếu việc thực thi lệnh đầu tiên không thành công, tức là trạng thái thoát của lệnh đầu tiên là ‘ 1 ‘.

Ví dụ:tôi muốn thực thi ‘ apt-get update ‘Từ tài khoản không phải root và nếu lệnh đầu tiên không thành công, thì ‘ liên kết www.tecmint.com thứ hai Lệnh ‘sẽ thực thi.

admin@wsxdn.com:~$ apt-get update || links tecmint.com

Trong lệnh trên, vì người dùng không được phép cập nhật hệ thống, có nghĩa là trạng thái thoát của lệnh đầu tiên là ‘1’ và do đó lệnh cuối cùng ‘ links tecmint.com ‘Được thực thi.

Điều gì sẽ xảy ra nếu lệnh đầu tiên được thực thi thành công, với trạng thái thoát ‘ 0 ‘? Rõ ràng! Lệnh thứ hai sẽ không thực thi.

admin@wsxdn.com:~$ mkdir test || links tecmint.com

Tại đây, người dùng tạo một thư mục ‘ test ‘Trong thư mục chính của anh ấy, mà người dùng được phép. Lệnh được thực thi thành công đưa ra trạng thái thoát ‘ 0 ‘Và do đó phần cuối cùng của lệnh không được thực thi.

5. KHÔNG phải nhà điều hành (!)

Nhà điều hành KHÔNG PHẢI (! ) giống như một ‘ ngoại trừ ' bản tường trình. Lệnh này sẽ thực hiện tất cả ngoại trừ điều kiện được cung cấp. Để hiểu điều này, hãy tạo một thư mục ‘ tecmint ‘Trong thư mục chính của bạn và‘ cd ‘Với nó.

admin@wsxdn.com:~$ mkdir tecmint 
admin@wsxdn.com:~$ cd tecmint

Tiếp theo, tạo một số loại tệp trong thư mục ‘ tecmint ‘.

admin@wsxdn.com:~/tecmint$ touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html

Hãy xem chúng tôi đã tạo tất cả các tệp mới trong thư mục ‘ tecmint ‘.

admin@wsxdn.com:~/tecmint$ ls 

a.doc  a.html  a.pdf  a.xml  b.doc  b.html  b.pdf  b.xml

Bây giờ, hãy xóa tất cả các tệp ngoại trừ ‘ html ‘Gửi tất cả cùng một lúc, theo cách thông minh.

admin@wsxdn.com:~/tecmint$ rm -r !(*.html)

Chỉ để xác minh, thực hiện lần cuối. Liệt kê tất cả các tệp có sẵn bằng lệnh ls.

admin@wsxdn.com:~/tecmint$ ls 

a.html  b.html

6. Toán tử AND - OR (&&- ||)

Toán tử trên thực sự là sự kết hợp của ‘ AND ‘Và‘ HOẶC ' Nhà điều hành. Nó giống như một ‘ if-else ‘Tuyên bố.

Ví dụ:hãy thực hiện ping tới tecmint.com , nếu thành công lặp lại ‘ Đã xác minh ‘Else echo‘ Host Down ‘.

admin@wsxdn.com:~/tecmint$ ping -c3 www.tecmint.com && echo "Verified" || echo "Host Down"
Đầu ra mẫu
PING www.tecmint.com (212.71.234.61) 56(84) bytes of data. 
64 bytes from www.tecmint.com (212.71.234.61): icmp_req=1 ttl=55 time=216 ms 
64 bytes from www.tecmint.com (212.71.234.61): icmp_req=2 ttl=55 time=224 ms 
64 bytes from www.tecmint.com (212.71.234.61): icmp_req=3 ttl=55 time=226 ms 

--- www.tecmint.com ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 2001ms 
rtt min/avg/max/mdev = 216.960/222.789/226.423/4.199 ms 
Verified

Bây giờ, hãy ngắt kết nối internet của bạn và thử lại lệnh tương tự.

admin@wsxdn.com:~/tecmint$ ping -c3 www.tecmint.com && echo "verified" || echo "Host Down"
Đầu ra mẫu
ping: unknown host www.tecmint.com 
Host Down

7. Nhà điều hành PIPE (|)

PIPE này toán tử rất hữu ích khi đầu ra của lệnh đầu tiên hoạt động như một đầu vào cho lệnh thứ hai. Ví dụ:chuyển đầu ra của ‘ ls -l ‘Đến‘ ít hơn ‘Và xem kết quả đầu ra của lệnh.

admin@wsxdn.com:~$ ls -l | less

8. Toán tử Kết hợp Lệnh {}

Kết hợp hai hoặc nhiều lệnh, lệnh thứ hai phụ thuộc vào việc thực hiện lệnh đầu tiên.

Ví dụ:kiểm tra xem thư mục ‘ bin ‘Có sẵn hay không và xuất đầu ra tương ứng.

admin@wsxdn.com:~$ [ -d bin ] || { echo Directory does not exist, creating directory now.; mkdir bin; } && echo Directory exists.

9. Toán tử ưu tiên ()

Toán tử làm cho nó có thể thực hiện lệnh theo thứ tự ưu tiên.

Command_x1 &&Command_x2 || Command_x3 && Command_x4.

Trong lệnh giả ở trên, điều gì sẽ xảy ra nếu Command_x1 không thành công? Cả Command_x2 đều không , Command_x3 , Command_x4 sẽ được thực thi, vì vậy chúng tôi sử dụng Toán tử ưu tiên , như:

(Command_x1 &&Command_x2) || (Command_x3 && Command_x4)

Trong lệnh giả ở trên, nếu Command_x1 không thành công, Command_x2 cũng không thành công nhưng Vẫn Command_x3 Command_x4 thực thi phụ thuộc vào trạng thái thoát của Command_x3 .

10. Toán tử kết hợp (\)

Toán tử kết hợp ( \ ) như tên chỉ định, được sử dụng để nối các lệnh lớn trên một số dòng trong shell. Ví dụ:Lệnh dưới đây sẽ mở tệp văn bản test (1) .txt .

admin@wsxdn.com:~/Downloads$ nano test\(1\).txt

Đó là tất cả cho bây giờ. Tôi sẽ sớm đưa ra một bài báo thú vị khác. Đến lúc đó Hãy theo dõi, khỏe mạnh và kết nối với Tecmint . Đừng quên đưa ra phản hồi có giá trị của bạn trong phần bình luận của chúng tôi.