आपके पथ में निर्देशिका में कोई भी निष्पादन योग्य फ़ाइल "कमांड" हो सकती है। यह एक स्क्रिप्ट हो सकती है जैसा कि अन्य उत्तरों में सुझाया गया है, लेकिन यह किसी भी समर्थित भाषा में एक संकलित कार्यक्रम भी हो सकता है जिसे आप जानते हैं।
उपनाम भी काम करेंगे, लेकिन सीमित हैं क्योंकि वे "वन-लाइनर्स" हैं ताकि उनके साथ कुछ भी करने से जल्दी से कोड उत्पन्न होता है जिसे पढ़ना बहुत मुश्किल है। इसके अलावा, चूंकि वे उसी चर दायरे में निष्पादित होते हैं, जिस शेल में आप उन्हें टाइप करते हैं, वे आसानी से अनपेक्षित साइड इफेक्ट्स हो सकते हैं जैसे कि आपको किसी अन्य निर्देशिका में छोड़ना या चर को परिभाषित करना जो केवल उस कार्य के लिए आवश्यक होते हैं जो अन्य नाम से होता है। (बेशक, कभी-कभी आप उर्फ का ठीक-ठीक उपयोग करना चाह सकते हैं, क्योंकि इसके वांछित दुष्प्रभाव होते हैं।)
यदि आप अपने पथ में एक निर्देशिका में अपने नए आदेश डालते हैं, तो वे शेल द्वारा पाए जा सकते हैं और निष्पादित किए जा सकते हैं। उन्हें लगाने के लिए सबसे आम जगह $ घर / बिन में है। यदि यह निर्देशिका मौजूद है, तो यह अक्सर आपके पथ पर स्वचालित रूप से जोड़ दी जाएगी।
इसे सेट करते समय ध्यान रखने वाली दो बातें हैं: 1) आमतौर पर अपने कमांड के लिए अद्वितीय नामों का उपयोग करना सबसे अच्छा है जो आपके सिस्टम पर पहले से परिभाषित किसी भी मैच से मेल नहीं खाते हैं। इस पर बहुत बहस हो रही है, लेकिन मुख्य बिंदु यह है कि परिचित आदेशों में अप्रत्याशित परिणाम नहीं होने चाहिए यदि कोई व्यक्ति आपके सिस्टम का उपयोग कर रहा है और जो कुछ विशेष करने के लिए एक सामान्य कमांड के लिए उपयोग किया जा रहा है, तो आप मुसीबत में पड़ सकते हैं जब आप किसी अन्य सिस्टम पर काम करते हैं जहां यह उस तरह से परिभाषित नहीं है।
2) आप अपने पथ की शुरुआत या अंत में $ HOME / bin जोड़ सकते हैं (या बीच में कहीं भी, लेकिन आमतौर पर ऐसा नहीं किया जाता है)।
इसे अपने पथ के सामने जोड़ना सबसे सुविधाजनक विकल्प है क्योंकि आपके कमांड का संस्करण हमेशा वही होगा जो निष्पादित होता है और यह तेजी से मिल जाएगा। यह एक सुरक्षा भेद्यता भी है क्योंकि जो कोई भी आपके $ HOME / bin (रूट एक्सेस प्राप्त करने की तुलना में बहुत आसान है) को अनुमति दे सकता है वह सामान्य आदेशों को संभावित दुर्भावनापूर्ण कोड से बहुत आसानी से बदल सकता है। इसके अलावा, यदि आपको कभी किसी ऐसे व्यक्ति से मदद मांगने की ज़रूरत है जो आपके सिस्टम को नहीं जानता है, तो वे आपके कस्टम कमांड के विशेष व्यवहार से तब तक फंसने की संभावना है जब तक कि आप बस के शीर्ष पर सब कुछ समझाने में बहुत अधिक अतिरिक्त प्रयास खर्च न करें। अपने सवाल पूछ रहा हूँ।
इसे अपने पाथ स्टेटमेंट के अंत में जोड़ना थोड़ा सुरक्षित है क्योंकि आपके कमांड के समान नाम वाला कोई भी कमांड जो आपके रास्ते में पहले से मौजूद है, पहले मिल जाएगा और इसके बजाय चला जाएगा - और कुछ भी जो उस कमांड पर निर्भर है जो अपेक्षित रूप से काम करेगा। ।
इस सब से बचने के लिए (थोड़ा अतिरिक्त टाइपिंग के खर्च पर), आप अपनी कमांड को एक निर्देशिका में भी रख सकते हैं जो आपके रास्ते में नहीं है, इसलिए यह लगभग कभी भी अनजाने में नहीं चलेगी क्योंकि आपको यह लिखना होगा कि यह पूर्ण पथ का नाम है चलाओ।
लिनक्स में अधिकांश चीजों की तरह, नए कमांड बनाने और उपयोग करने के कई तरीके हैं और उनमें से प्रत्येक के अपने फायदे और सीमाएं हैं।