Một trong những công cụ mạnh mẽ cho shell là dấu pipe (|). Dấu pipe lấy output từ câu lệnh này và dùng nó làm input cho câu lệnh kế tiếp. Trong một câu lệnh chúng ta có thể dùng bao nhiêu dấu pipes tuỳ thích, cho tới khi đạt được output bạn muốn xuất ra
Một trong những công dụng chủ yếu là lọc. Chúng ta dùng dấu pipe để lọc nội dung của một files lớn, để tìm một chuỗi hoặc một từ cụ thể (Kết hợp với công cụ grep và sort). Hãy quan sát ví dụ sau
cmd1 | cmd2
Cả cmd1 và cmd2 đều là công cụ dòng lệnh và có in kết quả ra màn hình, nhưng khi thêm dấu pipes vào thì thông tin của cmd1 không được in ra màn hình mà được chuyển thành input của cmd2
Lưu ý: Đừng nhầm dấu pipe (|) với dấu File Redirection (>) hay (<). Khi dùng dấu (>) hay (<) kết quả được in vào một files thay vì dùng làm input cho câu lệnh sau
Chúng ta cùng xem một số ví dụ cụ thể dưới đây
Mục lục
Kiểm tra network interface cards (NICs)
- Kiểm tra các NICs có IP bắt đầu bằng 192
ifconfig | grep 192 inet 192.168.1.96 netmask 255.255.255.0 broadcast 192.168.1.255
- Kiểm tra các NICs đang UP
ifconfig | grep UP enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
Kiểm tra phân quyền
Maybe you want to find out how many directories under /etc are writeable by root:
Bạn cần tìm có bao nhiêu thư mục con của thư mục etc mà root được quyền write. Chúng ta sẽ kết hợp giữa lệnh ls, lệnh grep để lọc các chuỗi có giá trị drwx và lệnh wc (Word Count) để đếm
sudo ls -lR | grep drwx | wc -l 285
Xác định các tiến trình
Để liệt kê hết các IDs (PIDs) của tất cả những tiến trình liên quan tới systemd
ps -ef | grep systemd | awk '{ print $2 }' 1 471 500 608 631 7449 7494 17242
Câu lệnh awk $2 để lọc thông tin ở cột thứ 2 của output. Ví dụ như một output đầy đủ dưới đây thì nó sẽ lọc ra cột PID là 17242
khess 17242 7505 0 09:40 pts/0 00:00:00 grep --color=auto systemd
Sắp xếp kết quả
Bạn có thể dùng kết hợp giữa lệnh cat và lệnh sort (Đã được nhắc tới trong bài: Hướng dẫn sử dụng câu lệnh sort để xử lí text trên Linux )
cat contacts.txt Bob Jones Leslie Smith Dana David Susan Gee Leonard Schmidt Linda Gray Terry Jones Colin Doe Jenny Case
Sắp xếp lại file text
cat contacts.txt | sort Bob Jones Colin Doe Dana David Jenny Case Leonard Schmidt Leslie Smith Linda Gray Susan Gee Terry Jones
Đảo ngược kết quả sắp xếp
cat contacts.txt | sort -r Terry Jones Susan Gee Linda Gray Leslie Smith Leonard Schmidt Jenny Case Dana David Colin Doe Bob Jones
Sắp xếp các text ở 2 cột
cat contacts.txt | sort -k2 Jenny Case Dana David Colin Doe Susan Gee Linda Gray Bob Jones Terry Jones Leonard Schmidt Leslie Smith
Bạn cũng có thể dùng kèm với uniq để lọc các line bị trùng
cat contacts.txt | sort -k2 | uniq > contact_list.txt
Giải pháp
Cách Phòng Chống DDoS Cho Website, VPS, và Server Hiệu Quả
Các cuộc tấn công DDoS (Distributed Denial of Service) là một mối đe dọa lớn [...]
Chưa được phân loại portal portal cloudzone Về Portal
Mã đăng nhập Portal Cloudzone là gì? 3 cách lấy mã đăng nhập
Ngày nay, khi công nghệ số phát triển mạnh mẽ, việc bảo mật thông tin [...]
Cloud hosting Blog
So sánh Cloud Hosting cPanel, DirectAdmin và Plesk
Khi lựa chọn dịch vụ Cloud Hosting để lưu trữ website hoặc ứng dụng, một [...]
Cloud VPS
[2024] Kinh Nghiệm Chọn VPS Treo Game Không Lo Gián Đoạn
Với sự phát triển nhanh chóng của các trò chơi trực tuyến, việc duy trì [...]
Blog
Tuyển Đại lý dịch vụ Cloud – Chiết khấu đến 35%
Cloudzone tuyển đại lý dịch vụ Cloud, Data Center với lợi nhuận không giới hạn, [...]
Blog Giải pháp
Mã Độc Là Gì? Cách Phòng Chống Mã Độc Hiệu Quả Cho Máy Chủ 2024
Trong thế giới kỹ thuật số ngày nay, bảo mật máy chủ là một yếu [...]