apt-get
Wie kann ich in Ubuntu 11.04 oder 10.04 alles apt-cache
in einem erstellen, myapt
sodass ich wie in Fedora einfach nur eines verwenden kann?
Zum Beispiel:
myapt search yum # same as apt-cache search
myapt remove yum # same as apt-get remove
myapt install yum # same as apt-get install
Irgendeine Idee, wie man hierfür einen Alias erstellt?
Antwort1
Sie könnten ein Skript mit folgendem Inhalt erstellen
#!/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
Nehmen wir an, Sie rufen es auf myapt
. Um dann weiterhin von der Bash-Vervollständigung zu profitieren, müssen Sie die folgenden Zeilen hinzufügen ~/.bashrc
:
_myapt() {
_apt_get
tt=("${COMPREPLY[@]}")
_apt_cache
COMPREPLY+=("${tt[@]}")
return 0
} &&
complete -F _myapt $filenames myapt
Sollte leider $command
allen Optionen vorangehen, aber anscheinend funktioniert die Bash-Vervollständigung nicht für Optionen, die auf einen Befehl folgen.
Antwort2
Ich bin nicht sicher, ob Sie dafür Alias verwenden können, aber Sie könnten Bash verwenden, um ein Skript zu erstellen.
Ich bin kein Bash-Skriptersteller, daher kann ich Ihnen nicht den genauen Code dafür nennen, aber Sie könnten so etwas tun wie(das ist sozusagen nur Pseudocode, erwarten Sie also nicht, dass es funktioniert!!!):
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
Bedenken Sie, dass Sie das Skript (oder sogar eine kompilierte Anwendung) in jeder beliebigen Sprache schreiben können, beispielsweise Python oder Ruby. Es muss nicht Bash sein.
Denken Sie noch einmal daran, dass mein Beispiel nurPseudocode.