Cree un alias apropiado para su shell. En bash
, agregue esta línea a ~/.bashrc
:
alias sagi="sudo apt-get install"
Entonces, source ~/.bashrc
y ejecuta alias
para verificar que el alias aparece en su lista. Después de eso, solo escribe
sagi <package>
para invocar el alias. Para otros shells, el formato del comando alias y el nombre del archivo rc serán diferentes, pero el source
y alias
debería ser lo mismo.
ACTUALIZACIÓN:ahora intentará instalar /bin/programa , /usr/bin/programa , /sbin/programa , o /usr/sbin/programa .
Esto es totalmente automático...
Digamos que escribes g++ main.cpp
y no tiene g++ instalado, le preguntará si desea instalar el paquete g++, y si responde que sí, lo instalará y luego ejecutará g++ main.cpp
.
(Esta es una configuración de una sola vez... Haz esto y listo)
- Instalar archivo apt...
sudo apt-get install apt-file
- Actualizar su caché...
sudo apt-file update
-
Edite ~/.bashrc y agréguele esto:
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; }
Todavía estoy probando esto, pero en la prueba preliminar parece funcionar. De vez en cuando sería bueno ejecutar apt-file update
para actualizar la lista de archivos disponibles.
Para hacer que el ~/.bashrc editado entre en vigencia, realice una de las siguientes acciones:cierre sesión y vuelva a iniciar sesión, o ejecute . ~/.bashrc
.
Si está en una terminal gráfica, haga triple clic en la línea que comienza con sudo apt-get
para marcarlo por completo y luego haga clic con el botón central para pegarlo en la terminal. Alternativamente, a juzgar por la salida, escriba algo como
# $(program | tail -n 1)
para ejecutar la salida de tail -n 1
comando después de recibir la salida de program
. Esto probablemente no sea más corto. Sin embargo, esto debería permitir teóricamente la definición de un alias como el siguiente
# alias ii='$( $(history -p !!) | tail -n 1)'
que debería tomar el último comando en el historial, ejecutarlo, obtener su última línea y ejecutarlo nuevamente. Desafortunadamente, esto no funciona. Esto analiza un problema similar pero no logré adaptarlo a este, bash generalmente se queja de que no encontró ""
.