Il completamento automatico non funziona se registrato come root

18

Mi sono appena imbattuto in qualcosa che mi infastidisce davvero. Il completamento automatico su Ubuntu funziona come un fascino ma quando accedo come root, ad es. su Ottengo solo tab completamento automatico solo qualche volta.

Perché funziona così? Si può cambiare?

    
posta Patryk 12.02.2012 - 19:34

5 risposte

36

Controlla il tuo file /root/.bashrc per queste linee

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

Se non esistono aggiungili alla fine del file usando il tuo editor di testo preferito.

    
risposta data Bruno Pereira 27.06.2012 - 13:00
7

Non hai menzionato quale versione di Ubuntu usi.

  • Verifica se hai installato il pacchetto bash-completion :

    sudo apt-get install bash-completion
    
  • Il mio funziona se accedo utilizzando: sudo -i

risposta data Savvas Radevic 12.02.2012 - 21:24
3

Per Ubuntu 13.10, controlla /etc/bash.bashrc per

# 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

Potrebbero essere commentati. Non commentarli funziona.

    
risposta data dbtek 18.11.2013 - 09:42
0

Trovato che questo ha funzionato (simile alle risposte sopra ma con una svolta)

Il file che deve essere modificato (almeno nel mio caso con 12.04) era /root/.bashrc. Questo ha senso nel mio caso, dato che il mio utente abituale era in fase di completamento automatico, ma la mia radice non lo era.

Comunque in detto file ho trovato tutto il codice necessario ma è stato commentato:

# 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

Semplicemente non commentato:

# 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

Salvato, e ha funzionato bene.

Spero che questo aiuti qualcuno.

    
risposta data neanderslob 13.12.2013 - 01:59
0

In Linux Mint 18 (basato su Xenial), devi modificare il tuo bashrc:

sudo nano /etc/bash.bashrc

e commenta (rimuovi # davanti a ciascuna riga) in questa sezione:

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

Questo è tutto.

    
risposta data le hollandais volant 15.08.2016 - 19:10

Leggi altre domande sui tag