Computer >> कंप्यूटर ट्यूटोरियल >  >> समस्या निवारण >> Linux

बैश में यादृच्छिक संख्याएँ उत्पन्न करें:एक त्वरित मार्गदर्शिका

<पी> आप बैश प्रॉम्प्ट पर आसानी से एक यादृच्छिक संख्या उत्पन्न कर सकते हैं, जिसका उपयोग आप उक्त संख्या को एक चर के रूप में सेट करने के लिए कर सकते हैं। यह कुछ प्रकार की स्क्रिप्ट लिखने से लेकर टेबलटॉप रोलप्लेइंग एडवेंचर चलाने तक हर चीज़ के लिए उपयोगी है। चाहे आप डी एंड डी अभियान लिख रहे हों या शक्तिशाली बैश भाषा में उपयोगिता लिख ​​रहे हों, आप आमतौर पर कोड की एक पंक्ति से बच सकते हैं। कुछ सुरक्षा जांचों को पहले से करने का प्रयास करते समय यह एक बहुत ही उपयोगी उपकरण है, लेकिन आप यह याद रखना चाहेंगे कि अच्छे क्रैकर इन सरल संख्या जनरेटरों को दरकिनार कर सकते हैं। वे अभी भी कुछ प्रकार के पासवर्ड और कोड बनाने के लिए उपयोगी हैं, जो चीजों को सुरक्षित रखने में मदद कर सकते हैं।

<पी> इसे पूरा करने के कुछ अलग-अलग तरीके हैं, और हर तकनीक हर स्थिति के लिए सही नहीं है, इसलिए हमने हर तरीके पर नज़र डालने की पूरी कोशिश की और यह सुनिश्चित करने के लिए उसका परीक्षण किया कि यह काम करता है। इसके लिए आपको एक टर्मिनल से काम करने की आवश्यकता होगी, इसलिए ग्राफ़िकल टर्मिनल खोलने के लिए या तो Ctrl+Alt+T या Super (Windows)+T का उपयोग करें, डैश में टर्मिनल टाइप करके प्रारंभ करें, इसे एप्लिकेशन या व्हिस्कर और सिस्टम टूल्स मेनू से चुनें या Ctrl, Alt और F1 और F6 के बीच एक कुंजी का उपयोग करके वर्चुअल टर्मिनल पर जाएं।

विधि 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)) <पी> यह कोड ranNum को 1 या 0 पर सेट करेगा, यह इस बात पर निर्भर करेगा कि उसने /dev/urandom से जिन संख्याओं का नमूना लिया है। फ़ाइल सम या विषम थी। यह उपयोगी हो सकता है यदि आपको एक या दूसरे राज्य के लिए एक सरल हां या ना समीकरण सेट करने की आवश्यकता है।

<पी> यदि आप जिस पर काम कर रहे हैं उसके लिए यह पर्याप्त रूप से यादृच्छिक नहीं है, तो आप /proc/sys/kernel/random निर्देशिका पर कॉल करके थोड़ा अधिक यादृच्छिक नंबर प्राप्त कर सकते हैं:

<पी> ranNum=$((0x$(cut -c1-1 /proc/sys/kernel/random/uuid) % 2)) <पी> हालाँकि, एक बार फिर, यह वेरिएबल को केवल 1 या 0 पर सेट करेगा, जो बाइनरी लॉजिक के लिए बिल्कुल सही है लेकिन उस समय के लिए उतना उपयोगी नहीं है जब आपको लंबी संख्या की आवश्यकता हो सकती है। हालाँकि, यदि आपको ऐसा करने की कोई आवश्यकता है, तो आप बैश स्क्रिप्ट में इनमें से किसी भी पंक्ति का उपयोग कर सकते हैं। यह दूसरा विकल्प वास्तव में उन स्थितियों के लिए बेहतर हो सकता है जहां पहला भी विफल रहता है

विधि 4:यादृच्छिक संख्याएँ लौटाने के लिए बैश स्क्रिप्ट लिखना

<पी> यदि आप किसी भी समय यादृच्छिक संख्या उत्पन्न करने के लिए एक उपयोगी उपकरण चाहते हैं, तो आप ऐसा करने के लिए एक कमांड लाइन स्क्रिप्ट बना सकते हैं।  यह अधिकांश आधुनिक लिनक्स प्रॉम्प्ट की मानक बैश भाषा से अधिक कुछ भी उपयोग नहीं करता है, इसलिए लगभग किसी भी आधुनिक लिनक्स वितरण और कुछ बीएसडी-आधारित ऑपरेटिंग सिस्टम को इसे ठीक से संभालना चाहिए। आप यह सुनिश्चित करने के लिए आगे बढ़ने से पहले cd ~/.local/bin का उपयोग करना चाह सकते हैं कि आपकी स्क्रिप्ट ऐसी जगह पर है जहां आप इसे कहीं से भी निष्पादित कर सकते हैं।

<पी> आरंभ करने के लिए नैनो रैंडम या vi रैंडम टाइप करें, हालाँकि यदि आप चाहें तो आप अपनी स्क्रिप्ट के लिए एक अलग नाम का उपयोग कर सकते हैं। यदि आप चाहें तो आप किसी अन्य टेक्स्ट एडिटर का भी उपयोग कर सकते हैं। मान लें कि आप एक ऐसा बनाना चाहते थे जो कमांड लाइन पर टाइप करने पर 1 या 0 लौटाए। यदि आप नैनो का उपयोग कर रहे हैं तो निम्नलिखित दर्ज करें और फिर इसे सहेजने के लिए Ctrl+O दबाएं:

<पी> #!/bin/bash ranNum=$(($RANDOM % 2)) echo $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] echo $ranNum <पी> अब आप जब भी कोई रैंडम नंबर जनरेट करना चाहें, रैंडम टाइप करके इसे कमांड लाइन से आसानी से चला सकते हैं।

<पी> लेखक के बारे में

<पी> बैश में यादृच्छिक संख्याएँ उत्पन्न करें:एक त्वरित मार्गदर्शिका

<पी> केविन एरो

<पी> केविन एरो एक दशक से अधिक के उद्योग अनुभव के साथ एक अत्यधिक अनुभवी और जानकार प्रौद्योगिकी विशेषज्ञ हैं। उनके पास माइक्रोसॉफ्ट सर्टिफाइड टेक्नोलॉजी स्पेशलिस्ट (एमसीटीएस) प्रमाणन है और नवीनतम तकनीकी विकास के बारे में अपडेट रहने का उनमें गहरा जुनून है। केविन ने सॉफ्टवेयर विकास, साइबर सुरक्षा और क्लाउड कंप्यूटिंग जैसे क्षेत्रों में अपनी विशेषज्ञता और ज्ञान का प्रदर्शन करते हुए तकनीक से संबंधित विषयों की एक विस्तृत श्रृंखला पर विस्तार से लिखा है। तकनीकी क्षेत्र में उनके योगदान को उनके साथियों द्वारा व्यापक रूप से मान्यता और सम्मान दिया गया है, और जटिल तकनीकी अवधारणाओं को स्पष्ट और संक्षिप्त तरीके से समझाने की उनकी क्षमता के लिए उन्हें अत्यधिक सम्मानित किया जाता है।
  1. विंडोज 10 में अपनी फाइल डाउनलोड करने में ड्रॉपबॉक्स त्रुटि को ठीक करें विंडोज 10 में अपनी फाइल डाउनलोड करने में ड्रॉपबॉक्स त्रुटि को ठीक करें

    ड्रॉपबॉक्स एक फाइल होस्टिंग प्लेटफॉर्म है; वेबसाइट को पहली बार 2008 में लॉन्च किया गया था और तब से यह इंटरनेट पर सबसे बड़े फाइल होस्टिंग प्लेटफॉर्म में से एक बन गया है। ड्रॉपबॉक्स के वर्तमान में 700 मिलियन से अधिक सक्रिय उपयोगकर्ता हैं। ड्रॉपबॉक्स अपने उपयोगकर्ताओं को आधिकारिक वेबसाइट और ड्रॉपबॉक्स

  1. अमेजन प्राइम वीडियो पिन कैसे रीसेट करें अमेजन प्राइम वीडियो पिन कैसे रीसेट करें

    ओटीटी प्लेटफार्मों के उद्भव ने कमोबेश पुराने जमाने के केबल टेलीविजन की जगह ले ली है। आपकी सुविधानुसार, बिना किसी विज्ञापन के हजारों फिल्में और टीवी शो देखने की क्षमता, परम सहस्त्राब्दी का सपना है। हालाँकि, यह क्षमता माता-पिता के लिए बहुत चिंता का विषय भी है क्योंकि वे बिना सेंसर वाली सामग्री के विचा

  1. विंडोज 10 . में ब्लैक डेस्कटॉप बैकग्राउंड को ठीक करें विंडोज 10 . में ब्लैक डेस्कटॉप बैकग्राउंड को ठीक करें

    किसी भी विंडोज कंप्यूटर के लिए मानक विशेषता डेस्कटॉप वॉलपेपर है। आप एक स्थिर छवि, एक लाइव वॉलपेपर, एक स्लाइड शो, या एक साधारण ठोस रंग सेट करके अपने डेस्कटॉप वॉलपेपर को आसानी से बदल और संशोधित कर सकते हैं। हालाँकि, ऐसी संभावना है कि जब आप अपने विंडोज कंप्यूटर पर वॉलपेपर बदलते हैं, तो आपको एक काली पृष