सवाल मेरे रास्ते में एक बाइनरी जोड़ें


मेरे पास एक निष्पादन योग्य है। मैं टर्मिनल में एक्जिक्यूटिव को अन्य कमांड की तरह ही नाम से निष्पादित करना चाहता हूं।

मैं अपना निष्पादन योग्य रख सकता हूं /usr/local/bin या मैं इसे जोड़ सकता था PATH सेवा मेरे ~/.bashrc। दोनों काम करेंगे।

क्या बेहतर है? क्या कोई अंतर है?


13
2018-03-29 10:43


मूल




जवाब:


उदाहरण के लिए मुझे लगता है कि आपके पास निष्पादन योग्य है myscript। आपको टर्मिनल से इसे चलाने की ज़रूरत है,

/path/to/myscript

उपयोगकर्ता स्तर बदलें

यदि आप जोड़ते हैं PATH उस निष्पादन योग्य के लिए ~/.bashrc, आप निष्पादन योग्य को केवल नाम से ही चला सकते हैं (अविनाश राज पहले से ही उल्लेख किया गया है), के रूप में

myscript

लेकिन परिवर्तन प्रभावित होगा उपयोगकर्ता स्तर। इसका मतलब है कि यदि आपके पास कोई अन्य उपयोगकर्ता है तो वे केवल नाम के साथ निष्पादन योग्य तक नहीं पहुंच सके। अगर उनके पास उचित अनुमति है तो उन्हें निष्पादन योग्य चलाने की आवश्यकता है,

/path/to/myscript

इसके अलावा, आप स्क्रिप्ट को चलाने में सक्षम नहीं होंगे sudo क्योंकि इसमें नहीं है PATH रूट के रूप में चलाने के लिए sudo आपको उपयोग करने की ज़रूरत है,

sudo /path/to/myscript

सिस्टम स्तर परिवर्तन

यदि आप अपनी स्क्रिप्ट डालते हैं /usr/local/bin इसे सिस्टम चौड़ा और सभी उपयोगकर्ताओं के लिए एक्सेस किया जा सकता है। उस स्थिति में कोई भी उपयोगकर्ता आपके निष्पादन योग्य को चला सकता है (उचित अनुमति के अधीन)

myscript

उस स्थिति में आप निष्पादन योग्य के रूप में चला सकते हैं sudo के रूप में भी,

sudo myscript

अब अपनी ज़रूरत के आधार पर एक तरीका चुनें।


10
2018-03-29 13:57





फ़ाइल का स्थान आपके पास जोड़ना $PATH आपके में चर ~/.bashrc फाइल आपको केवल किसी भी स्थान से निष्पादित करने की अनुमति देगी, जबकि इसे अंदर रखेगी /usr/bin/ आपके सिस्टम के सभी उपयोगकर्ताओं को किसी भी स्थान से उस फ़ाइल को निष्पादित करने की अनुमति देगा।

ऐसा क्यों है? क्योंकि आपकी ~/.bashrc फ़ाइल केवल उपयोगकर्ता के रूप में आपके लिए दृश्यमान है। इसलिए किए गए सभी परिवर्तनीय परिवर्तन आपके लिए सीमित हैं। जबकि, उस फ़ाइल को जोड़ना /usr/bin फ़ाइल को सभी उपयोगकर्ताओं के लिए और तब से वहां रहने की अनुमति देगा /usr/bin में मौजूद है $PATH परिवर्तनीय जब तक कोई इसे हटा देता है, तो सभी उपयोगकर्ताओं को किसी भी स्थान से इसे निष्पादित करने की अनुमति होगी।


2
2018-03-29 14:14





यदि आप निष्पादन योग्य फ़ाइल डालते हैं /usr/bin या /usr/local/bin, तो आप केवल उस नाम को निर्दिष्ट करके उस प्रोग्राम को चलाने में सक्षम होंगे (your-program के बजाय /usr/local/bin/your-program)।

यदि आप इसके बजाय प्रोग्राम युक्त निर्देशिका जोड़ते हैं ~/.bashrc फ़ाइल करने के लिए PATH, तो उस निर्देशिका में मौजूद किसी भी निष्पादन योग्य फ़ाइल को केवल अपना नाम टाइप करके लॉन्च किया जा सकता है।


0
2018-03-29 10:54



यह जानकारी गलत है, अगर आप "उस निर्देशिका" में नहीं हैं तो भी आप निष्पादन योग्य लॉन्च कर सकते हैं। - Lekensteyn
यह झूठा कैसे है ?, कृपया थोड़ा और बताएं। - Avinash Raj
ठीक है, मुझे आपके उत्तर को पढ़ने में कठिनाई हुई थी (और इस तरह एक त्रुटि हुई) इसलिए मैंने इसे भ्रम को दूर करने और डाउनवोट को रिमोट करने के लिए संपादित किया। उम्मीद है कि यह मदद करता है। - Lekensteyn
तो, सवाल यह है: क्या बेहतर है? क्या कोई अंतर है? आपने व्यावहारिक रूप से ओपी से ज्यादा कुछ नहीं कहा। - Radu Rădeanu
मैंने ओएस के सवाल का जवाब दिया लेकिन एक संक्षिप्त प्रारूप में नहीं। - Avinash Raj


@Souravc उत्तर के पूरक के रूप में ...

संपादन के बजाय "उपयोगकर्ता स्तर परिवर्तन" के लिए ~/.bashrc फ़ाइल आप बस निर्देशिका बना सकते हैं $HOME/bin/ और वहां अपनी स्क्रिप्ट रखें।

निर्देशिका स्वचालित रूप से जोड़ा जाएगा PATH (कम से कम उबंटू 12.04 के बाद) जिसका अर्थ है कि आप उस निर्देशिका के अंदर सभी स्क्रिप्ट / एक्जिक्यूटिव को सरल के साथ चलाने में सक्षम होंगे:

myscript

बस मेरे 2 सेंट। :)

पीएस- मैंने इसे @souravc उत्तर पर टिप्पणी के रूप में पोस्ट करने का प्रयास किया, लेकिन मेरे पास पर्याप्त प्रतिष्ठा नहीं थी। :-(


0
2018-02-10 19:24