Lệnh shuf
trong Linux là công cụ giúp bạn xáo trộn ngẫu nhiên các dòng dữ liệu, rất hữu ích trong các tình huống xử lý dữ liệu linh hoạt hoặc cần tính ngẫu nhiên. Trong bài viết này, bạn sẽ tìm hiểu lệnh shuf
là gì, cú pháp chi tiết và cách sử dụng lệnh này qua 4 ví dụ phổ biến: xáo trộn nội dung file, danh sách phần tử, dải số và dữ liệu từ đầu vào chuẩn. Ngoài ra, bài viết cũng giới thiệu giải pháp lưu trữ tốc độ cao từ Vietnix – lựa chọn tối ưu cho các website cần hiệu suất ổn định.
Điểm chính cần nắm
- Lệnh shuf trong Linux là gì?: Giới thiệu khái quát về lệnh
shuf
, chức năng và ứng dụng chính trong việc xáo trộn dòng dữ liệu. - Cú pháp lệnh shuf trong Linux: Trình bày cấu trúc cú pháp chung của lệnh
shuf
và các tùy chọn thường dùng. - 4 ví dụ sử dụng lệnh shuf: Tổng hợp 4 cách dùng phổ biến của
shuf
để minh họa rõ ràng các trường hợp ứng dụng. - Vietnix – Giải pháp lưu trữ tốc độ cao và ổn định cho website của bạn: Giới thiệu dịch vụ hosting của Vietnix với hiệu suất cao, bảo mật tốt và hỗ trợ 24/7.
- FAQ: Giải đáp các câu hỏi thường gặp để giúp người đọc hiểu và sử dụng
shuf
hiệu quả hơn.
Lệnh shuf trong Linux là gì?
Lệnh shuf
trong Linux là một công cụ dùng để tạo ra một hoán vị ngẫu nhiên của các dòng đầu vào và in chúng ra đầu ra chuẩn (standard output). Lệnh này hoạt động tương tự như việc xáo bài, tức là các dòng dữ liệu được sắp xếp lại theo thứ tự ngẫu nhiên. shuf
có thể đọc dữ liệu từ một file, từ đầu vào chuẩn (stdin), hoặc từ danh sách các phần tử được truyền trực tiếp qua dòng lệnh.

Đây là một phần của GNU Coreutils, nhưng không thuộc chuẩn POSIX, nên có thể không có sẵn trên một số hệ thống UNIX không phải GNU. Lệnh này cũng hỗ trợ nhiều tùy chọn như -n
để giới hạn số dòng hiển thị, -i
để tạo dãy số ngẫu nhiên, hoặc -e
để xáo trộn danh sách phần tử cụ thể.
Cú pháp lệnh shuf trong Linux
Cú pháp cơ bản
shuf [OPTION]... [FILE]
shuf -e [OPTION]... [ARG...]
shuf -i LO-HI [OPTION]...
Trong đó:
[FILE]
: Tên file chứa dữ liệu cần xáo trộn. Nếu không chỉ định,shuf
sẽ đọc từ đầu vào chuẩn (stdin).-e [ARG...]
: Xáo trộn danh sách phần tử được truyền trực tiếp qua dòng lệnh.-i LO-HI
: Xáo trộn các số nguyên trong khoảng từLO
đếnHI
.
Tùy chọn thông dụng lệnh Linux
Tùy chọn | Ý nghĩa |
---|---|
-n N | Chỉ hiển thị N dòng kết quả sau khi xáo trộn |
-e | Xem các tham số sau tùy chọn là danh sách cần xáo trộn (không dùng file) |
-i LO-HI | Tạo danh sách số nguyên từ LO đến HI rồi xáo trộn |
--repeat | Cho phép lặp lại dòng (khi dùng với -n , có thể có dòng trùng lặp) |
--help | Hiển thị hướng dẫn sử dụng |
--version | Hiển thị phiên bản của lệnh shuf |
shuf
trong Linux4 ví dụ sử dụng lệnh shuf
Xáo trộn nội dung của file (File Shuffle)
shuf [tùy chọn] [file]
Khi lệnh shuf
được sử dụng mà không kèm theo tùy chọn -e
hoặc -i
, nó sẽ thực hiện việc xáo trộn nội dung của một file. Tên file là đối số cuối cùng, nếu không có thì shuf
sẽ đọc từ đầu vào chuẩn hoặc qua pipe.
Ví dụ: Giả sử bạn có file vietnix.txt
chứa danh sách các dịch vụ của Vietnix.
Hosting
VPS
Firewall
Backup
SSL
Domain
Chạy lệnh:
shuf vietnix.txt
Kết quả đầu ra sẽ là:
Backup
VPS
Domain
Firewall
SSL
Hosting

- Lấy ngẫu nhiên số dòng cụ thể từ file:
shuf -n 2 vietnix.txt
Kết quả có thể là:
Backup
SSL

- Kết hợp với lệnh
seq
thông qua pipe:
seq 1 5 | shuf
Lệnh seq
sẽ in ra các số từ 1 đến 5. shuf
nhận đầu vào này và xáo trộn lại:
4
3
2
5
1

Cách dùng này rất tiện khi bạn cần test tuần tự các ID máy chủ hoặc các port.
Xáo trộn danh sách phần tử (List Shuffle)
shuf -e [tùy chọn] [phần tử...]
Khi sử dụng tùy chọn -e
, lệnh shuf
sẽ xem các phần tử truyền vào là dữ liệu đầu vào để xáo trộn.
Ví dụ:
shuf -e Hosting VPS Firewall Backup SSL
Kết quả có thể là:
Hosting
Backup
SSL
VPS
Firewall

- Lấy ngẫu nhiên một phần tử từ danh sách dịch vụ của Vietnix:
shuf -e -n 1 Hosting VPS Firewall Backup SSL
Kết quả có thể là:
SSL
Phù hợp khi cần test ngẫu nhiên một dịch vụ trong hệ thống monitoring.

Xáo trộn dải số (Range Shuffle)
shuf -i LO-HI [tùy chọn]
Khi sử dụng tùy chọn -i
, lệnh shuf
sẽ tạo ra một dải số từ LO
đến HI
và xáo trộn chúng.
Ví dụ:
shuf -i 1001-1005
Kết quả có thể là:
1005
1002
1001
1004
1003
Cách này rất hữu ích khi bạn muốn kiểm thử ID user, port firewall hoặc số thứ tự máy chủ.

- Lấy ngẫu nhiên 2 port để kiểm tra mở tường lửa:
shuf -i 3000-4000 -n 2
Kết quả:
3354
3266

Xáo trộn dữ liệu từ đầu vào chuẩn (Standard Input)
shuf
Khi không truyền file hay đối số nào, lệnh shuf
sẽ đọc dữ liệu từ bàn phím cho đến khi bạn nhấn Ctrl + D
.
Ví dụ:
shuf
Sau đó nhập:
Vietnix Hosting
Vietnix VPS
Vietnix Firewall
<Ctrl + D>
Kết quả có thể là:
Vietnix VPS
Vietnix Hosting
Vietnix Firewall
Phù hợp khi bạn cần thử nhanh một tập hợp nhỏ dữ liệu trực tiếp trên terminal.

Vietnix – Giải pháp lưu trữ tốc độ cao và ổn định cho website của bạn
Vietnix cung cấp dịch vụ VPS và hosting tối ưu hiệu suất, giúp website vận hành nhanh chóng, ổn định và an toàn. Hệ thống máy chủ hiện đại đặt tại datacenter đạt chuẩn Tier III, kết hợp cùng công nghệ bảo mật tiên tiến và đội ngũ kỹ thuật giàu kinh nghiệm luôn sẵn sàng hỗ trợ 24/7, đảm bảo website hoạt động liên tục và hiệu quả. Dù bạn là cá nhân, doanh nghiệp nhỏ hay công ty lớn, Vietnix luôn có giải pháp phù hợp – từ hosting thông thường đến VPS hiệu năng cao, giúp bạn tiết kiệm thời gian và chi phí quản lý hạ tầng.
Thông tin liên hệ:
- Website: https://vietnix.vn/
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, TP HCM.
Câu hỏi thường gặp
shuf
có phải là lệnh chuẩn POSIX không?
Không. shuf
là một phần của GNU coreutils và không thuộc chuẩn POSIX.
shuf -e
hoạt động như thế nào?
Tùy chọn -e
cho phép nhập danh sách phần tử ngay trên dòng lệnh. Ví dụ: shuf -e A B C
.
Làm sao để xáo trộn dữ liệu từ đầu vào chuẩn (stdin)?
Gõ shuf
, sau đó nhập dòng, kết thúc bằng Ctrl+D
.
Có thể giới hạn shuf
chỉ lấy các dòng theo điều kiện cụ thể không (ví dụ: bắt đầu bằng chữ cái nào đó)?
Không trực tiếp, nhưng có thể kết hợp với grep
. Ví dụ: `grep “^A” file.txt
shuf
có hoạt động với Unicode/UTF-8 tốt không?
Có, shuf
xử lý UTF-8 tốt nếu dữ liệu đầu vào được mã hóa chính xác.
shuf
hoạt động như thế nào khi kết hợp với xargs
trong xử lý dòng?
Có thể dùng shuf
để chọn dòng, rồi dùng xargs
để xử lý. Ví dụ: `shuf file.txt
Có giới hạn số dòng tối đa khi dùng shuf
không?
Không rõ ràng, nhưng phụ thuộc vào bộ nhớ RAM và kích thước dữ liệu đầu vào.
Lời kết
Lệnh shuf
là công cụ nhỏ gọn nhưng mạnh mẽ, giúp bạn xử lý dữ liệu ngẫu nhiên một cách nhanh chóng và tiện lợi trong môi trường Linux. Nếu bạn có bất kỳ thắc mắc nào về cách sử dụng shuf
, cú pháp nâng cao hoặc cần ứng dụng vào bài toán thực tế, đừng ngần ngại để lại bình luận. Ngoài ra, nếu bạn đang tìm kiếm một dịch vụ hosting tốc độ cao và ổn định để vận hành hệ thống của mình, hãy tham khảo giải pháp từ Vietnix. Đội ngũ hỗ trợ kỹ thuật luôn sẵn sàng 24/7 để đồng hành cùng bạn.
Mọi người cũng xem: