Cách đặt Biến bash thành Số ngẫu nhiên

Bạn có thể dễ dàng tạo ra một số ngẫu nhiên tại dấu nhắc bash, mà bạn có thể sử dụng để thiết lập số được cho là một biến. Điều này rất hữu ích cho mọi thứ từ việc viết một số loại tập lệnh nhất định để chạy các cuộc phiêu lưu nhập vai trên bàn. Cho dù bạn có thể viết một chiến dịch D & D hay viết một tiện ích bằng ngôn ngữ bash mạnh mẽ, bạn thường có thể lấy đi một dòng mã. Đây cũng là một công cụ rất hữu ích khi cố gắng tạo ra một số kiểm tra bảo mật nhất định, nhưng bạn sẽ muốn nhớ rằng các trình cracker tốt có thể phá vỡ các trình tạo số đơn giản này. Chúng vẫn hữu ích khi tạo một số loại mật khẩu và mã nhất định, điều này có thể giúp giữ mọi thứ an toàn.

Có một vài cách khác nhau để thực hiện việc này và không phải mọi kỹ thuật đều phù hợp với mọi tình huống, vì vậy chúng tôi đã cố gắng hết sức để xem xét từng cách và thử nghiệm nó để đảm bảo nó hoạt động. Bạn sẽ cần phải làm việc từ một thiết bị đầu cuối cho điều này, do đó, hoặc sử dụng Ctrl + Alt + T hoặc Super (Windows) + T để mở một thiết bị đầu cuối đồ họa, bắt đầu bằng cách gõ thiết bị đầu cuối trong Dash, chọn nó từ ứng dụng hoặc Whisker và các menu System Tools hoặc đi đến một thiết bị đầu cuối ảo một cách nghiêm túc bằng cách sử dụng Ctrl, Alt và một phím giữa F1 và F6.

Phương pháp 1: Chọn một Byte ngẫu nhiên đầy đủ

Bạn có thể tạo một số ngẫu nhiên từ 1 đến 256 bằng cách chạy lệnh sau trực tiếp từ dấu nhắc bash:

od -An -N1 -tu1 / dev / urandom

Đôi khi bạn có thể thấy lệnh này được tham chiếu đến / dev / random thay vì / dev / urandom, có thể bạn sẽ không muốn chạy theo cách này. Điều này vô tình có thể cướp các chương trình khác khỏi việc có thể sử dụng trình tạo hạt giống ngẫu nhiên trong khi bạn sử dụng nó. Khi bạn đã chạy chương trình và nhận được một số, bạn có thể chắc chắn rằng nó sẽ hoạt động theo cách này:

ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom))))

Điều này sẽ thiết lập biến ranNum thành một số từ 1 đến 256, được chọn tại thời điểm bạn chạy nó. Bạn có thể chạy nó từ dòng lệnh hoặc từ bên trong của một kịch bản và nó sẽ làm việc một trong hai cách. Hãy nhớ rằng bạn có thể thay thế ranNum bằng bất kỳ tên biến hợp lệ nào.

Cách 2: Đặt biến thành số ngẫu nhiên giữa 1 và bất kỳ giá trị nào

Bạn có thể chạy echo $ [RANDOM% 40 + 1] từ dòng lệnh để gửi một số ngẫu nhiên từ 1 đến 40 thẳng tới đầu ra tiêu chuẩn, nhưng bạn cũng có thể thay thế 40 trong lệnh bằng hầu như bất kỳ số nào. Cuối cùng, kiến ​​trúc của máy chủ của bạn sẽ hết các chữ số hoặc có thể là bash, nhưng chắc chắn bạn cần một số lượng lớn như vậy.

Giả sử bạn muốn tạo một số ngẫu nhiên từ 1 đến 10 cho cấu hình biến của bạn. Bạn có thể chạy:

ranNum = $ [RANDOM% 10 + 1]

Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây

Hãy nhớ rằng bạn có thể thay thế 10 bằng bất kỳ giá trị cao hơn nào bạn muốn. Giá trị này được bao gồm, nghĩa là 10 là một số được trả về hợp lệ. Nếu bạn muốn giảm nó bằng một, sau đó chỉ cần làm cho giá trị 9 thay vì sử dụng C hoặc C ++ phong cách toán học -1. Đây là không cần thiết khi thiết lập một biến bằng cách sử dụng phương pháp này, và họ sẽ thực sự tạo ra kết quả bất ngờ bằng cách thêm hoặc trừ các chữ số.

Phương pháp 3: Chọn một bit ngẫu nhiên đơn

Nếu bạn cần đặt biến thành một bit ngẫu nhiên bằng 0 hoặc 0, thì bạn có thể sửa đổi mã trước đó như sau:

ranNum = $ (($ (od -An -N1 -i / dev / urandom)% 2))

Mã này sẽ thiết lập ranNum thành 1 hoặc 0 tùy thuộc vào việc các số mà nó lấy mẫu từ tệp / dev / urandom thậm chí là lẻ hay lẻ. Điều này có thể hữu ích nếu bạn cần thiết lập một phương trình có hoặc không có đơn giản cho một hoặc một trạng thái khác.

Nếu điều này là không đủ ngẫu nhiên cho những gì bạn đang làm việc trên, sau đó bạn có thể nhận được một số ngẫu nhiên hơn một chút bằng cách thực hiện cuộc gọi đến thư mục / proc / sys / kernel / random với:

ranNum = $ ((0x $ (cắt -1-1 / proc / sys / kernel / ngẫu nhiên / uuid)% 2))

Một lần nữa, mặc dù, điều này sẽ chỉ đặt biến thành 1 hoặc 0, điều này hoàn hảo cho logic nhị phân nhưng không hữu ích cho thời gian khi bạn có thể cần số dài hơn. Tuy nhiên, bạn có thể sử dụng bất kỳ dòng nào trong các dòng này trong tập lệnh bash nếu bạn có nhu cầu làm như vậy. Tùy chọn thứ hai này có thể thực sự tốt hơn cho các tình huống mà người đầu tiên không hoạt động tốt

Phương pháp 4: Viết kịch bản bash để trả về số ngẫu nhiên

Nếu bạn muốn có một công cụ hữu ích để tạo ra một số ngẫu nhiên bất cứ lúc nào, sau đó bạn có thể tạo một kịch bản dòng lệnh để làm như vậy. Điều này không có gì khác hơn so với ngôn ngữ chuẩn bash hiện đại nhất mà Linux nhắc đến, vì vậy khá nhiều bất kỳ bản phân phối Linux hiện đại nào và khá nhiều hệ điều hành dựa trên BSD nên xử lý điều này tốt. Bạn có thể muốn sử dụng cd ~ / .local / bin trước khi tiếp tục bất kỳ để đảm bảo rằng bạn sẽ có kịch bản của bạn ở một nơi bạn có thể thực thi nó từ bất cứ đâu.

Loại nano ngẫu nhiên hoặc vi ngẫu nhiên để bắt đầu, mặc dù bạn có thể sử dụng một tên khác cho kịch bản của bạn nếu bạn muốn. Bạn cũng có thể sử dụng một trình soạn thảo văn bản khác nếu bạn muốn. Giả sử bạn muốn tạo một giá trị trả về 1 hoặc 0 khi nhập vào dòng lệnh. Nhập thông tin sau và sau đó nhấn Ctrl + O để lưu nó nếu bạn đang sử dụng nano:

#! / bin / bash ranNum = $ (($ RANDOM% 2)) echo $ ranNum

Gõ Ctrl + X để thoát khỏi trình soạn thảo văn bản và một lần trở lại dòng lệnh sử dụng chmod + x ngẫu nhiên để làm cho tập lệnh của bạn có thể sử dụng được. Bạn có thể sử dụng ranNum = $ [RANDOM% 10 + 1], ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom))) hoặc bất kỳ dòng nào khác thay cho ranNum = $ (($ RANDOM% 2)) để bạn có thể kiểm soát chính xác loại số bạn muốn quay lại. Giả sử bạn muốn chọn một số từ 1 đến 50 thường xuyên. Thay đổi văn bản của tập lệnh bash thành:

#! / bin / bash ranNum = $ [RANDOM% 50 + 1] echo $ ranNum

Bây giờ bạn có thể dễ dàng chạy nó từ dòng lệnh bằng cách gõ ngẫu nhiên bất cứ khi nào bạn muốn tạo một số ngẫu nhiên.

Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây

Facebook Twitter Google Plus Pinterest