คุณสามารถสร้างตัวเลขสุ่มได้อย่างง่ายดายที่ bash prompt ซึ่งคุณสามารถใช้ตั้งค่าตัวเลขดังกล่าวเป็นตัวแปรได้ สิ่งนี้มีประโยชน์สำหรับทุกสิ่งตั้งแต่การเขียนสคริปต์บางประเภทไปจนถึงการดำเนินการผจญภัยสวมบทบาทบนโต๊ะ ไม่ว่าคุณจะเขียนแคมเปญ D&D หรือเขียนยูทิลิตี้ในภาษา bash ที่ทรงพลัง คุณก็มักจะใช้โค้ดเพียงบรรทัดเดียว นี่เป็นเครื่องมือที่มีประโยชน์มากเมื่อพยายามสร้างการตรวจสอบความปลอดภัยบางอย่างล่วงหน้า แต่คุณจะต้องจำไว้ว่าแครกเกอร์ที่ดีสามารถหลีกเลี่ยงตัวสร้างตัวเลขง่ายๆ เหล่านี้ได้ ยังคงมีประโยชน์สำหรับการสร้างรหัสผ่านและรหัสบางประเภท ซึ่งอาจช่วยรักษาสิ่งต่าง ๆ ให้ปลอดภัยต่อไปได้
มีหลายวิธีในการบรรลุเป้าหมายนี้ และไม่ใช่ว่าทุกเทคนิคจะเหมาะกับทุกสถานการณ์ ดังนั้นเราจึงพยายามอย่างเต็มที่เพื่อดูแต่ละวิธีและทดสอบเพื่อให้แน่ใจว่าได้ผล คุณจะต้องทำงานจากเทอร์มินัลเพื่อทำสิ่งนี้ ดังนั้นให้ใช้ Ctrl+Alt+T หรือ Super (Windows)+T เพื่อเปิดเทอร์มินัลแบบกราฟิก เริ่มต้นด้วยการพิมพ์เทอร์มินัลใน Dash เลือกจากเมนูแอปพลิเคชันหรือ Whisker และเครื่องมือระบบ หรือไปที่เทอร์มินัลเสมือนอย่างจริงจังโดยใช้ Ctrl, Alt และปุ่มระหว่าง F1 และ F6
วิธีที่ 1:การเลือกไบต์แบบสุ่มทั้งหมด
คุณสามารถสร้างตัวเลขสุ่มได้ระหว่าง 1 ถึง 256 โดยการรันคำสั่งต่อไปนี้โดยตรงจาก bash prompt:
od -An -N1 -tu1 /dev/urandom ป>
ป>
แม้ว่าบางครั้งคุณอาจเห็นคำสั่งนี้อ้างอิงถึง /dev/random แทนที่จะเป็น /dev/urandom แต่คุณอาจไม่ต้องการเรียกใช้ด้วยวิธีนี้ สิ่งนี้สามารถปล้นโปรแกรมอื่น ๆ โดยไม่ตั้งใจจากการใช้เครื่องกำเนิดเมล็ดสุ่มระหว่างที่คุณใช้งาน เมื่อคุณรันโปรแกรมและได้รับตัวเลขแล้ว คุณสามารถมั่นใจได้ว่ามันจะทำงานในลักษณะนี้เช่นกัน:
ranNum=$(($(od -An -N1 -tu1 /dev/urandom))) ป>
ป>
สิ่งนี้จะตั้งค่าตัวแปร ranNum ให้เป็นตัวเลขระหว่าง 1 ถึง 256 ที่เลือกเมื่อคุณรัน คุณสามารถเรียกใช้จากบรรทัดคำสั่งหรือจากภายในสคริปต์ได้ และควรทำงานด้วยวิธีใดวิธีหนึ่ง โปรดทราบว่าคุณสามารถแทนที่ ranNum ด้วยชื่อตัวแปรที่ถูกต้องได้
วิธีที่ 2:การตั้งค่าตัวแปรให้เป็นตัวเลขสุ่มระหว่าง 1 ถึงอะไรก็ได้
คุณสามารถเรียกใช้ echo $[RANDOM%40+1] จากบรรทัดคำสั่งเพื่อส่งตัวเลขสุ่มระหว่าง 1 ถึง 40 ไปยังเอาต์พุตมาตรฐานโดยตรง แต่คุณสามารถแทนที่ 40 ในคำสั่งด้วยตัวเลขใดก็ได้ ในที่สุดสถาปัตยกรรมของเครื่องโฮสต์ของคุณจะหมดตัวเลขหรือบางทีอาจจะทุบตี แต่ก็เป็นที่น่าสงสัยว่าคุณจะต้องใช้ตัวเลขที่สูงเช่นนี้ต่อไป
สมมติว่าคุณต้องการสร้างตัวเลขสุ่มระหว่าง 1 ถึง 10 สำหรับการกำหนดค่าตัวแปรของคุณ คุณสามารถเรียกใช้:
ranNum=$[สุ่ม%10+1] ป>
ป>
โปรดทราบว่าคุณสามารถแทนที่ 10 ด้วยค่าสูงสุดใดก็ได้ที่คุณต้องการ ค่านี้รวมอยู่ด้วย ซึ่งหมายความว่า 10 เป็นตัวเลขที่ส่งคืนที่ถูกต้อง หากคุณต้องการลดมันลงหนึ่ง ให้สร้างค่า 9 แทนการใช้คณิตศาสตร์สไตล์ C หรือ C++ -1 สิ่งเหล่านี้ไม่จำเป็นเมื่อตั้งค่าตัวแปรโดยใช้วิธีนี้ และจริงๆ แล้วพวกมันจะสร้างผลลัพธ์ที่ไม่คาดคิดด้วยการเพิ่มหรือลบตัวเลข
วิธีที่ 3:การเลือกบิตสุ่มเดี่ยว
หากคุณต้องการตั้งค่าตัวแปรเป็นบิตสุ่มเป็นศูนย์หรือหนึ่งบิต คุณอาจต้องการแก้ไขโค้ดก่อนหน้าดังต่อไปนี้:
ranNum=$(($(od -An -N1 -i /dev/urandom) % 2)) ป>
โค้ดนี้จะตั้งค่า ranNum เป็น 1 หรือ 0 ขึ้นอยู่กับว่าตัวเลขที่สุ่มตัวอย่างจาก /dev/urandom ไฟล์เป็นเลขคู่หรือคี่ สิ่งนี้มีประโยชน์หากคุณต้องการตั้งค่าสมการใช่หรือไม่ใช่อย่างง่ายให้เป็นสถานะใดสถานะหนึ่ง
หากการสุ่มนี้ไม่เพียงพอสำหรับสิ่งที่คุณกำลังทำอยู่ คุณอาจได้รับหมายเลขสุ่มเพิ่มขึ้นเล็กน้อยโดยการโทรไปยังไดเร็กทอรี /proc/sys/kernel/random ด้วย:
ranNum=$((0x$(ตัด -c1-1 /proc/sys/kernel/random/uuid) % 2)) ป>
อีกครั้งหนึ่ง สิ่งนี้จะตั้งค่าตัวแปรเป็น 1 หรือ 0 เท่านั้น ซึ่งเหมาะสำหรับตรรกะไบนารี่ แต่ไม่มีประโยชน์สำหรับเวลาที่คุณอาจต้องการตัวเลขที่ยาวกว่านี้ อย่างไรก็ตาม คุณสามารถใช้บรรทัดเหล่านี้ในสคริปต์ทุบตีได้ หากคุณจำเป็นต้องทำเช่นนั้น ตัวเลือกที่สองนี้อาจดีกว่าสำหรับสถานการณ์ที่ตัวเลือกแรกล้มเหลวเช่นกัน
วิธีที่ 4:การเขียนสคริปต์ทุบตีเพื่อส่งคืนตัวเลขสุ่ม
หากคุณต้องการมีเครื่องมือที่มีประโยชน์สำหรับสร้างตัวเลขสุ่มได้ตลอดเวลา คุณสามารถสร้างสคริปต์บรรทัดคำสั่งได้ สิ่งนี้ไม่ได้ใช้อะไรมากไปกว่าภาษาทุบตีมาตรฐานที่พรอมต์ Linux สมัยใหม่ส่วนใหญ่มี ดังนั้นการกระจาย Linux สมัยใหม่และระบบปฏิบัติการที่ใช้ BSD บางส่วนน่าจะจัดการเรื่องนี้ได้ดี คุณอาจต้องการใช้ cd ~/.local/bin ก่อนที่จะดำเนินการต่อเพื่อให้แน่ใจว่าคุณจะมีสคริปต์ของคุณอยู่ในตำแหน่งที่คุณสามารถเรียกใช้งานได้จากทุกที่
พิมพ์ nano Random หรือ vi Random เพื่อเริ่มต้น แม้ว่าคุณจะใช้ชื่ออื่นสำหรับสคริปต์ของคุณได้หากต้องการ คุณสามารถใช้โปรแกรมแก้ไขข้อความอื่นได้เช่นกันหากต้องการ สมมติว่าคุณต้องการสร้างสิ่งที่จะส่งกลับ 1 หรือ 0 เมื่อพิมพ์ที่บรรทัดคำสั่ง ป้อนข้อมูลต่อไปนี้แล้วกด Ctrl+O เพื่อบันทึกหากคุณใช้นาโน:
#!/bin/bash ranNum=$(($RANDOM % 2)) ก้อง $ranNum ป>
ป>
พิมพ์ Ctrl+X เพื่อออกจากโปรแกรมแก้ไขข้อความ และเมื่อกลับมาที่บรรทัดคำสั่งแล้ว ให้ใช้ chmod +x สุ่มเพื่อทำให้สคริปต์ของคุณใช้งานได้ แน่นอนคุณสามารถใช้ ranNum=$[RANDOM%10+1], ranNum=$(($(od -An -N1 -tu1 /dev/urandom))) หรือบรรทัดอื่นแทน ranNum=$(($RANDOM % 2)) เพื่อให้คุณสามารถควบคุมได้อย่างชัดเจนว่าคุณต้องการกลับหมายเลขประเภทใด สมมติว่าคุณต้องการเลือกตัวเลขระหว่าง 1 ถึง 50 เป็นประจำ เปลี่ยนข้อความของสคริปต์ทุบตีเป็น:
#!/bin/bash ranNum=$[RANDOM%50+1] ก้อง $ranNum ป>
ตอนนี้คุณสามารถเรียกใช้จากบรรทัดคำสั่งได้อย่างง่ายดายโดยพิมพ์สุ่มเมื่อใดก็ตามที่คุณต้องการสร้างตัวเลขสุ่ม
เกี่ยวกับผู้เขียน
เควิน แอร์โรว์ส
Kevin Arrows เป็นผู้เชี่ยวชาญด้านเทคโนโลยีที่มีประสบการณ์สูงและมีความรู้และมีประสบการณ์ในอุตสาหกรรมมานานกว่าทศวรรษ เขาได้รับการรับรองจาก Microsoft Certified Technology Specialist (MCTS) และมีความมุ่งมั่นอย่างแรงกล้าที่จะติดตามข่าวสารเกี่ยวกับการพัฒนาเทคโนโลยีล่าสุด Kevin ได้เขียนหัวข้อที่เกี่ยวข้องกับเทคโนโลยีอย่างกว้างขวาง โดยนำเสนอความเชี่ยวชาญและความรู้ของเขาในด้านต่างๆ เช่น การพัฒนาซอฟต์แวร์ ความปลอดภัยทางไซเบอร์ และการประมวลผลแบบคลาวด์ การมีส่วนร่วมของเขาในด้านเทคโนโลยีได้รับการยอมรับและเคารพอย่างกว้างขวางจากเพื่อนร่วมงานของเขา และเขาได้รับการยกย่องอย่างสูงจากความสามารถของเขาในการอธิบายแนวคิดทางเทคนิคที่ซับซ้อนในลักษณะที่ชัดเจนและรัดกุม ป>