सामान्य लिपियों के लिए गैर-सूदो विकल्प / usr / स्थानीय / बिन


16

मुझे सामान्य स्क्रिप्ट लगाने की आदत है, /usr/local/binताकि मैं उन्हें टर्मिनल के साथ कहीं से भी निष्पादित कर सकूं।

उदाहरण के लिए, मैं एक शेल स्क्रिप्ट का नाम बनाता हूं 1, इसे निष्पादन योग्य बनाता हूं और chmod +x 1इसे /usr/local/binअंदर डालता हूं, और स्क्रिप्ट के अंदर मैं #!/bin/shपहली पंक्ति पर टाइप करता हूं , और फिर मेरी आज्ञा। वहाँ से, यह बहुत सुविधाजनक रूप से प्रयोग करने योग्य है और टाइप करके निष्पादित करने के लिए त्वरित है

1Enter

टर्मिनल पर, किसी भी फ़ोल्डर के अंदर से।

मेरी समस्या यह है कि मैं वर्तमान में एक ऐसे कंप्यूटर पर काम कर रहा हूँ जहाँ sudoमैं नहीं कर सकता और मैं इसे प्राप्त करने की उम्मीद नहीं कर सकता, इसलिए मैं अपनी स्क्रिप्ट को इसमें नहीं रख सकता /usr/local/bin

मेरे विकल्प क्या हैं? क्या एक ही रास्ता "कहीं से भी" चलाने की क्षमता है, जिसके बिना मैं पहुंच सकता हूं sudo, या किसी अन्य चीज को प्राप्त करने के लिए एक और तरीका है?

इस पोस्ट का स्वीकृत उत्तर कहता है

उपयोगकर्ता द्वारा स्कैन की गई लिपियों के लिए, अपने घर निर्देशिका में बिन / का उपयोग करें।

जो मैंने कोशिश की, लेकिन binमेरे घर की निर्देशिका में कोई फ़ोल्डर नहीं है , और जब मैंने एक बनाया, तब भी मैं स्क्रिप्ट को कहीं और से नहीं चला सकता था।

मैं Ubuntu 12.04 LTS पर चल रहा हूं।


2
स्क्रिप्ट नाम के रूप में 1 या कुछ का उपयोग न करें। अपने शेल में कुछ गणना करने का प्रयास करें: जैसे expr 1 + 1 (और यदि आप ऐसा नहीं कर रहे हैं, तो कुछ स्क्रिप्ट यह सुनिश्चित करने के लिए कुछ बिंदु पर करेगी)
frlan

1
@फ्रलान: expr 1 + 1नाम की स्क्रिप्ट की उपस्थिति से कैसे प्रभावित होगा 1?
भजन

सच ... प्रभावित करने वाला नहीं expr, न ही अंकगणित को कोसने वाला $(( 1 + 1 ))
कैम्पा

जवाबों:


19

मेरे विकल्प क्या हैं? क्या एक ही रास्ता "कहीं से भी" चलाने की क्षमता वाला है, जिसे मैं बिना सूडो के भी एक्सेस कर सकता हूं, या किसी अन्य चीज को प्राप्त करने के लिए दूसरा तरीका?

यह कैसे करना है?

आम तौर binपर सम्मेलन के रूप में नामित अपनी लिपियों को पकड़ने के लिए अपने घर में कुछ dir बनाएं ।

mkdir ~/bin

अब अपनी स्क्रिप्ट को बिन ले जाएँ

mv somescript ~/bin

अब इसे हर जगह से कैसे बनाया जाए ?!

आपको binPATH में जोड़ना होगा

अपने खुले .bashrc

gedit .bashrc

और इस लाइन को जोड़ें:

export PATH=$PATH:/home/username/bin

usernameअपने उपयोगकर्ता नाम के साथ प्रतिस्थापित करना न भूलें

सहेजें और बाहर निकलें, फिर bashrc स्रोत

source .bashrc

और अब आप ठीक हैं, आप अपनी स्क्रिप्ट चला सकते हैं जैसा आप करते थे! लेकिन आपको यह ध्यान देना होगा कि यह केवल आपके उपयोगकर्ता से संबंधित है।

नोट: 1, 2 के अलावा अपनी स्क्रिप्ट का नाम बदलने से बेहतर है कि आप उस नाम के साथ कुछ मुद्दों का सामना कर सकें


अपडेट करें:

आप बस अपने घर में बिन डिर का निर्माण कर सकते हैं, source ~/.profileइसके बजाय ~/.bashrc। अपने पैट में ~ / बिन जोड़ने के बाद से पहले से ही सूचीबद्ध है.profile

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

मैं उपयोग करता हूं export PATH=$PATH:$HOME/binइसलिए मैं अलग-अलग उपयोगकर्ता नाम वाले अन्य खातों के लिए एक ही bashrc का उपयोग कर सकता हूं।
एंथोनी जी -

1
बस उल्लेख करने ~/bin में है $PATHUbuntu पर डिफ़ॉल्ट रूप से। source ~/.profileनिर्देशिका बनाने के बाद बस चलाएं या लॉग आउट करें।
जैकब वलिज्म

@JacobVlijm किस संस्करण में? !!! मैं 12.04, 14.04, 15.04 का उपयोग करता हूं और उनमें से किसी के पास PATH में ~ / बिन नहीं है
Maythux

उन सभी में, मैं हमेशा इसका उपयोग करता हूं, मेरे कई (स्वीकार किए गए) जवाबों के साथ-साथ, उस पर कभी कोई टिप्पणी नहीं मिली, घर पर उसे पांच प्रणालियों पर भी काम करता है, लेकिन, जैसा कि कहा जाता है, चलाने के बाद source ~/.profile। यहाँ देखें (उदाहरण): askubuntu.com/a/247422/72216
याकूब वलिजम

1
उन्होंने कहा कि स्रोत ~/.profile, उन्होंने कभी भी स्रोत नहीं कहा ~/.bashrc :) इसके अलावा, एक सामान्य नियम के रूप में, पर्यावरण चर जाना चाहिए में .profileऔर नहीं .bashrc, क्योंकि वे केवल एक बार की स्थापना की जानी चाहिए। (इसमें से कोई भी यह कहने के लिए नहीं है कि आपका उत्तर अच्छा नहीं है, आपको बुरा लगता है, और +1 मुझसे)
टेरडॉन

4

Https://askubuntu.com/a/643030/218015 के अलावा आप छोटे, अक्सर उपयोग किए जाने वाले कार्यों के लिए .bashrc के अंदर एक उपनाम भी परिभाषित कर सकते हैं। उदाहरण के लिए

alias ll='ls -l'
alias ls='ls --color=auto'

आपको एक "कमांड" ll बनाएगा, जो एलएस-एल कर रहा है और एलएस उर्फ ​​को परिभाषित करने के बाद रंगीन होगा। https://wiki.ubuntuusers.de/alias के कुछ और उदाहरण हैं और इसे स्थापित करने के लिए एक तरीका है।

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