Vytvořte alias vhodný pro váš shell. V bash
, přidejte tento řádek do ~/.bashrc
:
alias sagi="sudo apt-get install"
Poté source ~/.bashrc
a spusťte alias
abyste ověřili, že se alias zobrazuje ve vašem seznamu. Poté stačí napsat
sagi <package>
vyvolat alias. U ostatních shellů bude formát příkazu alias a název souboru rc jiný, ale source
a alias
by mělo být stejné.
AKTUALIZACE:Nyní se pokusí nainstalovat /bin/program , /usr/bin/program , /sbin/program nebo /usr/sbin/program .
Toto je zcela automatické...
Řekněme, že zadáte g++ main.cpp
a nemáte nainstalované g++, zeptá se, zda chcete nainstalovat balíček g++, a pokud odpovíte ano, nainstaluje jej a poté spustí g++ main.cpp
.
(Toto je jednorázové nastavení... Udělejte to a můžete začít)
- Nainstalujte apt-file...
sudo apt-get install apt-file
- Aktualizujte jeho mezipaměť...
sudo apt-file update
-
Upravte ~/.bashrc a přidejte k němu toto:
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; }
Stále to testuji, ale v předběžném testu se zdá, že to funguje. Tu a tam by bylo dobré spustit apt-file update
pro obnovení seznamu dostupných souborů.
Chcete-li, aby se upravený ~/.bashrc stal účinným, proveďte jeden z následujících kroků:odhlaste se a znovu se přihlaste, nebo spusťte . ~/.bashrc
.
Pokud jste v grafickém terminálu, třikrát klikněte na řádek začínající sudo apt-get
označte jej celý a poté jej kliknutím prostředním tlačítkem vložte do terminálu. Případně, soudě podle výstupu, napište něco jako
# $(program | tail -n 1)
pro provedení výstupu tail -n 1
po přivedení výstupu program
. Tohle asi není kratší. To by však teoreticky mělo umožnit definici aliasu, jako je následující
# alias ii='$( $(history -p !!) | tail -n 1)'
který by měl převzít poslední příkaz v historii, provést jej, získat jeho poslední řádek a provést jej znovu. Bohužel to nefunguje. Zde se diskutuje o podobném problému, ale nepodařilo se mi jej přizpůsobit tomuto problému, bash si obvykle stěžuje, že nenašel ""
.