Trước đây, tôi đã cài đặt docker trên nhiều máy và tính năng tự động hoàn thành luôn hoạt động tốt. Thật kỳ lạ, trong một docker mới cài đặt trên một Ubuntu 20.04.2 LTS (Focal Fossa) máy ảo, khi tôi nhấn tab, không có gì xảy ra. Tôi đã thử nó trên thiết bị đầu cuối WSL của mình và nếu tôi gõ sudo docker bắt đầu g
và sau đó tab, nó tự động hoàn thành sudo docker bắt đầu gift_hofstadter
. Tuy nhiên, cả hai chỉ có có hai tệp này trong:
# ls /etc/bash_completion.d/
lời nhắc git apport_completion
Vì vậy, tôi không hiểu tại sao tôi phải thêm một /etc/bash_completion.d/docker
tập tin như một mạo từ gợi ý. Làm cách nào để sửa nó với những thay đổi tối thiểu? Để rõ ràng, tính năng tự động hoàn thành bash thông thường hoạt động tốt, vấn đề là dành riêng cho docker. Cảm ơn.
Cập nhật: Cài đặt người bán rong và cùng một vấn đề tự động hoàn thành tồn tại mặc dù tôi không nghĩ rằng nó có liên quan.
Tôi đã sao chép docker.sh này tập tin để /etc/bash_completion.d/
và khởi động lại vỏ. Bây giờ các lệnh docker tự động hoàn thành, ví dụ: docker sta [tab]
mở rộng đến docker bắt đầu
. Ngoài ra nếu tôi làm khởi động docker f
nó mở rộng ra khởi động docker f36da5e5a9a8
tức là ID vùng chứa.
Tuy nhiên, nó sẽ không mở rộng tên vùng chứa, chẳng hạn như băng giá_tu
khi tôi làm docker bắt đầu từ [tab]
. Mặc dù tôi đánh giá cao giải pháp này, nhưng đây là một lý do khác khiến tôi không muốn tìm kiếm các tập lệnh của bên thứ ba và thích trải nghiệm vượt trội mà tôi đã thấy trên các bản cài đặt mới trước đây.