Как в 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.
Опять же, помните, мой пример всего лишьпсевдокод.