Lệnh xargs trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh xargs mạnh mẽ trong Linux. Lệnh xargs cho phép bạn thực thi các lệnh với các tham số được truyền từ standard input, cho phép bạn tạo ra các quy trình làm việc hiệu quả và linh hoạt. Bạn sẽ bắt đầu bằng cách hiểu các kiến thức cơ bản về xargs, chẳng hạn như cách sử dụng nó để in danh sách tên và tạo thư mục dựa trên danh sách đó. Sau đó, bạn sẽ khám phá các trường hợp sử dụng nâng cao hơn, chẳng hạn như thực thi lệnh curl trên danh sách các URL và kết hợp xargs với các lệnh Linux khác để có các thao tác mạnh mẽ hơn nữa. Lab này cung cấp các ví dụ thực tế và hướng dẫn từng bước để giúp bạn làm chủ lệnh xargs và nâng cao kỹ năng command-line Linux của bạn.

Hiểu các kiến thức cơ bản về lệnh xargs

Trong bước này, bạn sẽ học các kiến thức cơ bản về lệnh xargs trong Linux. Lệnh xargs là một công cụ mạnh mẽ cho phép bạn thực thi các lệnh với các tham số được truyền từ standard input.

Đầu tiên, hãy tạo một file text với một danh sách tên:

echo "Alice Bob Charlie David" > names.txt

Bây giờ, hãy sử dụng xargs để in từng tên từ file:

cat names.txt | xargs echo

Ví dụ output:

Alice Bob Charlie David

Lệnh xargs lấy input từ lệnh trước đó (trong trường hợp này, cat names.txt) và truyền nó như là các tham số cho lệnh echo.

Tiếp theo, hãy tạo một thư mục cho mỗi tên trong file:

cat names.txt | xargs mkdir

Bây giờ, hãy liệt kê nội dung của thư mục hiện tại để xác minh các thư mục đã được tạo:

ls

Ví dụ output:

Alice  Bob  Charlie  David  names.txt

Trong ví dụ này, xargs lấy input từ cat names.txt và truyền mỗi tên như một tham số cho lệnh mkdir, tạo một thư mục cho mỗi tên.

Lệnh xargs rất linh hoạt và có thể được kết hợp với nhiều lệnh Linux khác để tạo ra các quy trình làm việc mạnh mẽ. Trong các bước tiếp theo, bạn sẽ khám phá các trường hợp sử dụng nâng cao hơn của xargs.

Sử dụng xargs để thực thi các lệnh với tham số

Trong bước này, bạn sẽ học cách sử dụng xargs để thực thi các lệnh với các tham số được truyền từ standard input.

Hãy bắt đầu bằng cách tạo một file với danh sách các URL:

echo "https://www.example.com https://www.google.com https://www.github.com" > urls.txt

Bây giờ, chúng ta có thể sử dụng xargs để thực thi lệnh curl trên mỗi URL:

cat urls.txt | xargs curl -s -o /dev/null -w '%{url_effective} -> %{http_code}\n'

Ví dụ output:

https://www.example.com -> 200
https://www.google.com -> 200
https://www.github.com -> 200

Trong ví dụ này, xargs lấy input từ cat urls.txt và truyền mỗi URL như một tham số cho lệnh curl. Tùy chọn -s ngăn chặn output, -o /dev/null chuyển hướng output đến thiết bị null, và -w '%{url_effective} -> %{http_code}\n' in URL hiệu quả và HTTP status code.

Tiếp theo, hãy sử dụng xargs để xóa các thư mục chúng ta đã tạo ở bước trước:

ls | grep -E 'Alice|Bob|Charlie|David' | xargs rm -rf

Ví dụ output:

Trong ví dụ này, ls liệt kê tất cả các thư mục trong thư mục hiện tại, grep -E 'Alice|Bob|Charlie|David' lọc output để chỉ bao gồm các thư mục chúng ta đã tạo và xargs rm -rf xóa từng thư mục.

Lệnh xargs là một công cụ linh hoạt có thể được kết hợp với nhiều lệnh Linux khác để tạo ra các quy trình làm việc mạnh mẽ. Trong bước tiếp theo, bạn sẽ khám phá các trường hợp sử dụng nâng cao hơn của xargs.

Kết hợp xargs với các lệnh Linux khác cho quy trình làm việc mạnh mẽ

Trong bước cuối cùng này, bạn sẽ học cách kết hợp lệnh xargs với các lệnh Linux khác để tạo ra các quy trình làm việc mạnh mẽ.

Hãy bắt đầu bằng cách tạo một danh sách các file trong thư mục hiện tại:

ls > files.txt

Bây giờ, chúng ta có thể sử dụng xargs để tính toán MD5 checksum của mỗi file:

cat files.txt | xargs md5sum

Ví dụ output:

d41d8cd98f00b204e9800998ecf8427e  files.txt
e10adc3949ba59abbe56e057f20f883e  names.txt
e10adc3949ba59abbe56e057f20f883e  urls.txt

Trong ví dụ này, xargs lấy input từ cat files.txt và truyền mỗi tên file như một tham số cho lệnh md5sum.

Tiếp theo, hãy sử dụng xargs để tìm kiếm một chuỗi cụ thể trong các file:

cat files.txt | xargs grep -l "example"

Ví dụ output:

urls.txt

Trong ví dụ này, xargs lấy input từ cat files.txt và truyền mỗi tên file như một tham số cho lệnh grep -l "example", lệnh này tìm kiếm chuỗi "example" trong mỗi file và in tên file nếu tìm thấy kết quả phù hợp.

Cuối cùng, hãy sử dụng xargs để tạo bản sao lưu của các file:

cat files.txt | xargs -I {} cp {} backups/{}

Ví dụ output:

Trong ví dụ này, xargs -I {} cho phép chúng ta sử dụng placeholder {} để đại diện cho input từ cat files.txt. Lệnh cp {} backups/{} sao chép mỗi file vào thư mục backups/.

Lệnh xargs là một công cụ mạnh mẽ có thể được kết hợp với nhiều lệnh Linux khác để tạo ra các quy trình làm việc hiệu quả và linh hoạt. Bằng cách làm chủ việc sử dụng xargs, bạn có thể hợp lý hóa các tác vụ hàng ngày và tăng năng suất của bạn với tư cách là một người dùng Linux.

Tóm tắt

Trong lab này, bạn đã học những điều cơ bản về lệnh xargs trong Linux, cho phép bạn thực thi các lệnh với các đối số được truyền từ standard input. Bạn đã tạo một file text có danh sách tên, sử dụng xargs để in từng tên và tạo các thư mục cho mỗi tên. Bạn cũng đã học cách sử dụng xargs để thực thi lệnh curl trên danh sách các URL, triệt tiêu output và hiển thị URL hiệu quả và HTTP status code. Các ví dụ này chứng minh tính linh hoạt của xargs và cách nó có thể được kết hợp với các lệnh Linux khác để tạo ra các quy trình làm việc mạnh mẽ.

400+ câu lệnh phổ biến trong Linux