कमांड लाइन शॉर्टकट बनाने के लिए ln -s का उपयोग कैसे करें?


11

मेरे पास एक श फाइल है जिसे मैं किसी भी समय टर्मिनल से खोलना चाहूंगा। मैं टर्मिनल में "स्टूडियो" टाइप करना चाहता हूं, और एंड्रॉइड स्टूडियो खोलना चाहता हूं

मुझे ln -sयह करने के लिए उपयोग करने की याद है , लेकिन मैं भूल गया हूं और पहले से ही वेब की खोज में बहुत समय बर्बाद कर चुका हूं।

साथ ही, बनाई गई प्रतीकात्मक कड़ी को किस निर्देशिका में रखा गया है?

यहाँ मेरे प्रयास से वाक्य रचना है, कमांड नहीं मिला

ricardo@debian:~$ ln -s /opt/android-studio/bin/studio.sh studio
ricardo@debian:~$ studio
bash: studio: command not found

कोशिश करो ./studio
सेबस्टियन

मैं ./studio के लिए एक लिंक बनाना चाहता हूं जिसे मैं केवल स्टूडियो में टाइप करके कहीं से भी खोल सकता हूं, या केले
rickyjoepr

यदि आप studioअकेले उपयोग करके कहीं से भी स्क्रिप्ट को निष्पादित करना चाहते हैं, तो आपको लिंक को उस स्थान पर रखना होगा जो शेल द्वारा खोजा जा रहा है। खोल में सब कुछ खोजता है echo $PATH। आप या तो $PATHलिंक को एक निर्देशिका में बदल सकते हैं या डाल सकते हैं $PATH। आप क्या करना चाहते हैं?
सेबस्टियन

4
@ सेबीस्टियन कृपया प्रश्नों के उत्तर का उपयोग करें, टिप्पणियों का नहीं। और कृपया उत्तर देने के बाद प्रश्नों को हटाने का सुझाव न दें। हम यहां उन उत्तरों का भंडार बनाने के लिए हैं जो आसपास रहते हैं और भविष्य के आगंतुकों के लिए उपयोगी हैं।
गिल्स एसओ- बुराई को रोकना '

1
आप aliasकमांड को पसंद कर सकते हैं , जो आमतौर पर कमांड नामों को छोटा करने के लिए प्रतीकात्मक लिंक बनाने के बजाय उपयोग किया जाता है।
विन्नी

जवाबों:


10

आपके द्वारा चलाए गए कमांड ने वर्तमान निर्देशिका में एक प्रतीकात्मक लिंक बनाया। प्रॉम्प्ट को देखते हुए, वर्तमान निर्देशिका आपकी होम डायरेक्टरी है। अपने घर निर्देशिका में निष्पादन योग्य कार्यक्रमों के लिए प्रतीकात्मक लिंक बनाना विशेष रूप से उपयोगी नहीं है।

जब आप किसी प्रोग्राम का नाम टाइप करते हैं, तो शेल इसके लिए PATHपर्यावरण चर में सूचीबद्ध निर्देशिकाओं में दिखता है । इस चर का मान देखने के लिए, चलाएँ echo $PATH। निर्देशिकाओं को एक बृहदान्त्र ( :) द्वारा अलग किया जाता है । एक विशिष्ट पथ है, /home/ricardo/bin:/usr/local/bin:/usr/bin:/binलेकिन वहाँ बहुत भिन्नता है।

आपको सूचीबद्ध सूचियों में से एक में इस प्रतीकात्मक लिंक को बनाने की आवश्यकता है $PATH। यदि आप सभी उपयोगकर्ताओं को कमांड उपलब्ध कराना चाहते हैं, तो इसमें लिंक बनाएं /usr/local/bin:

sudo ln -s /opt/android-studio/bin/studio.sh /usr/local/bin/studio

यदि आप कमांड केवल आपको ही उपलब्ध कराना चाहते हैं (जो कि आपके पास प्रशासक के विशेषाधिकार नहीं हैं, तो एकमात्र संभावना है), लिंक को ~/bin( binअपने होम डायरेक्टरी की उपनिर्देशिका ) बनाएँ ।

ln -s /opt/android-studio/bin/studio.sh ~/bin/studio

यदि आपका वितरण आपके घर /home/ricardo/binमें नहीं है PATH(जहां /home/ricardoआपकी होम निर्देशिका है), इसे पहले बनाएं mkdir ~/binऔर PATHनिम्न पंक्ति में जोड़कर इसे अपने पास जोड़ें ~/.profile(यदि मौजूद नहीं है तो फ़ाइल बनाएं):

PATH=~/bin:$PATH

.profileजब आप प्रवेश फ़ाइल पढ़ा जाता है। आप चलाकर वर्तमान टर्मिनल में यह पढ़ सकते हैं . ~/.profile(यह केवल कि टर्मिनल से शुरू कर दिया कार्यक्रमों के लिए लागू होता है)।


1
+1 लेकिन विनी की टिप्पणी के रूप में, मुझे लगता है कि एक उपनाम ~/.bashrcऔर अधिक सरल होगा।
स्परहॉक

@ श्रावक एक उपनाम केवल एक इंटरैक्टिव शेल से प्रोग्राम को लागू करने के लिए काम करेगा, न कि किसी स्क्रिप्ट, डेस्कटॉप शॉर्टकट या किसी अन्य प्रोग्राम से।
गिल्स एसओ- बुराई को रोकना '

1
यह सच है, लेकिन सवाल I would like to type "studio" into the terminalयह है, और यह शीर्षक और उद्धृत आदेशों से निहित है।
स्पार्कहॉक

1

अपनी इच्छा को लागू करने का सबसे सहज तरीका एक उपनाम का उपयोग करना है। प्रकार:

alias studio=/opt/android-studio/bin/studio.sh

या संबंधित एलियास को .profile या बेहतर में दर्ज करें: आपका शेल $ ENV के रूप में क्या उपयोग करता है।

ध्यान दें कि आपको अभी भी जोड़ना पड़ सकता है

/opt/android-studio/bin

सॉफ्टवेयर का उपयोग करने में सक्षम होने के लिए अपने पथ के लिए। सबसे पहले यह जानने की कोशिश करनी चाहिए कि क्या यह विस्तारित PATH के बिना काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.