저는 현재 64비트 Debian Wheezy를 실행하고 있습니다.
apt-get의 자동 완성에 몇 가지 문제가 있습니다. bash 완성을 설치했습니다.
셸에서 루트로 로그인한 경우 apt-get autocomplete를 사용할 수 있습니다(예:apt-get 설치 wicd[탭][탭]]) 일치하는 모든 패키지가 표시됩니다. 그러나 루트가 아닌 다른 사용자에게 apt-get 자동 완성 기능을 사용하려고 하면(sudo를 사용하더라도) 전혀 작동하지 않습니다. 파일 이름과 같은 다른 항목을 자동 완성할 수 있습니다.
도움이 필요하세요?
내 .bashrc 및 /etc/profile에 다음 코드가 있습니다.
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
답변1
파일 /etc/bash_completion
이 손실되었을 것입니다.
sudo apt-get install bash-completion
그것은 당신의 모든 문제를 해결해야합니다.
/etc/bash.bashrc
Faheem Mitha와 다른 사람들이 지적했듯이 이미 주석 처리되지 않은 행이 있다는 점을 고려하면 이제 작동할 것입니다.
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
원인: bash-completion
이제 패키지에 이 파일(/etc/bash_completion)이 있습니다. bash
예전에는 포장 에 들어 있었지만 지금은 그렇지 않습니다.
답변2
이것이 필요한지 기억이 나지 않지만 /etc/bash.bashrc
아직 주석 처리를 해제하지 않았다면 해당 줄의 주석 처리를 해제해 보십시오.
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
답변3
다음을 실행해 보세요.
chsh -s /bin/bash $USER
답변4
내가 기억하는 것처럼 명령 매개변수의 bash 자동 완성은 complete
명령을 통해 수행됩니다. 루트 사용자의 bashrc(아마도 /root/.bashrc)에 의해 로드된 apt-get 완료 스크립트가 있어야 하므로 이를 실행하려면 루트 로그인이 필요합니다. Sudo는 루트 로그인 스크립트를 로드하지 않으며 단지 권한만 부여합니다.
루트가 아닌 사용자를 위한 자동 완성 스크립트가 누락되어 apt-get에 대해 bash 자동 완성이 구성되어 있지 않을 수 있습니다. 그렇다면 sudoers 파일에서 모든 권한을 가진 사용자에 대한 함수를 로드하세요.