it-swarm.com.de

Die automatische Vervollständigung funktioniert nicht, wenn Sie als Root angemeldet sind

Ich bin gerade auf etwas gestoßen, das mich wirklich stört. Autovervollständigung auf Ubuntu funktioniert wie ein Zauber, aber wenn ich mich als root anmelde, z. su Ich erhalte nur manchmal tab Autovervollständigung.

Warum funktioniert das so? Kann man das ändern?

22
Patryk

Überprüfen Sie Ihre /root/.bashrc -Datei auf diese Zeilen

if [ -f /etc/bash_completion ]; then
  . /etc/bash_completion
fi

Wenn sie nicht vorhanden sind, fügen Sie sie mit Ihrem bevorzugten Texteditor am Ende der Datei hinzu.

40
Bruno Pereira

Sie haben nicht erwähnt, welche Ubuntu-Version Sie verwenden.

  • Überprüfen Sie, ob Sie das Paket bash-completion installiert haben:

    Sudo apt-get install bash-completion
    
  • Meins funktioniert, wenn ich mich anmelde mit: Sudo -i

7
Savvas Radevic

Aktivieren Sie unter Ubuntu 13.10 die Option /etc/bash.bashrc für

# enable bash completion in interactive shells
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  Elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

Sie könnten kommentiert werden. Das Aufheben von Kommentaren funktioniert.

3
dbtek

In Linux Mint 18 (basierend auf Xenial) müssen Sie Ihren bashrc bearbeiten:

Sudo nano /etc/bash.bashrc

und kommentieren Sie diesen Abschnitt aus (entfernen Sie den # vor jeder Zeile):

if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
     . /usr/share/bash-completion/bash_completion
  Elif [ -f /etc/bash_completion ]; then
     . /etc/bash_completion
  fi
fi

Das ist alles.

Gefunden, dass dies funktioniert (ähnlich wie die Antworten oben, aber mit einem Twist)

Die zu bearbeitende Datei (zumindest in meinem Fall mit 12.04) war /root/.bashrc. Dies ist in meinem Fall sinnvoll, da mein normaler Benutzer in Ordnung automatisch vervollständigt wurde, mein Root jedoch nicht.

Jedenfalls habe ich in der genannten Datei den gesamten erforderlichen Code gefunden, der jedoch auskommentiert wurde:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    #. /etc/bash_completion
#fi

Einfach unkommentiert:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

Gespeichert, und es hat gut funktioniert.

Hoffe das hilft jemandem.

0
neanderslob