Auto-Vervollständigen: bash-completion funktioniert nicht mehr

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
dnoob
Beiträge: 160
Registriert: 12.01.2019 18:53:28

Auto-Vervollständigen: bash-completion funktioniert nicht mehr

Beitrag von dnoob » 22.12.2020 14:18:50

Hi,
aus irgendeinem Grund funktioniert das Autovervollständigen mit der Tab-Taste im Terminal nicht mehr. Ich habe

Code: Alles auswählen

bash-completion
installiert und

Code: Alles auswählen

if [ -f /etc/bash_completion ]; then
 . /etc/bash_completion
fi
in /etc/profile eingetragen.
OS: Debian 10 Buster

Benutzeravatar
smutbert
Beiträge: 8342
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Auto-Vervollständigen: bash-completion funktioniert nicht mehr

Beitrag von smutbert » 22.12.2020 14:39:23

und wenn du im Terminal

Code: Alles auswählen

bash -l
startest, funktioniert es oder auch nicht?

dnoob
Beiträge: 160
Registriert: 12.01.2019 18:53:28

Re: Auto-Vervollständigen: bash-completion funktioniert nicht mehr

Beitrag von dnoob » 22.12.2020 14:42:54

Dann funktioniert es wieder.
OS: Debian 10 Buster

Benutzeravatar
smutbert
Beiträge: 8342
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Auto-Vervollständigen: bash-completion funktioniert nicht mehr

Beitrag von smutbert » 22.12.2020 15:56:43

Ok. dann:

Mit -l startest du eine Login-Shell, die auch tatsächlich die ~/.profile, /etc/profile.d/bash_completion.sh (und alle anderen Dateien in /etc/profile.d/) und /etc/profile berücksichtigt. Für dich heißt das
  1. du kannst

    Code: Alles auswählen

    if [ -f /etc/bash_completion ]; then
     . /etc/bash_completion
    fi
    
    wieder aus der /etc/profile herausnehmen, weil das (ungefähr sinngemäß) eh in /etc/profile.d/bash_completion.sh steht und
  2. um das Problem zu lösen entweder
    1. deine Shell in Zukunft als Login-Shell starten, dazu gibt es beim Debiangnome-terminal in den Einstellungen des Profils eine Option, oder
    2. obigen Absatz statt in die /etc/profile am besten in die ~/.bashrc schreiben.

dnoob
Beiträge: 160
Registriert: 12.01.2019 18:53:28

Re: Auto-Vervollständigen: bash-completion funktioniert nicht mehr

Beitrag von dnoob » 22.12.2020 16:04:34

Alles klar, Danke :THX:

Mal so nebenbei gefragt: warum wurde die Funktion denn in Buster entfernt, also so dass man sie erst manuell wieder einbauen muss. Wenn ich mich recht erinnere musste man sich bei debian 9 nicht darum kümmern.
OS: Debian 10 Buster

JTH
Moderator
Beiträge: 3077
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Auto-Vervollständigen: bash-completion funktioniert nicht mehr

Beitrag von JTH » 22.12.2020 17:11:18

Ich glaube nicht, dass sich da bei Buster groß was verändert hat. Kann ich zumindest bei meinen Rechnern nicht nachvollziehen.

In einer frischen 08/15-Buster-Installation sollte die Installation von Debianbash-completion reichen, die vorgegebene ~/.bashrc „aktiviert“ sie dann. Hast du deine Bash-Konfigurationen evtl. größer modifiziert? Nur für den root-Benutzer könnt es nötig sein, z.B. den Abschnitt zu bash-completion in /etc/bash.bashrc einzukommentieren, dessen .bashrc enthält den Abschnitt normalerweise nicht.
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
smutbert
Beiträge: 8342
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Auto-Vervollständigen: bash-completion funktioniert nicht mehr

Beitrag von smutbert » 22.12.2020 23:42:23

Die Funktion ist nie entfernt worden – zumindest nicht aktiv.
Ein eigenes Paket Debianbash-completion mit der Datei »/etc/profile.d/bash_completion.sh« hat es auch schon in jessie (und wahrscheinlich früher) gegeben und wenn man das installiert hat man in Login-Shells (natürlich bei der Bash) die automatische Vervollständigung.

Das einzige was sich zum Teil geändert hat, ist wie die Programme, in dem Fall die nicht-Login-Shells gestartet werden. Früher wurde meist als erstes eine Login-Shell gestartet und jedes Terminal, das dann eine nicht-Login-Shell gestartet hat, war im Endeffekt eine Kind der ersten Login-Shell und hat so alles oder zumindest sehr viel von der Login-Shell geerbt.
Jetzt mit wayland, systemd-logind,... steht oft keine Login-Shell mehr am Anfang der Sitzung und die nicht-Login-Shells laden die Sachen aus der profile nicht – daher meine Lösungsvorschläge, wobei mir entgangen ist, dass in der »~/.bashrc« der Eintrag für die Autovervollständigung bereits vorhanden sein sollte (mein Vorschlag 2. b. also bereits umgesetzt).

Antworten