ทำไมบางครั้งเทอร์มินัลอัตโนมัติจึงไม่แนะนำอะไรเลยสำหรับคำสั่ง `services '


17

บางครั้งเมื่อฉันพิมพ์คำสั่งบนเทอร์มินัลการเติมข้อความอัตโนมัติของเทอร์มินัลไม่ทำงานแม้ว่าคำสั่งของฉันจะไม่ผิด

ตัวอย่างเช่นลองดูที่: sudo service vsftpd statussudo และบริการไม่มีปัญหาใด ๆ ผมหมายถึงเมื่อคุณพิมพ์sud + 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.dsystemctl list-units --full --all

แต่การติดตั้งvsftpdแพคเกจไม่ได้ใส่ไฟล์ใด ๆ เข้าไป/etc/init.dเพราะมันได้รับการsystemdแก้ไขแล้ว; มันทำให้ไฟล์ config /etc/systemd/system/vsftpd.serviceใน systemctl list-unitsจะพบไฟล์นั้นหากไม่ใช่เพราะ Ubuntu ในปัจจุบันไม่ได้มีsystemctlคำสั่ง

ดังนั้นในขณะที่คุณจะไม่ได้รับอัตโนมัติสำเร็จservice vsftpdแต่คุณจะสำหรับการให้บริการอื่น ๆ ส่วนใหญ่ตั้งแต่ config /etc/init.dไฟล์ของพวกเขาอยู่ใน


สำหรับผู้ที่พบคำตอบนี้: บริการค้นหาเสร็จสมบูรณ์ (และเวลาในการค้นหา / แยกวิเคราะห์) มักเป็นปัญหาภายใต้ 14.xx, 16.xx 18.xx: ตัวอย่างที่ดี: sudo systemctl (สถานะหรือหยุด) lightd(TAB / Double TAB) ( ความหมายสมบูรณ์ 'lightdm.service' สมมติว่าคุณได้ติดตั้ง - ใช้งาน / ทำงานหรือไม่) svc นี้มีทั้งในหน่วยผลลัพธ์และ/etc/init.dในเครื่องของฉัน ฉันพบปัญหาเดียวกันกับบริการอื่นเช่นกัน นอกจากนี้ยังมีข้อผิดพลาด (?) ที่ใช้เวลานานในการทำสำเร็จ เห็นไหมว่านั่ง 10+ วินาทีก่อนจะส่งเสียงบี๊บใส่ฉัน / ไม่พบ github.com/systemd/systemd/issues/7185
bshea

9

เมื่อมีข้อเสนอแนะที่เป็นไปได้หลายข้อtabจะไม่สร้างข้อเสนอแนะใด ๆ การใช้tab tab(แท็บคู่) จะสร้างรายการคำแนะนำที่เป็นไปได้ทั้งหมด


ฉันใช้: แท็บ + แท็บไม่ทำงานสำหรับ vsftpd ข้อเสนอแนะของคุณและ Rinzwind นั้นใช้ได้กับ su + tab + tab แต่สำหรับ vsftpd ไม่ทำงาน
Mohammad Reza Rezwani

คุณสามารถทดสอบว่าติดตั้งโปรแกรมขนาดเล็ก vsftpd เป็นครั้งแรกโดย sudo apt-get install vsftpd จากนั้นลองใช้แท็บ + แท็บ
Mohammad Reza Rezwani

2
tab + tab ไม่ทำงานในกรณีของพารามิเตอร์ ในsudo service vsftpd statusvsftpd เป็นพารามิเตอร์ของบริการและดังนั้นจะไม่พบกับแท็บสองครั้ง OP ถูกต้อง ณ จุดนี้
Jos

2
@Jos แต่บริการอื่น ๆ เช่นapache2และnetworkingเติมข้อความอัตโนมัติ แตกต่างกันอย่างไร
ด่าน

@ dan08 ฉันยืนแก้ไข นอกจากนี้จะนำเสนอsudo service networking tab tab force-reload reload restart start stopดังนั้นมันจึงทำงานได้ดีกว่าที่ฉันคิด
Jos

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

คำสั่ง services อาศัย "systemctl list-units --full --all" และไม่แสดงรายการบริการที่ไม่สามารถเริ่มต้น (หรือปิดการใช้งานตามข้างต้น) เพื่อยืนยันว่าคุณประสบปัญหานี้หรือไม่

systemctl status <service_name>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.