Ich bin auf Debian Jessie 8.6. Mir ist aufgefallen, dass apt-get
die erwartete Bash-Autovervollständigung beim Drücken der Tabulatortaste für Pakete und Befehle auftritt, aber wenn ich versuche, sie damit zu verwenden apt
, funktioniert sie nicht. Ich erinnere mich, dass ich xubuntu 16.04 dort verwendet habe, wo es funktioniert hat. Deshalb finde ich es seltsam, dass es hier nicht funktioniert. Gibt es eine Möglichkeit, es auch für den Befehl zu aktivieren apt
? Wenn das so ist, wie?
debian
apt
autocomplete
Andrea
quelle
quelle
Antworten:
Debian wird nicht mit installierter und aktivierter Bash-Vervollständigung ausgeliefert.
Um dies zu beheben, führen Sie (als root):
Dann haben Sie zwei Möglichkeiten. Sie können es entweder (1) für jeden Benutzer einzeln oder (2) global aktivieren.
Wenn Sie es nur für Ihren Benutzer aktivieren möchten, bearbeiten Sie
~/.bashrc
- fügen Sie Folgendes hinzu:Führen Sie Folgendes aus, um es zu versuchen, ohne sich abzumelden und wieder anzumelden:
Oder öffne eine neue Shell. Versuchen Sie dann, die Tabulatorvervollständigung mit apt zu verwenden. Dieser Punkt und das Leerzeichen am Anfang (
.
) entsprechen der Verwendung dessource
Schlüsselworts in bash, sind jedoch portabler.Wenn Sie möchten, dass es funktioniert, wenn Sie
su
sich im Root-Konto befinden, führen Sie dasselbe (normalerweise/root
) im Stammverzeichnis des Root aus .Um es global zu aktivieren, nehmen Sie
/etc/bash.bashrc
stattdessen die Änderungen von (1) in der Datei vor.Für jeden, der fragen ist , warum das funktioniert, die
.
vor/etc/bash_completion
sich nicht in das aktuelle Verzeichnis beziehen, da es Räume um sie hat. Stattdessen wird der Inhalt der angegebenen Datei in der aktuell ausgeführten Shell ausgewertet, anstatt in einer neuen Subshell ausgeführt zu werden. Es ist hier standardisiert.In Bash
.
kann dies durch den Befehl ersetzt werdensource
, dies ist jedoch nicht durch POSIX standardisiert und ist weniger portabel, so dass ich dazu neige, Leute davon abzuhalten, es zu verwenden. In diesem Fallksh
können Sie diesource
Lesbarkeit durch ein anderes Programm ersetzen , da es sich speziell um ein Programm zum Erweitern von Bash handelt, und nicht um ein Programm, das in einer Bourneshell ausgeführt werden muss .quelle
In Debian 9 Stretch bearbeiten Sie einfach /etc/bash.bashrc und entfernen Sie das Kommentarzeichen:
quelle
Kopieren Sie diese Konfigurationsdatei von Ubuntu: / usr / share / bash-completion / completions / apt in dasselbe Verzeichnis in Jessie. Sie können die Datei auch hier herunterladen : http://pastebin.com/PRBMt3an
quelle
Wie ich es gelöst habe
Ich hatte Probleme mit der automatischen Vervollständigung beim Versuch, sie automatisch
wget
zu vervollständigen,apt-get install wg[TAB][TAB]
und konnte sie lösen, indem ich den--no-generate
Parameter aus den nachstehenden Zeilen entfernte:Erwähnenswert ist, dass diese Dateien erst nach der Installation verfügbar sind
bash-completion
.Der
--no-generate
Parameter, auf den ich mich beziehe, ist in der folgenden Zeile zu sehen, aber ich habe ALLE entfernt--no-generate
, nicht nur aus dieser Zeile: https://github.com/scop/bash-completion/blob/master/completions/apt-get# L28Wie bin ich zu diesem Punkt gekommen?
Ich kam zu diesem Punkt, nachdem ich
set -v
zuvor ausgeführt hatteapt-get install wg[TAB][TAB]
, was zeigte, dass der ausgeführte Befehl war:und die Ausgabe war ein Fehler:
Wenn ich
apt-cache pkgnames wg
ohne ausgeführt habe, habe--no-generate
ich die Liste für die automatische Vervollständigung korrekt erhalten:Hoffe das hilft.
quelle