Bash-Completion auch mit sudo-Befehlen

Avatar von Christoph Langner

1 Min. Lesezeit

42 Aufrufe

Hinter einem sudo bleibt die Tab-Vervollständigung stumm. Zwei Zeilen in der ~/.bashrc bringen sie auch für Befehle mit Root-Rechten zurück.

Linux Terminal

Die automatische Vervollständigung von Befehlen und Datei-/Ordnernamen (aka bash-completion) über die Tabulator-Taste ist eine tolle Sache. Zum einen „tippt“ es sich so schneller und zum anderen reduziert man deutlich die Gefahr von Vertippern. Allerdings funktioniert die Bash-Completion nicht mehr sobald man Root-Rechte für einen Befehl braucht. Stellt man einem Befehl ein sudo voran, dann bewirkt die Tab-Taste rein gar nichts mehr.

Ihr könnt Bash-Completion jedoch auch unter Ubuntu für sudo aktivieren (wie es mit anderen Distributionen aussieht, habe ich jetzt nicht getestet, wichtig ist, dass die Bash als Shell verwendet wird), öffnet dazu die ~/.bashrc in einen Editor…

$ gedit ~/.bashrc

…und fügt am Ende die Zeilen…

if [ "$PS1" ]; then
    complete -cf sudo
fi

…ein. Speichert die Änderung ab, schließt das Terminal-Fenster und startet es danach neu. Nun sollte die Bash-Completion auch mit „sudo-Befehlen“ klappen… Was ich mich jedoch frage, hat das negative Auswirkungen? Oder warum ist das bei Ubuntu noch nicht von Haus aus aktiviert? (Via wiki.archlinux.org)

Ähnliche Beiträge

17 Kommentare zu „Bash-Completion auch mit sudo-Befehlen“

  1. Avatar von scrat

    >Stellt man einem Befehl ein sudo voran, dann bewirkt die Tab-Taste rein gar nichts mehr.<
    Entweder ich benutze die Tab-Taste wesentlich seltener, als ich mir einbilde, oder das Phänomen tritt bei mir nicht auf.
    Ich hab's noch nie beobachtet.

  2. Avatar von Steffen

    bei mir gehts auch so schon unter sudo

  3. Avatar von hawu

    … bei mir geht’s auch ohne mit!

  4. Avatar von Stephan

    Kann mich nur anschließen. Klappt bei mir auch mit vorangestelltem sudo.

  5. Avatar von blub

    Ich hab es jetzt auch extra mal ausprobiert, bei mir klappt die Vervollständigung auch

  6. Avatar von Felix

    wenn, dann halte ich die möglichkeit mit
    alias sudo=’sudo ‚
    für sinnvoller. so müsste die completion auch funktionieren und zusätzlich funktionieren die anderen aliase noch.

  7. Avatar von linuxnetzer

    Nachdem ich meine profile und bashrc dateien (/home und /etc) auf der suche nach manuellen aenderungen durchforstet habe, komme ich zum selben ergebnis wie meine vorredner. funzt bei mir auch so (jaunty). liegt es vielleicht an der version (lynx?)

  8. Avatar von Lars

    Einfach den Befehl ohne sudo ausführen.
    Nach dem absehbaren Fehler den Befehl mit
    $ sudo !!
    wiederholen.

  9. Avatar von Christoph

    Hmmmm… Mein Setup aus Lynx ist eigentlich „Standard“, bei meinen anderen Systemen habe ich jahre alte Homeverzeichnisse. Strange, naja… Vielleicht hilft der Hinweis ja dem einen oder anderen 🙂

  10. Avatar von linuxnetzer

    wenn deine homeverzeichnisse so alt sind, vielleicht liegts ja gerade daran. evtl. war das ja bei feisty (gutsy…) so nicht in der .bashrc drin?
    gruß: linuxnetzer

  11. Avatar von icke

    was normalerweise nicht geht, ist wenn man mit

    sudo su

    in die root-shell wechselt.
    dann kann er zum Beispiel nach „apt-get“ nicht weiter vervollstaendigen

  12. Avatar von greebo

    @11 Dafür nimmt man eh besser sudo -s
    greebo@Hero:~$ sudo -s
    [sudo] password for greebo:
    root@Hero:~# echo $HOME
    /home/greebo
    root@Hero:~# exit
    exit
    greebo@Hero:~$ sudo su
    root@Hero:/home/greebo# echo $HOME
    /root

  13. Avatar von Marco

    „Was ich mich jedoch frage, hat das negative Auswirkungen?“
    Seit dem ich die Änderungen in mein bashrc eingefügt habe, funktioniert zwar die Completion für mit sudo für die Shell, aber die Completion für aptitude Programme funktioniert nicht mehr: z.B aptitude inst oder aptitude install firef; nichts rührt sich.

    Grüße,
    Marco

    1. Avatar von Christoph

      Hallo Marco, muss ich mal bei mir probieren. Bin eher ein apt-geter als ein aptutider 😉

  14. Avatar von Tilmann
    Tilmann

    Super, mir hat der Tipp gerade geholfen. Arch Linux liefert per default eine fast vollständig leere .bashrc! Außerdem weiß ich jetzt wenigstens, warum das so funktioniert 🙂

  15. Avatar von DIDIOpladen

    „Schüler-Tablet“ mit ARM-Prozessorkern für unter 100 US-Dollar (http://www.heise.de/open/meldung/Schueler-Tablet-mit-ARM-Prozessorkern-fuer-unter-100-US-Dollar-1009987.html)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Markdown wird unterstützt: **fett**, _kursiv_, [Linktext](URL), `Code`, Zeilen mit - für Listen, 1. für nummerierte Listen, dreifache Backticks für Codeblöcke.

Über den Blog

Seit 2006 probiere ich hier aus, was Linux, freie Software und die passende Hardware so hergeben – von Distributions-Tests bis zum Raspberry-Pi-Projekt. Praxisnah statt bloßem Nachrichtenticker.

Zuletzt auf Mastodon

Wo wir beim Thema TuxSucht sind. @gnulinux hat einen tollen Beitrag über das "Projekt" veröffentlicht.

gnulinux.ch/tux-macht-suechtig…

#Linux #foss #opensource

Kategorien

Blog unterstützen

Gefällt dir, was du hier liest? Mit einer kleinen Spende hilfst du, Hosting und neue Testgeräte zu finanzieren – und sorgst nebenbei für den nötigen Kaffee.

Linux und Ich — Bash-Completion auch mit sudo-Befehlen
https://linuxundich.de/gnu-linux/bash-completion-auch-mit-sudo-befehlen/ — gedruckt am 23. September 2026