मैं टर्मिनल पर दिखाए गए वर्तमान निर्देशिका पथ को छोटा कैसे करूं?


17

यदि मैं एक गहरी निर्देशिका में हूं, तो आइए बताते हैं:

~/Desktop/Dropbox/School/2017/C/A3/

तब जब मैं टर्मिनल खोलता हूं, तो यह कहता है

bob@bob-ubuntu:~/Desktop/Dropbox/School/2017/C/A3/$

और फिर मैं अपनी आज्ञा लिखता हूं। यह बहुत लंबा है, और टर्मिनल में मेरे द्वारा लिखी गई प्रत्येक पंक्ति अगली पंक्ति में जाती है। मैं जानना चाहता हूं कि क्या कोई रास्ता है ताकि यह केवल मेरी वर्तमान निर्देशिका को प्रदर्शित करे। मैं इसे प्रदर्शित करना चाहता हूं:

bob@bob-ubuntu: A3/$

इस तरह यह बहुत स्पष्ट है, और हमेशा मैं pwdअपनी पूरी निर्देशिका देख सकता हूं। मैं नहीं चाहता कि टर्मिनल में पूरी निर्देशिका दिखाई दे क्योंकि इसमें बहुत अधिक स्थान है।

जवाबों:


12

आपको PS1अपनी शेल स्टार्टअप फ़ाइल (शायद .bashrc) में संशोधित करने की आवश्यकता है ।

यदि यह पहले से ही है, तो इसकी सेटिंग में वह होगा \w, जो आपकी कार्यशील निर्देशिका देता है। इसे \W(ऊपरी मामले) में बदलें । लॉग आउट करें और फिर से करें, या करें:

. .bashrc

(या जो भी आपकी फ़ाइल है)।

यदि यह नहीं है, तो कुछ जोड़ें:

PS1='\u@\h: \W:\$'

करने के लिए .bashrcया जो कुछ भी। को फिर से देखें PS1में bashमैन्युअल पृष्ठ अधिक विचार प्राप्त करने के।

सावधान रहे; bashएक से अधिक आरंभीकरण फ़ाइल का उपयोग कर सकते हैं, जैसे .bashrcऔर .bash_profile; यह हो सकता है कि PS1सिस्टम-वाइड में सेट किया गया हो। लेकिन आप इसे अपनी खुद की फाइलों में ओवरराइड कर सकते हैं।


24

बैश 4 के बाद से, कमांड-लाइन में डायरेक्टरी की गहराई को छोटा करने का सीधा तरीका आपकी bashrc फाइल में नीचे कमांड का उपयोग कर रहा है। बस अपने टर्मिनल को फिर से खोलने के लिए याद रखें और संख्या (यानी 1) को दिखाने के लिए निर्देशिका की गहराई को निर्दिष्ट करता है।

PROMPT_DIRTRIM = 1


4
यही वह है जिसकी तलाश में मैं हूं। export PROMPT_DIRTRIM=3अपने .bashrcबीच की तरह कुछ सेट करना \Wऔर बीच का सही मैदान है \w। देखें: gnu.org/software/bash/manual/html_node/Bash-Variables.html
spkane

3

मान लें कि आप बैश का उपयोग कर रहे हैं, तो शीघ्र स्ट्रिंग (चर PS1) को बदल दें, ताकि \Wइसके स्थान पर हो \w

उदाहरण के लिए यदि आपका PS1 वर्तमान में है \u@\h:\w\$, तो इसे सेट करें\u@\h:\W\$

इसे स्थायी बनाने के लिए, आपको इसे अपने बैश स्टार्टअप फ़ाइलों में बदलना होगा - जैसे ~/.bash_profileया ~/.bashrc

पूर्ण विवरण और बैकस्लैश-बच गए विशेष वर्णों की एक सूची देखें man bashऔर खोजें PROMPTING


मेरे पास PS1 के 4 उल्लेख हैं क्या मैं सभी 4 को बदलता हूं?
के स्प्लिट एक्स

4 उल्लेख कहां है? ~ में / .bash_profile यह \wPS1 में सभी उदाहरणों को बदलने के लिए कोई नुकसान नहीं करना चाहिए \W। या आप स्क्रिप्ट के तल पर जो कुछ भी आप चाहते हैं, उसके लिए आप बस संकेत सेट कर सकते हैं।
कैस

1

इस स्थिति में आपको PS1 को संपादित करना होगा ,

इसके लिए \w, आपके पास एक कमांड या एक वैरिएबल होगा जो छोटा रास्ता दिखाता है:

मूल PS1

PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$'

इसे बदलो

PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]${PWD##*/}\[\033[00m\]\$'

ध्यान दें कि यदि आप अपने घर में हैं तो यह उपयोगकर्ता नाम डाल देगा ~

इससे बचने के लिए आपको $ {PWD ## * /} जैसे कुछ आदेशों की आवश्यकता होगी

if [[ "${PWD}" == "${HOME}" ]] ; then printf \~; else echo -n ${PWD##*/}; fi

नया PS1 निम्नलिखित की तरह दिखेगा

PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]`if [[ "${PWD}" == "${HOME}" ]] ; then printf \~; else echo -n ${PWD##*/}; fi`\[\033[00m\]\$'

उफ़ जब मैं दुनिया मैं noIdea था बचाने के लिए कोशिश कर रहा हूँ | forgoten \ डब्ल्यू


1

यह सभी shगोले के लिए पोर्टेबल है ।

PS1अपने शेल स्टार्टअप फ़ाइलों में से एक में असाइन करें :

PS1='${PWD##*/} $ '

प्रॉम्प्ट जैसा दिखेगा

dir $

dirवर्तमान निर्देशिका का आधार नाम कहां है।

$PWDचर वर्तमान निर्देशिका पथ है, और ${PWD##*/}करने के लिए और पिछले सहित सब कुछ हटेगा /कि रास्ते में।

एकल उद्धरण असाइनमेंट के समय चर प्रतिस्थापन का मूल्यांकन करने वाले शेल फॉर्म को रोकता है ( $PS1प्रत्येक बार प्रॉम्प्ट प्रदर्शित होने पर मूल्य का मूल्यांकन किया जाएगा)।

PS1चर के रूप में यह केवल वर्तमान खोल द्वारा प्रयोग किया जाता है निर्यात नहीं किया जाना चाहिए।


0

https://github.com/chrissound/SodiumSierraStrawberry

आपको एक पथ को छोटा करने देता है जैसे:

से: / घर / सोडियम / प्रोजेक्ट्स / पर्सनल / सिएरा / सुपर / लॉन्ग / पाथ / होलीवाकाडो

To: »प्रोजेक्ट्स / सिए… / सुपर… / लोन… / पैट… / होलीवाकाडो /

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