Erstellen Sie einen für Ihre Shell geeigneten Alias. In bash
, fügen Sie diese Zeile zu ~/.bashrc
hinzu :
alias sagi="sudo apt-get install"
Dann source ~/.bashrc
und führen Sie alias
aus um zu überprüfen, ob der Alias in Ihrer Liste angezeigt wird. Geben Sie danach einfach
sagi <package>
um den Alias aufzurufen. Bei anderen Shells sind das Format des Alias-Befehls und der Name der rc-Datei anders, aber der source
und alias
sollte gleich sein.
UPDATE:Es wird nun versucht, /bin/Programm zu installieren , /usr/bin/Programm , /sbin/Programm , oder /usr/sbin/Programm .
Das geht ganz automatisch...
Angenommen, Sie geben g++ main.cpp
ein und Sie haben g++ nicht installiert, wird es fragen, ob Sie das Paket g++ installieren möchten, und wenn Sie mit ja antworten, wird es installiert und dann g++ main.cpp
ausgeführt .
(Dies ist eine einmalige Einrichtung ... Tun Sie dies und Sie können loslegen)
- Apt-Datei installieren...
sudo apt-get install apt-file
- Den Cache aktualisieren...
sudo apt-file update
-
Bearbeiten Sie ~/.bashrc und fügen Sie dies hinzu:
command_not_found_handle () { ask () { echo -ne "$1 (Y/n) "; read -N1 YES_ANSWER; echo ""; YES_ANSWER=`echo $YES_ANSWER | sed 's/Y/y/; s/N/n/;'`; if [ "x$YES_ANSWER" == "xy" ]; then unset YES_ANSWER; return 0; elif [ "x$YES_ANSWER" == "xn" ]; then unset YES_ANSWER; return 1; elif [ "x$YES_ANSWER" == "x" ]; then unset YES_ANSWER; return 0; else ask_yes "$1"; unset YES_ANSWER; return $?; fi; } if [ "x$1" == "x" ]; then echo "File name not provided."; return 1; fi; echo "Command not found: $1"; echo "Searching for file in database..."; FILE="`apt-file search /bin/$1 | sed 's/: /_/'`"; if [ "x$FILE" != "x" ]; then FILE="`apt-file search /usr/bin/$1 | sed 's/: /_/'`"; fi; if [ "x$FILE" != "x" ]; then FILE="`apt-file search /sbin/$1 | sed 's/: /_/'`"; fi; if [ "x$FILE" != "x" ]; then FILE="`apt-file search /usr/sbin/$1 | sed 's/: /_/'`"; fi; if [ "x$FILE" != "x" ]; then for f in "$FILE"; do if ask "\nDo you want to install package `echo $f | sed 's/_.*$//'` which provides `echo $f | sed 's/^.*_//'`?"; then sudo apt-get install `echo $f | sed 's/_.*$//'`; "[email protected]"; return $?; fi; done; else echo "Could not find file $1."; return 1; fi; }
Ich teste das noch, aber im Vorversuch scheint es zu funktionieren. Hin und wieder wäre es gut, apt-file update
auszuführen um die Liste der verfügbaren Dateien zu aktualisieren.
Damit die bearbeitete Datei ~/.bashrc wirksam wird, führen Sie einen der folgenden Schritte aus:Melden Sie sich ab und wieder an oder führen Sie . ~/.bashrc
aus .
Wenn Sie sich in einem grafischen Terminal befinden, klicken Sie dreimal in die Zeile, die mit sudo apt-get
beginnt um es vollständig zu markieren, und klicken Sie dann mit der mittleren Maustaste, um es in das Terminal einzufügen. Alternativ können Sie, der Ausgabe nach zu urteilen, so etwas wie
# $(program | tail -n 1)
um die Ausgabe von tail -n 1
auszuführen Befehl, nachdem er mit der Ausgabe von program
gefüttert wurde . Das ist wahrscheinlich nicht kürzer. Dies sollte jedoch theoretisch die Definition eines Alias wie des folgenden ermöglichen
# alias ii='$( $(history -p !!) | tail -n 1)'
die den letzten Befehl im Verlauf nehmen, ausführen, seine letzte Zeile abrufen und erneut ausführen sollte. Leider funktioniert das nicht. Dies behandelt ein ähnliches Problem, aber ich habe es nicht ganz geschafft, es an dieses anzupassen, bash beschwert sich normalerweise, dass es ""
nicht gefunden hat .