在 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
知道如何为此添加别名吗?
答案1
您可以创建包含以下内容的脚本
#!/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
假设你将其命名为myapt
。那么,为了仍然享受 bash 补全的好处,你需要将以下几行添加到~/.bashrc
:
_myapt() {
_apt_get
tt=("${COMPREPLY[@]}")
_apt_cache
COMPREPLY+=("${tt[@]}")
return 0
} &&
complete -F _myapt $filenames myapt
不幸的$command
是应该在任何选项之前,但似乎 bash 完成对跟在命令后面的选项不起作用。
答案2
我不确定你是否可以使用别名来实现这一点,但你可以使用 bash 来创建脚本。
现在我不是 bash 脚本编写者,所以我无法告诉你实现这一点的确切代码,但你可以这样做(这只是伪代码,所以不要指望它能起作用!):
var action
var input
get action, input
if action == search
then do apt-cache search input
if action == remove
then do apt-get remove input
if action == install
then do apt-get install input
请记住,您可以使用您熟悉的任何语言编写脚本(甚至是编译的应用程序),例如 python 或 ruby,不一定是 bash。
再次记住,我的例子只是伪代码。