আপনি ব্যাশ প্রম্পটে সহজেই একটি র্যান্ডম সংখ্যা তৈরি করতে পারেন, যা আপনি তারপরে একটি পরিবর্তনশীল হিসাবে উল্লিখিত সংখ্যা সেট করতে ব্যবহার করতে পারেন। এটি নির্দিষ্ট ধরণের স্ক্রিপ্ট লেখা থেকে শুরু করে ট্যাবলেটপ রোলপ্লেয়িং অ্যাডভেঞ্চার চালানোর জন্য দরকারী। আপনি একটি D&D প্রচারাভিযান লিখতে পারেন বা শক্তিশালী ব্যাশ ভাষায় একটি ইউটিলিটি লিখতে পারেন, আপনি সাধারণত কোডের একটি লাইন দিয়ে দূরে যেতে পারেন। নির্দিষ্ট নিরাপত্তা চেক করার চেষ্টা করার সময় এটি একটি খুব দরকারী টুল, কিন্তু আপনি মনে রাখতে চান যে ভাল ক্র্যাকারগুলি এই সাধারণ সংখ্যা জেনারেটরগুলিকে এড়িয়ে যেতে পারে। এগুলি এখনও নির্দিষ্ট ধরণের পাসওয়ার্ড এবং কোড তৈরি করার জন্য উপযোগী, যা যাইহোক জিনিসগুলিকে সুরক্ষিত রাখতে সাহায্য করতে পারে।
এটি সম্পন্ন করার কয়েকটি ভিন্ন উপায় রয়েছে এবং প্রতিটি কৌশল প্রতিটি পরিস্থিতির জন্য সঠিক নয়, তাই আমরা প্রতিটি উপায়ে একবার নজর দেওয়ার জন্য যথাসাধ্য চেষ্টা করেছি এবং এটি কাজ করেছে তা নিশ্চিত করার জন্য এটি পরীক্ষা করেছি। এর জন্য আপনাকে একটি টার্মিনাল থেকে কাজ করতে হবে, তাই হয় একটি গ্রাফিকাল টার্মিনাল খুলতে Ctrl+Alt+T বা Super (Windows)+T ব্যবহার করুন, ড্যাশে টার্মিনাল টাইপ করে একটি শুরু করুন, অ্যাপ্লিকেশন বা হুইকার এবং সিস্টেম টুলস মেনু থেকে এটি নির্বাচন করুন বা Ft এবং Ct এবং >এর মধ্যে Ft এবং Ctr ব্যবহার করে আন্তরিকভাবে ভার্চুয়াল টার্মিনালে যান।
পদ্ধতি 1:একটি সম্পূর্ণ র্যান্ডম বাইট বাছাই
আপনি সরাসরি ব্যাশ প্রম্পট থেকে নিম্নলিখিত কমান্ডটি চালিয়ে 1 থেকে 256 এর মধ্যে একটি র্যান্ডম সংখ্যা তৈরি করতে পারেন:
od -An -N1 -tu1 /dev/urandom
যদিও আপনি কখনও কখনও এই কমান্ডটি /dev/urandom-এর পরিবর্তে /dev/random-তে উল্লেখ করতে পারেন, আপনি সম্ভবত এইভাবে চালাতে চাইবেন না। এটি আপনার ব্যবহারের সময় এলোমেলো বীজ জেনারেটর ব্যবহার করতে সক্ষম হওয়া থেকে অনিচ্ছাকৃতভাবে অন্যান্য প্রোগ্রামগুলি কেড়ে নিতে পারে। একবার আপনি প্রোগ্রামটি চালানোর পরে এবং একটি নম্বর পেয়ে গেলে, আপনি নিশ্চিত হতে পারেন যে এটি এইভাবেও কাজ করবে:
ranNum=$(($(od -An -N1 -tu1 /dev/urandom)))
এটি ranNum পরিবর্তনশীলটিকে 1 এবং 256 এর মধ্যে একটি সংখ্যায় সেট করবে, আপনি এটি চালানোর সময় নির্বাচিত হবেন। আপনি কমান্ড লাইন থেকে বা একটি স্ক্রিপ্টের ভিতর থেকে এটি চালাতে পারেন এবং এটি যে কোনও উপায়ে কাজ করা উচিত। মনে রাখবেন যে আপনি যেকোন বৈধ পরিবর্তনশীল নামের সাথে ranNum প্রতিস্থাপন করতে পারেন।
পদ্ধতি 2:1 এবং যাই হোক না কেন এর মধ্যে একটি র্যান্ডম সংখ্যায় একটি পরিবর্তনশীল সেট করা
আপনি 1 থেকে 40 এর মধ্যে একটি র্যান্ডম সংখ্যা সরাসরি স্ট্যান্ডার্ড আউটপুটে পাঠাতে কমান্ড লাইন থেকে echo $[RANDOM%40+1] চালাতে পারেন, তবে আপনি কার্যত যেকোনো সংখ্যার সাথে কমান্ডের 40 প্রতিস্থাপন করতে পারেন। অবশেষে আপনার হোস্ট মেশিনের আর্কিটেকচারের সংখ্যা শেষ হয়ে যাবে বা সম্ভবত ব্যাশ হবে, তবে সন্দেহজনক যে যাইহোক আপনার এত বেশি সংখ্যা দরকার।
ধরুন আপনি আপনার পরিবর্তনশীল কনফিগারেশনের জন্য 1 এবং 10 এর মধ্যে একটি র্যান্ডম সংখ্যা তৈরি করতে চান। আপনি চালাতে পারেন:
ranNum=$[RANDOM%10+1]
মনে রাখবেন যে আপনি 10 প্রতিস্থাপন করতে পারেন যা আপনি চান উপরের মান দিয়ে। এই মানটি অন্তর্ভুক্ত, যার অর্থ হল 10 হল একটি বৈধ প্রত্যাবর্তিত চিত্র৷ আপনি যদি এটিকে এক দ্বারা কমাতে চান, তবে C বা C++ স্টাইল -1 গণিত ব্যবহার করার পরিবর্তে কেবলমাত্র মান 9 করুন। এই পদ্ধতি ব্যবহার করে একটি ভেরিয়েবল সেট করার সময় এগুলি অপ্রয়োজনীয়, এবং তারা আসলে অঙ্ক যোগ বা বিয়োগ করে অপ্রত্যাশিত ফলাফল তৈরি করবে৷
পদ্ধতি 3:একটি একক র্যান্ডম বিট নির্বাচন করা
আপনি যদি শূন্য বা একের একটি র্যান্ডম বিটে একটি ভেরিয়েবল সেট করতে চান, তাহলে আপনি পূর্ববর্তী কোডটি নিম্নরূপ পরিবর্তন করতে চাইতে পারেন:
ranNum=$(($(od -An -N1 -i /dev/urandom) % 2))
এই কোডটি /dev/urandom থেকে যে সংখ্যাগুলি নমুনা করেছে তার উপর নির্ভর করে এই কোডটি ranNum কে 1 বা 0 তে সেট করবে ফাইল জোড় বা বিজোড় ছিল। এটি কার্যকর হতে পারে যদি আপনি একটি বা অন্য অবস্থায় একটি সহজ হ্যাঁ বা না সমীকরণ সেট করতে চান৷
আপনি যা কাজ করছেন তার জন্য যদি এটি যথেষ্ট র্যান্ডম না হয়, তাহলে আপনি /proc/sys/kernel/র্যান্ডম ডিরেক্টরিতে একটি কল করে একটু বেশি র্যান্ডম নম্বর পেতে পারেন:
ranNum=$((0x$(cut -c1-1 /proc/sys/kernel/random/uuid) % 2))
আবার, যদিও, এটি শুধুমাত্র ভেরিয়েবলটিকে 1 বা 0-এ সেট করবে, যা বাইনারি লজিকের জন্য নিখুঁত কিন্তু সেই সময়ের জন্য ততটা কার্যকর নয় যখন আপনার দীর্ঘ সংখ্যার প্রয়োজন হতে পারে। যাইহোক, যদি আপনার এটি করার প্রয়োজন হয় তবে আপনি ব্যাশ স্ক্রিপ্টে এই লাইনগুলির যে কোনও একটি ব্যবহার করতে পারেন। এই দ্বিতীয় বিকল্পটি আসলে এমন পরিস্থিতিতে ভাল হতে পারে যেখানে প্রথমটিও ব্যর্থ হয়
পদ্ধতি 4:এলোমেলো নম্বর ফেরাতে ব্যাশ স্ক্রিপ্ট লিখন
আপনি যদি যেকোনো সময়ে একটি র্যান্ডম নম্বর তৈরি করার জন্য একটি সহজ টুল পেতে চান, তাহলে আপনি এটি করতে একটি কমান্ড লাইন স্ক্রিপ্ট তৈরি করতে পারেন। এটি বেশিরভাগ আধুনিক লিনাক্স প্রম্পটে থাকা স্ট্যান্ডার্ড ব্যাশ ভাষা ছাড়া আর কিছুই ব্যবহার করে না, তাই আধুনিক লিনাক্স ডিস্ট্রিবিউশন এবং বেশ কয়েকটি BSD-ভিত্তিক অপারেটিং সিস্টেমের এটি ঠিকভাবে পরিচালনা করা উচিত। আপনার স্ক্রিপ্ট এমন জায়গায় থাকবে তা নিশ্চিত করার জন্য আপনি যেকোন জায়গা থেকে এটি কার্যকর করতে পারেন তা নিশ্চিত করতে আপনি cd ~/.local/bin ব্যবহার করতে পারেন।
শুরু করতে ন্যানো র্যান্ডম বা vi এলোমেলো টাইপ করুন, যদিও আপনি চাইলে আপনার স্ক্রিপ্টের জন্য একটি ভিন্ন নাম ব্যবহার করতে পারেন। আপনি চাইলে অন্য টেক্সট এডিটরও ব্যবহার করতে পারেন। বলুন আপনি এমন একটি তৈরি করতে চেয়েছিলেন যা কমান্ড লাইনে টাইপ করার সময় 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
আপনি যখনই একটি র্যান্ডম নম্বর তৈরি করতে চান তখন আপনি এখন সহজেই র্যান্ডম টাইপ করে কমান্ড লাইন থেকে এটি চালাতে পারেন৷
লেখক সম্পর্কে
কেভিন অ্যারোস
কেভিন অ্যারোস এক দশকেরও বেশি শিল্প অভিজ্ঞতার সাথে একজন অত্যন্ত অভিজ্ঞ এবং জ্ঞানী প্রযুক্তি বিশেষজ্ঞ। তিনি মাইক্রোসফ্ট সার্টিফাইড টেকনোলজি স্পেশালিস্ট (MCTS) সার্টিফিকেশন ধারণ করেছেন এবং সর্বশেষ প্রযুক্তিগত উন্নয়ন সম্পর্কে আপ-টু-ডেট থাকার গভীর আবেগ রয়েছে। সফটওয়্যার ডেভেলপমেন্ট, সাইবার সিকিউরিটি, এবং ক্লাউড কম্পিউটিং-এর মতো ক্ষেত্রগুলিতে তার দক্ষতা এবং জ্ঞান প্রদর্শন করে কেভিন প্রযুক্তি-সম্পর্কিত বিষয়গুলির বিস্তৃত পরিসরে ব্যাপকভাবে লিখেছেন। কারিগরি ক্ষেত্রে তার অবদান তার সমবয়সীদের দ্বারা ব্যাপকভাবে স্বীকৃত এবং সম্মানিত হয়েছে এবং জটিল প্রযুক্তিগত ধারণাগুলিকে স্পষ্ট এবং সংক্ষিপ্তভাবে ব্যাখ্যা করার ক্ষমতার জন্য তিনি অত্যন্ত সম্মানিত।