답변:
이것은 bash-complete
패키지 에서 생략 된 것 apt
입니다. 그것은 아직 완성이 존재하지 않는 것 같습니다. 그래서 나는 apt
명령에 대해 내가 할 수있는 것을 정리 했습니다.
다음은 기존 apt-get
완성 에서 수정 한 것입니다 (요소가 제거되고 apt-cache
완성 에서 비트가 추가됨 ). 다음을 실행 sudoedit /usr/share/bash-completion/completions/apt
하여 붙여 넣습니다.
# Debian apt(8) completion -*- shell-script -*-
_apt()
{
local cur prev words cword
_init_completion || return
local special i
for (( i=0; i < ${#words[@]}-1; i++ )); do
if [[ ${words[i]} == @(list|search|show|update|install|remove|upgrade|full-upgrade|edit-sources|dist-upgrade|purge) ]]; then
special=${words[i]}
fi
done
if [[ -n $special ]]; then
case $special in
remove|purge)
if [[ -f /etc/debian_version ]]; then
# Debian system
COMPREPLY=( $( \
_xfunc dpkg _comp_dpkg_installed_packages $cur ) )
else
# assume RPM based
_xfunc rpm _rpm_installed_packages
fi
return 0
;;
*)
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" \
2> /dev/null ) )
return 0
;;
esac
fi
case $prev in
-c|--config-file)
_filedir
return 0
;;
-t|--target-release|--default-release)
COMPREPLY=( $( apt-cache policy | \
command grep "release.o=Debian,a=$cur" | \
sed -e "s/.*a=\(\w*\).*/\1/" | uniq 2> /dev/null) )
return 0
;;
esac
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-d -f -h -v -m -q -s -y -u -t -b -c -o
--download-only --fix-broken --help --version --ignore-missing
--fix-missing --no-download --quiet --simulate --just-print
--dry-run --recon --no-act --yes --assume-yes --show-upgraded
--only-source --compile --build --ignore-hold --target-release
--no-upgrade --force-yes --print-uris --purge --reinstall
--list-cleanup --default-release --trivial-only --no-remove
--diff-only --no-install-recommends --tar-only --config-file
--option --auto-remove' -- "$cur" ) )
else
COMPREPLY=( $( compgen -W 'list search show update install
remove upgrade full-upgrade edit-sources dist-upgrade
purge' -- "$cur" ) )
fi
return 0
} &&
complete -F _apt apt
# ex: ts=4 sw=4 et filetype=sh
그런 다음 실행 source ~/.bashrc
하여 완료를로드하십시오. 그런 다음 apt show firef
+ Tab가 완료되어야합니다.
이것은 더 이상 존재하지 않는 옵션을 제공 할 수 있습니다. 나는 시간이 변할 수있는 주요 명령을 못 박았지만 최소한 일반적인 명령을 사용하는 데 도움이 될 것입니다 list
search
show
update
install
remove
upgrade
full-upgrade
edit-sources
dist-upgrade
purge
.
분명히 bash 완성 관리자가 위의 내용을 파악하고 싶다면 GPL에서 환영합니다 (한 번 새로 시작한 apt
것이 문서화되어 있습니다!).
zsh
있습니까?
원래 bash-completion을 사용하지 않는 이유는 무엇 입니까?
이 스크립트를 사용해보십시오. 에 bash-completion을 다운로드하여 설치합니다 ~/tmp/bash-completion
.
#!/bin/bash
echo -en "\e]2;Updating bash completion...\a"
katalog="~/tmp/bash-completion"
if [ ! -d "$katalog" ]; then
mkdir -p $katalog
cd $katalog
cd ..
git clone git://git.debian.org/git/bash-completion/bash-completion.git
cd $katalog
autoreconf -i
./configure
make
sudo make install
else
cd $katalog
if [ `git log --pretty=%H ...refs/heads/master^` != `git ls-remote origin -h refs/heads/master |cut -f1` ]; then
git pull
autoreconf -i
./configure
make
sudo make install
else
echo "Bash-completion is already up to date!"
fi
fi
command . ~/tmp/bash-completion/bash_completion.sh
로 ~/.bashrc
파일을 사용하거나 파일에 넣거나 /etc/profile.d/
디렉토리의 일부 파일에 심볼릭 링크를 사용하여 시작할 수 있습니다 . 원래의 bash-completion을 제거하면 동시에 둘 다로드되지 않습니다.
aptitude
, apt-get
하고 apt-cache
. apt 완성 이란 정확히 무엇을 의미 합니까?
apt
Trusty에있는 새로운 명령입니다. 여기에는 apt-get, apt-cache가 있습니다. 모두 한곳에서 약간의 번영이 있습니다.