4 10.04 package-management 11.04
在 Ubuntu 11.04 或 10.04 中,我怎样才能将apt-get,apt-cache合而为一,myapt以便我可以像在 Fedora 中一样只使用一个?
例如:
myapt search yum # same as apt-cache search
myapt remove yum # same as apt-get remove
myapt install yum # same as apt-get install
Run Code Online (Sandbox Code Playgroud)
知道如何为此做别名吗?
您可以创建一个包含以下内容的脚本
#!/bin/bash
command="$1"; shift
case $command in
add|depends|dotty|dump|dumpavail|gencaches|madison|pkgnames|policy|rdepends|search|show|showpkg|showsrc|stats|unmet|xvcg)
apt-cache "$command" "$@"
;;
autoclean|autoremove|build-dep|check|clean|dist-upgrade|dselect-upgrade|install|purge|remove|source|update|upgrade)
apt-get "$command" "$@"
;;
esac
Run Code Online (Sandbox Code Playgroud)
假设你称之为myapt。然后,为了仍然享受 bash 补全的好处,您需要将以下行添加到~/.bashrc:
_myapt() {
_apt_get
tt=("${COMPREPLY[@]}")
_apt_cache
COMPREPLY+=("${tt[@]}")
return 0
} &&
complete -F _myapt $filenames myapt
Run Code Online (Sandbox Code Playgroud)
不幸的是$command应该在任何选项之前,但似乎 bash 完成不适用于跟随命令的选项。