मैं $PATH
Ubuntu में एक निर्देशिका कैसे जोड़ूं और परिवर्तनों को स्थायी बनाऊं?
मैं $PATH
Ubuntu में एक निर्देशिका कैसे जोड़ूं और परिवर्तनों को स्थायी बनाऊं?
जवाबों:
एक पथ सेट .bash_profile
केवल बैश लॉगिन शेल ( bash -l
) में सेट किया जाएगा । यदि आप इसमें अपना रास्ता डालते हैं तो .profile
यह आपके पूर्ण डेस्कटॉप सत्र के लिए उपलब्ध होगा। इसका मतलब है कि मेटासिटी भी इसका इस्तेमाल करेगी।
उदाहरण के लिए ~/.profile
:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
Btw, आप किसी प्रक्रिया के पाथ चर को उसके वातावरण को /proc/[pid]/environ
([pid] से संख्या के साथ बदलें ps axf
) देख कर देख सकते हैं। जैसे उपयोगgrep -z "^PATH" /proc/[pid]/environ
bash
लॉगिन शेल के रूप में या .profile
तो मौजूद है .bash_profile
या .bash_login
मौजूद नहीं है। से man bash
:
यह उस क्रम में ~ / .bash_profile, ~ / .bash_login, और ~ / .profile के लिए दिखता है, और पहले से मौजूद आदेशों को पढ़ता और निष्पादित करता है और जो पढ़ने योग्य है।
जानकारी के लिए , या संवादात्मक गैर-लॉगिन गोले के लिए नीचे दिए गए उत्तर देखें .pam_environment
, या प्रदर्शन प्रबंधकों के सत्र को प्रभावित करने के लिए .bashrc
स्क्रिप्ट डालकर /etc/profile.d/
या उपयोग करके सभी उपयोगकर्ताओं के लिए विश्व स्तर पर मूल्य निर्धारित करें /etc/X11/Xsession.d/
।
PATH="$HOME/bin:$PATH"
इसलिए मैं इसे इसमें जोड़ दूं ?
.bashrc
अपनी होम निर्देशिका में संपादित करें और निम्नलिखित पंक्ति जोड़ें:
export PATH="/path/to/dir:$PATH"
.bashrc
परिवर्तनों को प्रभावी करने के लिए आपको अपना या लॉगआउट / लॉगिन (या टर्मिनल को पुनरारंभ करना) स्रोत की आवश्यकता होगी । अपने स्रोत के लिए .bashrc
, बस टाइप करें
$ source ~/.bashrc
.bashrc
" कैसे करते हैं ? आप "टर्मिनल को पुनरारंभ कैसे करें"?
.bashrc
पर्यावरण चर सेट करने के लिए सही जगह नहीं है। वे में जाना चाहिए .profile
या .pam_environment
। देखें mywiki.wooledge.org/DotFiles
. .bashrc
नहीं .bashrc
:) या source .bashrc
उस मामले के लिए
सभी उपयोगकर्ताओं के लिए लागू स्थायी, सिस्टम-वाइड पर्यावरण चर को परिभाषित करने के लिए अनुशंसित स्थान इस प्रकार है:
/etc/environment
(जहां डिफ़ॉल्ट PATH
परिभाषित किया गया है)
यह डेस्कटॉप या कंसोल, सूक्ति-टर्मिनल या TTY, बारिश या चमक;) में काम करेगा।
संपादित करने के लिए, Alt+ दबाएँ F2और टाइप करें:
gksudo gedit /etc/environment
(या sudo
अपने पसंदीदा टेक्स्ट एडिटर का उपयोग करके फ़ाइल खोलें )
परिवर्तनों को प्रभावित करने के लिए, भागो . /etc/environment
। चूँकि यह फ़ाइल केवल एक साधारण स्क्रिप्ट है, यह PATH
पर्यावरण चर को नया पथ चलाएगी और असाइन करेगी । चलाने के लिए जाँच करें और PATH
लिस्टिंग में मूल्य देखें ।
सम्बंधित:
source /etc/environment
परिवर्तनों को पुनः लोड करने के लिए चलाने की आवश्यकता थी
मुझे लगता है कि Ubuntu में विहित तरीका है:
के तहत एक नई फ़ाइल बनाएँ /etc/profile.d/
sudo vi /etc/profile.d/SCRIPT_NAME.sh
वहां जोड़ें:
export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
और इसे निष्पादित करने की अनुमति दें
sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
पूर्ण newbies के लिए (जैसे मैं हूं) जो GUI के साथ अधिक आरामदायक हैं:
$HOME
फोल्डर खोलें ।.profile
और Open with Text Editor पर क्लिक करें ।PATH="$PATH:/my/path/foo"
।.profile
)।$PATH:
बिट को जोड़ना सुनिश्चित करना होगा जिसमें मौजूदा PATH परिभाषा शामिल है
केवल विशेष उपयोगकर्ताओं के लिए लगातार पर्यावरण चर उपलब्ध हैं। मैं उबंटू के आधिकारिक दस्तावेज की अत्यधिक अनुशंसा करता हूं।
https://help.ubuntu.com/community/EnvironmentVariables
उपरोक्त दस्तावेज़ीकरण का उल्लेख करते हुए, मैंने अपने Android SDK पथ-उपकरण को इसके द्वारा सेटअप किया है:
~/.pam_environment
घर निर्देशिका में फ़ाइल बनाने ।PATH DEFAULT=${PATH}:~/android-sdk-linux/tools
।उस लाइन को अपनी ~/.bashrc
फ़ाइल में रखें ।
जब भी आप टर्मिनल खोलते हैं तो यह खट्टा हो जाता है
EDIT : नीचे दी गई टिप्पणियों के आधार पर, अधिक सामान्य सेटिंग के लिए जो सभी गोले पर लागू होगी (जब आप हिट करते हैं Alt- F2एकता में), अपनी ~/.profile
फ़ाइल में लाइन जोड़ें । PATH
यदि आप एक टर्मिनल खोलते हैं , तो संभवतः दोनों को ऐसा नहीं करना चाहिए, क्योंकि पथ आपके वातावरण में दो बार जुड़ जाएगा ।
$HOME/.profile
व्यक्तिगत सेटिंग्स के लिए, या /etc/profile
सभी उपयोगकर्ताओं के लिए रास्ता तय किया है । लेकिन अगर यह केवल बकवास के लिए आवश्यक है, मुझे लगता है या तो काम करेगा।
~/.bashrc
, तो यह केवल आपके द्वारा खोले गए टर्मिनलों में उपलब्ध होगा। उदाहरण के लिए यदि आप Alt + F2 से टकराते हैं और उस dir से कमांड चलाने का प्रयास करते हैं, तो यह नहीं मिलेगा। आप में यह सेट करते हैं ~/.profile
या ~/.pam_environment
, गनोम सत्र (या जो भी डे आप का उपयोग करें) यह प्राप्त कर लेगा। PATH को लागू करने में ~/.bashrc
यह भी दोष है कि यदि आप किसी अन्य इंटरैक्टिव bash शेल से इंटरएक्टिव तरीके से bash खोलते / निष्पादित करते हैं, तो इसे कई बार जोड़ा जाएगा।
~/.profile
है कि व्यक्तिगत रास्तों के लिए सही है, हालांकि; उबंटू ~/bin
निर्देशिका को जोड़ता है । और मैं स्वीकार करता हूं कि मैंने थोड़े से तरीकों की संख्या पर थोड़ा सा अतिशयोक्ति की।
~/.profile
इस मामले में भी जाऊंगा ।
इसे सिस्टम पर सेट करने के लिए, लाइन export PATH=/path/you're/adding:$PATH
को अंत तक जोड़ें /etc/profile
।
केवल लॉग-इन उपयोगकर्ता के लिए निर्देशिका जोड़ने के लिए, उसी पंक्ति को इसमें जोड़ें ~/.bash_profile
।
इसे .bashrc में जोड़ना काम करेगा लेकिन मुझे लगता है कि आपके पथ चर सेट करने का अधिक पारंपरिक तरीका निम्नलिखित पंक्तियों को जोड़कर .bash_profile है।
PATH=$PATH:/my/path/foo
export PATH
इस सूत्र के अनुसार ऐसा प्रतीत होता है जैसे कि उबंटू का व्यवहार रेडहैट और क्लोन से थोड़ा अलग है।
.bashrc
, तो .bashrc
इसके बजाय इसे छड़ी । Ubuntu में GUI टर्मिनल लॉगिन गोले नहीं हैं, इसलिए .bash_profile
नहीं चलाया जाएगा।
.bash_profile
। यदि बैश को कोई नहीं मिलता है .bash_profile
(जब आप अंतःक्रियात्मक रूप से लॉग इन करते हैं), तो वह इसके लिए खोज करेगा .profile
और उसका उपयोग करेगा । डिफ़ॉल्ट रूप से, आप एक होगा .profile
और .bashrc
उबंटू में। और .profile
पर्यावरण चर सेट करने के लिए सही जगह है अगर हम pam_env की उपेक्षा करते हैं।
टर्मिनल में, cd
कोthe_directory_you_want_to_add_in_the_path
echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc
यह मेरा विचार नहीं था। मुझे इस ब्लॉग पर पथ निर्यात करने का यह तरीका मिला ।
sudo vi /etc/profile.d/SCRIPT_NAME.sh
वहाँ जोड़ें
export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
sudo nano /etc/profile.d/SCRIPT_NAME.sh
शुरुआती के लिए आसान है।
gksu gedit /etc/profile.d/SCRIPT_NAME.sh
और भी आसान है।
जब भी मैं BASH स्क्रिप्ट के अपने फ़ोल्डर को "इंस्टॉल" करता हूं, तो मैं $HOME/bin
उस फ़ोल्डर के लिए परीक्षण के पैटर्न का पालन करता हूं जो उबंटू के हाल के संस्करणों में सबसे अधिक .profile फ़ाइलों में है। मैंने एक परीक्षण सेट किया जो दिखता है
if [ -d "/usr/scripts" ]; then
PATH="/usr/scripts:$PATH"
fi
यह लगभग 100% समय के लिए काम करता है, और मुझे एक त्वरित "बदलें सभी" के साथ GUI पाठ संपादक में इसे बदलने के लिए स्वतंत्र छोड़ देता है, क्या मुझे कभी /scripts
अपने $HOME
फ़ोल्डर के करीब जाने का निर्णय लेना चाहिए । मैंने 6 उबंटू इंस्टॉल में ऐसा नहीं किया है, लेकिन "हमेशा कल" होता है। एस
BZT
अपने संपादित करने के लिए सुझाया गया तरीका PATH
से है /etc/environment
फ़ाइल
उदाहरण का आउटपुट /etc/environment
:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
उदाहरण के लिए, के नए पथ को जोड़ने के लिए /home/username/mydir
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"
फिर, अपने पीसी को रिबूट करें।
सिस्टम-वाइड वातावरण चर
पर्यावरण चर सेटिंग्स के लिए एक उपयुक्त फ़ाइल जो सिस्टम को संपूर्ण रूप से प्रभावित करती है (केवल एक विशेष उपयोगकर्ता के बजाय) / etc / पर्यावरण है। एक विकल्प /etc/profile.d निर्देशिका में उद्देश्य के लिए एक फ़ाइल बनाना है।
/ Etc / पर्यावरण
यह फ़ाइल विशेष रूप से सिस्टम-वाइड वातावरण चर सेटिंग्स के लिए है। यह एक स्क्रिप्ट फ़ाइल नहीं है, बल्कि असाइनमेंट एक्सप्रेशंस, प्रति पंक्ति एक है।
नोट: परिवर्तनीय विस्तार / etc / वातावरण में काम नहीं करता है।
अधिक जानकारी यहां पाई जा सकती है: एनवायरमेंटल वेरिएबल्स
अपना टर्मिनल खोलें, gedit .profile
निम्न लिखें और डालें:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
#the following line add Bin where you dont have a Bin folder on your $HOME
PATH="$PATH:/home/mongo/Documents/mongodb-linux-i686-2.2.2/bin"
टर्मिनल बंद और खुला, यह काम करना चाहिए।
यहां तक कि अगर सिस्टम स्क्रिप्ट इसका उपयोग नहीं करते हैं, तो किसी भी स्थिति में, $HOME/bin
जो पाथ पर्यावरण चर में एक पथ (जैसे ) जोड़ना चाहता है , एक का उपयोग करना चाहिए
PATH="${PATH:+${PATH}:}$HOME/bin"
(के बजाय PATH="$PATH:$HOME/bin"
), और
PATH="$HOME/bin${PATH:+:${PATH}}"
प्रस्तुत करने के बजाय (के बजाय PATH="$HOME/bin:$PATH"
)।
यह $PATH
शुरू में खाली होने पर स्फ़ूर्त अग्रणी / अनुगामी बृहदान्त्र से बचा जाता है , जिसके अवांछित प्रभाव हो सकते हैं।
उदाहरण के लिए देखें
उबंटू के ~/.bashrc
लिए निम्नलिखित पंक्ति जोड़ें और जोड़ें।
. ~/.bash_profile
फिर अपने .bash_profile को संपादित करें जैसा कि आपको चाहिए ....।
.bash_profile
ज़रूरत के अनुसार अपना संपादन कैसे करें "। वास्तव में मुझे क्या करने की आवश्यकता है .bash_profile
?
.profile
या .bash_profile
स्रोत होना चाहिए .bashrc
। कोई और रास्ता नही।