मैं $ होम के अलावा किसी निर्देशिका में सभी शेल सत्र कैसे शुरू करूं?


53

जब मैं उबंटू में अपना गैर-लॉगिन खोल खोलता हूं, तो मेरी वर्तमान कार्यशील निर्देशिका /home/user_name(मेरा $HOMEपर्यावरण चर) है, लेकिन मैं इसे इस तरह बदलना चाहता हूं कि जब मैं अपना टर्मिनल शुरू करता हूं तो मैं किसी अन्य निर्देशिका में हूं।

मैंने पढ़ा है कि जब मैं उबंटू में अपना टर्मिनल शुरू करता हूं तो एक .bashrcफाइल खट्टी हो जाती है। तो मैंने जोड़ा

export HOME=/home/user_name/Documents 

मेरी .bashrcफाइल पर। अब, जब मैं अपना टर्मिनल खोलता हूं तो मैं अभी भी /home/user_nameडायरेक्टरी में हूं ।

मेरे द्वारा इसे कैसे बदला जा सकता है?


क्या यह मदद करता है? askubuntu.com/a/75223/212231
मार्क प्लॉटनिक

3
ऐसा नहीं करने पर भी विचार हो सकता है। UNIX का डिज़ाइन पूर्वजों द्वारा आपके द्वारा ज्ञात कुछ भी नहीं सौंपा गया था।
सीन डी

जवाबों:


52

सबसे पहले, उस लाइन को अपने से हटा दें .bashrc। इसके साथ खेलने का तरीका नहीं है $HOME, यह चर हमेशा आपके घर निर्देशिका को इंगित करेगा और आप इसे बदलना नहीं चाहते हैं ताकि आपके गोले एक अलग स्थान पर शुरू हों।

मुझे यकीन है कि ऐसा करने का एक और अधिक सुंदर तरीका होगा लेकिन एक अस्थायी समाधान के रूप में आप बस इस लाइन को अपने साथ जोड़ सकते हैं .bashrc:

cd ~/Documents 

चूंकि हर बार जब आप एक नया गैर-लॉगिन शेल (नया टर्मिनल खोलना) शुरू करते हैं, तो cdकमांड को निष्पादित किया जाएगा और आपकी ~/Documentsइच्छा के अनुसार आपके टर्मिनल शुरू हो जाएंगे ।


ध्यान दें कि यह सभी गैर-लॉगिन इंटरैक्टिव गोले को प्रभावित करेगा (और यदि आप अपने bash_profile से अपना bashrc स्रोत करते हैं तो लॉगिन करें) और sshd द्वारा शुरू किए गए गैर-इंटरैक्टिव वाले।
स्टीफन चेजलस

@ स्टीफनचेलजेस क्या आपको यकीन है? आमतौर पर एक [[ -z "$PS1" ]] && exitगार्ड होता है जिसके शीर्ष पर .bashrcइसे गैर-संवादात्मक सत्रों के लिए रोकना चाहिए।
मार्टिन यूडिंग

2
@queueoverflow आमतौर पर? किस ऑपरेटिंग सिस्टम में? किस वितरण में? डेबियन, SuSe या CentOS पर नहीं। वास्तव में, मुझे लगता है कि मैंने केवल उबंटू को देखा है।
terdon

@terdon मैंने इसे उबंटू पर देखा और सोचा कि यह सामान्य मामला था।
मार्टिन यूडिंग

20

टर्मिनल अपने माता-पिता से विरासत में मिली वर्किंग डायरेक्टरी में शुरू होगा।

हालांकि, कुछ इसे कॉन्फ़िगरेशन सेटिंग्स के माध्यम से ओवरराइड करने की अनुमति देते हैं।

इसके साथ gnome-terminal, आप अपनी प्रोफ़ाइल को संपादित कर सकते हैं, मेरे शेल के बजाय कस्टम कमांड पर टिक कर सकते हैं और इसे बना सकते हैं:

sh -c 'cd ~/Documents; exec "${SHELL:-sh}"'

1

यहाँ मैं अपने में डाल दिया है ~/.bash_profile:

alias curDir="pwd | sed -e 's/ /\\ /'"
alias save='echo `curDir` > ~/.saved_dir'
alias saved='cd `cat ~/.saved_dir`'
saved

और मैं हर समय इस पर निर्भर हूं। असल में, जब मैं किसी प्रोजेक्ट पर काम कर रहा होता हूं, तो मैं इसके लिए saveएक मुख्य निर्देशिका होता हूं और फिर हर बाद का सत्र शुरू होता है। फिर जब मैं प्रोजेक्ट या जो कुछ भी बदलूंगा, मैं बस saveकहीं और करूंगा ।

बेहतर तरीके की तलाश में मुझे यह सवाल मिला, लेकिन मुझे जो मिला है वह एक विशेष निर्देशिका को हार्डकॉन्ड करने की तुलना में मेरे लिए बेहतर है।


यह git bash में भी अच्छा काम करता है। बस बैश शेल को पुनरारंभ करने या फ़ाइल को बदलने के बाद (मुझे लगता है) "स्रोत ~ / .bash_profile" का उपयोग करना याद रखें।
टिम

0

उन लोगों के लिए जो .bashrcफ़ाइल देख रहे हैं , आम तौर पर यह घर निर्देशिका में छिपी हुई फ़ाइल है।

इसे खोजने के लिए:

अपना टर्मिनल खोलें और होम डायरेक्टरी पर जाएँ, और फिर:

ls -al

सभी छिपी हुई फ़ाइलों को दिखाने के लिए। अब आप अपनी .bashrcफाइल देख पाएंगे ।

डिफ़ॉल्ट निर्देशिका को बदलने के लिए

  1. .bashrcकमांड दर्ज करके अपने टेक्स्ट एडिटर में फ़ाइल खोलें :

    gedit .bashrc
  2. अपने कमांड को अंतिम में जोड़कर इस फाइल को संपादित करें, जैसे:

    cd ~/YourDirectoryName
  3. फ़ाइल को सहेजें और टर्मिनल को पुनरारंभ करें।


सवाल यह नहीं पूछता है कि कैसे संपादित करें .Bashrc, वह पहले ही कर चुका है। और आपका उत्तर दो साल पहले से @ टेर्डन के उत्तर का सिर्फ एक दोहराव है।
क्यूबेरिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.