मेरे एक सर्वर पर, प्रॉम्प्ट [यूजर @ होस्ट पथ] है ... और मैं वास्तव में "टैब" को पथ को ऑटो-फिल करने के लिए धक्का दे सकता हूं।
लेकिन मेरे नए उबंटू सर्वर पर, यह सिर्फ एक डॉलर का संकेत है?
मेरे एक सर्वर पर, प्रॉम्प्ट [यूजर @ होस्ट पथ] है ... और मैं वास्तव में "टैब" को पथ को ऑटो-फिल करने के लिए धक्का दे सकता हूं।
लेकिन मेरे नए उबंटू सर्वर पर, यह सिर्फ एक डॉलर का संकेत है?
जवाबों:
चूंकि आप दो प्रश्न पूछ रहे हैं, मैं दोनों का उत्तर दूंगा।
क्योंकि आपने शेल का समर्थन नहीं किया है, या टैब पूर्णता चालू नहीं है।
इसे हल करने के लिए, आपको पहले यह पता लगाना होगा कि आपका शेल क्या है। जिस मशीन के खोल पर आप आनंद लेते हैं, उसे चलाएं
echo $SHELL
आप आम /bin/bash, या कुछ कम आम देख सकते हैं /bin/tcsh, /bin/zshया पूरी तरह से कुछ और।
अब, आप उबंटू मशीन पर अपना शेल बदल सकते हैं। उस मशीन पर, पहले यह सुनिश्चित कर लें कि जो शेल आप चाहते हैं वह मौजूद है। चूंकि शेल उबंटू मशीन पर उसी स्थान पर नहीं हो सकता है, जैसा कि अन्य पर है, टाइप करके स्थान की जांच करें
which bash
यह आपको खोल आप चाहते हैं के पथ, की तरह कुछ दे देंगे /bin/bash, /usr/bin/bashया /usr/local/bin/bash। बेशक, अगर आप पार्टी के अलावा किसी अन्य खोल चाहते हैं, आप कहूँगा which tcsh, which zsh, या इसी तरह।
यदि आपको कोई रास्ता दिखाई नहीं देता है, लेकिन इसके बजाय देखें bash not found, तो आपको उपयुक्त पैकेज स्थापित करने की आवश्यकता होगी, और फिर whichयह पता लगाने के लिए उपयोग करें कि शेल कहां स्थापित किया गया था।
अपने चुने हुए शेल के पथ के साथ, आप अंत में अपने शेल को चलाकर बदल सकते हैं
chsh -s /bin/bash
/bin/bashअपनी पसंद के शेल के लिए उपयुक्त पथ जो भी हो, के साथ बदलना ।
आपके शीघ्र पर्यावरण चर के $PS1कारण $PS2, और इसी तरह। गोले के बीच ये चीजें पोर्टेबल नहीं होती हैं, इसलिए संभावित उम्मीदवारों के लिए यहां कुछ लिंक दिए गए हैं:
bashएक व्यापक मैनुअल है , जिसमें बैश वेरिएबल्स (सहित PS1, और सी) और प्रिंटिंग प्रॉम्प्ट (जिसका वर्णन है PROMPT_COMMAND, लंबा नाम PS1) के पेज हैं। निम्नलिखित लाइन को अपने में जोड़ें~/.bashrc
export PS1='[\u@\h \w] '
tcshएक ऑनलाइन मैनुअल (सिर्फ उसका मैन पेज) है, जो शीघ्र पर्यावरण चर पर एक खंड के साथ है । निम्नलिखित लाइन को अपने में जोड़ें~/.tcshrc
set prompt='[%n@%m %~] '
zshएक है उपयोगकर्ता पुस्तिका , एक साथ संकेतों के लिए सरल गाइड , साथ ही एक पुस्तिका पर एक बहुत विस्तृत संदर्भ के साथ, शीघ्र विस्तार । निम्नलिखित लाइन को अपने में जोड़ें~/.zshrc
export PS1='[%n@%m %~] '
बैश केवल शेल नहीं है।
आपका मुद्दा एक .profile या .bashrc जो PS1 सेट करता है, न होने का एक साधारण मामला हो सकता है, या यह हो सकता है कि आपका लॉगिन शेल बिल्कुल भी नहीं है।
gnu readlineटैब पूरा होने जैसी चीजों के लिए बैश का उपयोग होता है । यह एक जटिल विषय है और रीडलाइन की अपनी प्रति-उपयोगकर्ता कॉन्फिग फ़ाइल भी है।
देखें man bash, man shऔर man 3 readline। बैश ने जवाब दिया --version। कई लिनक्स सिस्टम पर, /bin/shवास्तव में बैश नहीं है, लेकिन आमतौर पर एक अपंग संस्करण है ash।
dashइसके बजाय नहीं ash? मैंने सोचा कि मैं कुछ इस तरह से पढ़ता हूँ
मुझे लगता है, आप बैश का उपयोग नहीं कर रहे हैं, लेकिन श और आपका प्रॉम्प्ट ठीक से सेट नहीं है (यदि यह श के साथ भी संभव है)।
आप अपना वर्तमान शेल टाइप करके प्राप्त कर सकते हैं: echo $SHELL
यदि आप बैश शुरू करना चाहते हैं, तो बस टाइप करें bash
sh। गूंज $SHELLनामक एक पर्यावरण चर को मुद्रित करेगा SHELL। यह पर्यावरण चर केवल शेल को इंगित करता है, और केवल बैश द्वारा निर्धारित किया जाता है। यह निर्धारित करना लगभग बेकार है कि कौन सा शेल चल रहा है, क्योंकि यह केवल इंगित करता है, कमजोर रूप से, कि वर्तमान प्रक्रिया के कुछ माता-पिता को कोसना पड़ सकता है।
/bin/sh, हाँ। लेकिन मुझे पता है कि किसका नाम नहीं है sh। मैं के बारे में सोच सकते हैं ash, ksh, csh, bash, zsh, और tcsh। पहले वाला linux और NetBSD पर सामान्य / बिन / श है, अंतिम सामान्य FreeBSD शेल है, और अन्य वैकल्पिक शेल हैं। कई डेस्कटॉप वातावरण, राख के रूप में / बिन / श को छोड़ते समय, उपयोगकर्ताओं को शेल को बदलने के लिए बदलते हैं।
shबॉर्न शेल है। en.wikipedia.org/wiki/Bourne_shell कुछ सिस्टम (सोलारिस) अभी भी बॉर्न शेल के एक संस्करण के साथ आते हैं, जो कि पुन: कार्यान्वयन (राख, डैश, बैश, ksh, zsh) में से एक की नकल नहीं है।
आपको अपनी लॉगिन स्क्रिप्ट में PS1 नामक एक चर सेट करना होगा, उदाहरण के लिए / etc / प्रोफाइल या ~ / .bashrc। यह आपके वितरण पर निर्भर करेगा।
उदाहरण: http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html
pwdवर्तमान कार्यशील निर्देशिका का नाम प्रिंट करने के लिए हमेशा टाइप कर सकते हैं । और क्या आप कह रहे हैं कि टैब-पूर्णता भी काम नहीं कर रही है? (मेरे द्वारा उपयोग की जाने वाली कुछ मशीनों पर, मुझे वह छोटा प्रॉम्प्ट तभी मिलता है जब मैं रूट के रूप में लॉगिन करता हूं, और मैं एक अच्छी चेतावनी के स्थान पर खुशी से छोड़ देता हूं। एक शायद ही कभी, यदि कभी भी रूट के रूप में लॉगिन करने की आवश्यकता होती है: आप रूट का उपयोग नहीं कर रहे हैं। , आप हैं?)