Autocompletar Debian - apt (não apt-get) não funciona

8

Eu estou no Debian Jessie 8.6. Percebi que apt-get recebe o autocompletar bash esperado ao pressionar a guia para pacotes e comando, mas ao tentar usá-lo com apt ele não funciona. Eu me lembro de usar o xubuntu 16.04 onde ele funcionava, então acho estranho que ele não funcione aqui. Existe uma maneira de ativá-lo para o comando apt também? Se sim, como?

    
por Andrea 26.09.2016 / 17:23

3 respostas

10

O Debian não vem com o 'bash-completion' instalado e ativado.

Para corrigir isso, execute (como root):

apt-get install bash-completion

Então, você tem duas opções. Você pode (1) ativá-lo por usuário ou (2) ativá-lo globalmente.

  1. Se você quiser ativá-lo apenas para seu usuário, edite ~/.bashrc - adicione o seguinte:

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

    Para experimentar sem sair e voltar, execute:

    . ~/.bashrc
    

    Ou abra um novo shell. Em seguida, tente usar o preenchimento de tabulação com o apt. Esse ponto e espaço no início ( . ) é o mesmo que usar a palavra-chave source no bash, mas é mais portátil.

    Se você quiser que ele funcione quando su na conta raiz, faça a mesma coisa no diretório pessoal do root (normalmente /root ).

  2. Para ativá-lo globalmente, faça as alterações de (1) no arquivo /etc/bash.bashrc .

Para qualquer um que esteja se perguntando por que isso funciona, o . na frente de /etc/bash_completion não não se refere ao diretório atual, pois ele possui espaços ao redor dele. Em vez disso, ele faz com que o conteúdo do arquivo fornecido seja avaliado no shell em execução no momento, em vez de ser executado em um novo subshell. É padronizado aqui.

No Bash, esse . pode ser substituído pelo comando source , mas isso não é padronizado pelo POSIX e é menos portátil, então tenho a tendência de afastar as pessoas de usá-lo. Neste caso, como é especificamente um programa para estender o bash, em vez de algo que precisa funcionar em um shell bourne ou ksh , você pode se sentir à vontade para substituir source pela legibilidade.

    
por 26.09.2016 / 17:32
2

Copie este arquivo de configuração do Ubuntu: / usr / share / bash-completion / completions / apt para o mesmo diretório em Jessie. Você também pode obter o arquivo aqui: link

    
por 29.11.2016 / 09:03
0

No Debian 9 Stretch apenas edite o /etc/bash.bashrc e descomente:

# 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
    
por 02.08.2018 / 00:01