टर्मिनल ऑटो कभी-कभी `सेवाओं` कमांड के लिए कुछ भी क्यों नहीं सुझाता है?


17

कभी-कभी, जब मैं टर्मिनल पर एक कमांड टाइप करता हूं, तो टर्मिनल का स्वत: पूर्ण काम नहीं करता है, भले ही मेरी कमांड गलत न हो।

उदाहरण के लिए, इस पर गौर करें: sudo service vsftpd statussudo और सर्विस में कोई समस्या नहीं है। मेरा मतलब है, जब आप लिखते हैं सूद + tabटर्मिनल सुझाव है कि आप sudo या मैं टाइप servi + tabकि टर्मिनल पूरा करने के लिए सेवा । लेकिन vsftpd के लिए मुझे कोई सुझाव नहीं मिलता है। क्या कहने का कोई तरीका है, "टर्मिनल, कृपया मुझे कोई सुझाव बताएं !!?"।

जवाबों:


28

जिस कार्य को स्वतः पूर्ण करने का कार्य किया जाता है वह bash-completionपैकेज कार्य में शेल लिपियों की कितनी अच्छी तरह से कार्य करता है ।

Ubuntu 14.04 में, वह स्क्रिप्ट जो इसके लिए पूर्णता को संभालती serviceहै, में है /usr/share/bash-completion/bash_completion। यह फ़ाइलों के रूप में /etc/rc.d/init.dऔर /etc/init.dके आउटपुट में सेवा नामों की तलाश करता है systemctl list-units --full --all

लेकिन vsftpdपैकेज को स्थापित करने में कोई भी फाइल नहीं डाली गई है /etc/init.d, क्योंकि इसे systemd-फाइंड किया गया है ; यह एक विन्यास फाइल डालता है /etc/systemd/system/vsftpd.servicesystemctl list-unitsउस फ़ाइल को ढूंढेगा यदि इस तथ्य के लिए नहीं कि वर्तमान समय में उबंटू, एक systemctlकमांड शामिल नहीं करता है ।

तो, इस समय, आपको स्वतः पूर्णताएँ नहीं मिलेंगी service vsftpd, लेकिन आप अधिकांश अन्य सेवाओं के लिए, क्योंकि उनकी विन्यास फाइल अंदर हैं /etc/init.d


इस उत्तर को खोजने वालों के लिए: 14.xx, 16.xx 18.xx के तहत सेवाओं को पूरा करने (और समय / खोजने के लिए) हमेशा एक समस्या रही है: अच्छा उदाहरण: sudo systemctl (स्थिति या रोक) lightd(TAB / डबल TAB) ( मतलब पूरा 'lightdm.service' यह मानते हुए कि आपने इसे स्थापित किया है - सक्रिय / चल रहा है या नहीं) यह svc दोनों यूनिट आउटपुट और /etc/init.dमेरी मशीन पर है। मुझे अन्य सेवाओं पर भी यही मुद्दा मिला है। एक बग (?) भी है जो इसे पूर्णता पर एक लंबा समय लेता है। देखा यह 10 + सेकंड बैठते हैं मुझ पर beeping से पहले / नहीं मिला। github.com/systemd/systemd/issues/7185
bshea

9

जब कई संभावित सुझाव tabहोंगे , तो कोई सुझाव नहीं देगा। tab tab(डबल टैब) का उपयोग करना सभी संभावित सुझावों की एक सूची तैयार करेगा।


मैंने इस्तेमाल किया: टैब + टैब vsftpd के लिए काम नहीं करता है। आप और रिनविंड का सुझाव उदाहरण के लिए काम करता है su + tab + टैब। लेकिन vsftpd के लिए काम नहीं करता है।
मोहम्मद रजा रेजवानी

आप परीक्षण कर सकते हैं कि पहले sudo से छोटे प्रोग्राम vsftpd स्थापित करें apt-get install vsftpd और उसके बाद टैब + टैब आज़माएं
मोहम्मद रज़ा रेजवानी

2
टैब + टैब मापदंडों के मामले में काम नहीं करता है। में sudo service vsftpd status, vsftpd सेवा का एक पैरामीटर है, और इसलिए इसे डबल टैब के साथ नहीं मिलेगा। इस बिंदु पर ओपी सही है।
जोस

2
@ जॉस लेकिन अन्य सेवाएँ जैसे apache2और networkingस्वतः पूर्ण। वे कैसे अलग हैं?
दान

@ dan08 मैं दुरुस्त खड़ा हूं। इसके अलावा, sudo service networking tab tabकी पेशकश करेगा force-reload reload restart start stop। इसलिए यह मेरे विचार से भी बेहतर काम करता है।
जोस

6

vsftpd में संभवतः 1 से अधिक विकल्प हैं। tabसंभावनाओं को देखने के लिए दो बार।

उदाहरण: शो के liसाथ tabtab:

libnetcfg          line               lintian-info       lispmtopgm
libreoffice        linguist           linux32            listres
lightdm            link               linux64            
lightdm-session    lintian            linux-boot-prober  

4

आप अपना खुद का निर्माण कर सकते हैं!

जैसे: complete -f -r -c su -d 'Username' -a '(cat /etc/passwd|cut -d : -f 1)'यदि आपके पास बैश में है suऔर टैब / टैब दबाएं तो यह आपको सभी उपयोगकर्ताओं को देता है, हाँ। यहाँ देखें


0

मैंने पाया है कि systemctl list-units --full --allअक्षम सेवाओं की सूची नहीं है, इसलिए स्वतः पूर्णता नहीं है

# check if enabled
systemctl is-enabled <service_name>
# enable
systemctl enable <service_name>

0

सेवा कमांड "systemctl सूची-इकाइयों --full --all" पर निर्भर करती है, और उन सेवाओं को सूचीबद्ध नहीं करती है जो शुरू करने में असमर्थ हैं (या ऊपर के रूप में अक्षम हैं), इस बात की पुष्टि करने के लिए कि क्या आप इस मुद्दे को चला सकते हैं।

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