Jestem na Debian Jessie 8.6. Zauważyłem, że apt-get
dostaje oczekiwane automatyczne uzupełnianie bash po naciśnięciu klawisza tab dla pakietów i polecenia, ale gdy próbuje się z apt
nim korzystać, nie działa. Pamiętam, że korzystałem z Xubuntu 16.04, gdzie działało, więc dziwne jest to, że tutaj nie działa. Czy istnieje sposób, aby włączyć to również dla polecenia apt
? Jeśli tak to jak?
debian
apt
autocomplete
Andrea
źródło
źródło
Odpowiedzi:
Debian nie ma zainstalowanej i włączonej funkcji „bash-complete”.
Aby to naprawić, uruchom (jako root):
Następnie masz dwie opcje. Możesz (1) włączyć go dla każdego użytkownika lub (2) włączyć globalnie.
Jeśli chcesz włączyć to tylko dla swojego użytkownika, edytuj
~/.bashrc
- dodaj:Aby wypróbować bez wylogowania i ponownego zalogowania, uruchom:
Lub otwórz nową powłokę. Następnie spróbuj użyć tab-uzupełniania z apt. Ta kropka i spacja na początku (
.
) są takie same, jak użyciesource
słowa kluczowego w bash, ale są bardziej przenośne.Jeśli chcesz, aby działał, gdy
su
zalogowałeś się na konto root, zrób to samo w katalogu głównym roota (zazwyczaj/root
).Aby włączyć go globalnie, wykonaj zmiany od (1) w pliku
/etc/bash.bashrc
.Dla każdego, kto zastanawia się dlaczego to działa, że
.
z przodu/etc/bash_completion
ma nie odnoszą się do bieżącego katalogu, ponieważ zawiera spacje wokół niego. Zamiast tego powoduje, że zawartość danego pliku jest oceniana w aktualnie uruchomionej powłoce, zamiast być uruchamiana w nowej podpowłoce. Tutaj jest znormalizowany.W Bash
.
można to zastąpić poleceniemsource
, ale nie jest to standaryzowane przez POSIX i jest mniej przenośne, więc staram się odciągać ludzi od korzystania z niego. W tym przypadku, ponieważ jest to specjalnie program do rozszerzania bash, a nie coś, co musi działać w powłoce Bourne'aksh
, możesz swobodnie zastąpićsource
czytelność.źródło
W Debian 9 Stretch po prostu edytuj /etc/bash.bashrc i odkomentuj:
źródło
Skopiuj ten plik konfiguracyjny z Ubuntu: / usr / share / bash-complete / completions / apt do tego samego katalogu w Jessie. Możesz również pobrać plik tutaj: http://pastebin.com/PRBMt3an
źródło
Jak to rozwiązałem
Miałem problemy z autouzupełnianiem
wget
podczas próby autouzupełnianiaapt-get install wg[TAB][TAB]
i udało mi się go rozwiązać, usuwając--no-generate
parametr z poniższych much:Warto wspomnieć, że te pliki są dostępne dopiero po instalacji
bash-completion
.--no-generate
Parametr mam na myśli widać w wierszu poniżej, ale usunięte wszystkie--no-generate
, nie tylko z tej linii: https://github.com/scop/bash-completion/blob/master/completions/apt-get# L28Jak doszedłem do tego punktu?
Dotarłem do tego punktu po uruchomieniu
set -v
wcześniejapt-get install wg[TAB][TAB]
, co pokazało, że wykonane polecenie to:a wynik był błędem:
Kiedy wykonałem
apt-cache pkgnames wg
bez--no-generate
poprawnie otrzymałem listę do autouzupełniania:Mam nadzieję że to pomoże.
źródło
Problem jest najprawdopodobniej spowodowany przez
ustawienia w
/etc/apt/apt.conf.d
. W moim przypadku pochodzi on z obrazu Debian Docker, patrz https://github.com/debuerreotype/debuerreotype/blob/799473bee3d388cf00bd55221b38a9d58bd6a2ba/scripts/debuerreotype-minimizing-configźródło