GNU/Linux >> Tutoriales Linux >  >> Linux

¿Hay un atajo para ejecutar un comando sugerido en una terminal?

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)

  1. Instalar archivo apt... sudo apt-get install apt-file
  2. Actualizar su caché... sudo apt-file update
  3. 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ó "" .


Linux
  1. Mis 10 mejores atajos de terminal para Linux

  2. ¿Ejecutar comando en terminal activo remoto?

  3. ¿Ejecutar un comando que está sombreado por un alias?

  4. ¿Eliminar archivos por edad?

  5. | ¿En Comando Terminal?

Cómo ejecutar varios comandos de Linux a la vez en la terminal de Linux

Comando de historial en Linux:ver el historial de terminales de Linux

5 usos del comando mv en la terminal de Linux

Usando cut en Linux Terminal

Borrar terminal usando el atajo de teclado

¿Cómo ejecutar la terminal usando atajos de teclado en Gnome 2?