Bash cho phép tạo số ngẫu nhiên dễ dàng — hữu ích cho script, game bàn (D&D), kiểm tra bảo mật cơ bản, hoặc sinh mật mã. Dưới đây là các phương pháp phổ biến, đã được kiểm tra.
Mở Terminal
Ctrl+Alt+T hoặc Super+T, hoặc tìm "Terminal" trong menu. Cũng có thể dùng virtual console: Ctrl+Alt+F1..F6.
Phương Pháp 1: Lấy Byte Ngẫu Nhiên Từ /dev/urandom (1–256)
od -An -N1 -tu1 /dev/urandom
-An: không in địa chỉ offset.-N1: đọc 1 byte.-tu1: hiển thị unsigned 1-byte integer.
Khuyên dùng /dev/urandom thay vì /dev/random — tránh cạn kiệt entropy pool ảnh hưởng tiến trình khác.
Gán vào biến:
ranNum=$(($(od -An -N1 -tu1 /dev/urandom)))
Biến ranNum giờ chứa số 1–256. Thay tên biến tùy ý.
Phương Pháp 2: Biến $RANDOM Nội Tế Bash (1–N)
In ra màn hình (1–40):
echo $[RANDOM%40+1]
Gán biến (1–10):
ranNum=$[RANDOM%10+1]
- Thay
10bằng giới hạn trên mong muốn (inclusive). - Không dùng toán tử
-1kiểu C/C++ — sẽ cho kết quả sai. - Giới hạn thực tế phụ thuộc kiến trúc máy (thường 32767).
Phương Pháp 3: Chọn Bit Ngẫu Nhiên (0 hoặc 1)
Cách 1 (từ /dev/urandom):
ranNum=$(($(od -An -N1 -i /dev/urandom) % 2))
Cách 2 (từ kernel UUID — hơi "ngẫu nhiên" hơn):
ranNum=$((0x$(cut -c1-1 /proc/sys/kernel/random/uuid) % 2))
Cả hai chỉ trả về 0 hoặc 1 — phù hợp logic yes/no, boolean.
Phương Pháp 4: Tạo Script Tái Sử Dụng
cd ~/.local/bin(tạo thư mục nếu chưa có, thêm vào PATH).- Tạo file:
nano random(hoặcvi random). - Nội dung (ví dụ trả về 0/1):
#!/bin/bash
ranNum=$(($RANDOM % 2))
echo $ranNum
- Lưu (Ctrl+O, Enter), thoát (Ctrl+X).
- Cấp quyền thực thi:
chmod +x random.
Bây giờ gõ random bất cứ lúc nào để lấy số ngẫu nhiên.
Để thay đổi phạm vi (ví dụ 1–50), sửa dòng giữa:
ranNum=$[RANDOM%50+1]
Hoặc dùng bất kỳ phương pháp nào ở trên.
Lưu Ý Bảo Mật
Các phương pháp này không an toàn mật mã học (non-cryptographic). Đừng dùng cho khóa mã hóa, token bảo mật quan trọng. Dùng /dev/urandom hoặc công cụ chuyên dụng (openssl, gpg) cho mục đích bảo mật thực sự.