GNU/Linux >> Linux Esercitazione >  >> Linux

Esiste una scorciatoia per eseguire un comando suggerito in un terminale?

Crea un alias appropriato per la tua shell. In bash , aggiungi questa riga a ~/.bashrc :

alias sagi="sudo apt-get install"

Quindi, source ~/.bashrc ed eseguire alias per verificare che l'alias venga visualizzato nell'elenco. Dopodiché, digita

sagi <package>

per richiamare l'alias. Per altre shell, il formato del comando alias e il nome del file rc saranno differenti, ma il source e alias dovrebbe essere lo stesso.


AGGIORNAMENTO:ora tenterà di installare /bin/programma , /usr/bin/programma , /sbin/programma o /usr/sbin/programma .
Questo è totalmente automatico...
Supponi di digitare g++ main.cpp e non hai g++ installato, ti chiederà se vuoi installare il pacchetto g++, e se rispondi sì, lo installerà e quindi eseguirà g++ main.cpp .

(Questa è una configurazione una tantum... Fallo e sei a posto)

  1. Installa apt-file... sudo apt-get install apt-file
  2. Aggiorna la sua cache... sudo apt-file update
  3. Modifica ~/.bashrc e aggiungi questo:

    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;
    }
    

Lo sto ancora testando, ma nel test preliminare sembra funzionare. Ogni tanto sarebbe bene eseguire apt-file update per aggiornare l'elenco dei file disponibili.

Per rendere effettivo il file ~/.bashrc modificato, esegui una delle seguenti operazioni:disconnettiti e riconnettiti di nuovo oppure esegui . ~/.bashrc .


Se sei in un terminale grafico, fai triplo clic sulla riga che inizia con sudo apt-get per contrassegnarlo interamente e quindi fare clic con il pulsante centrale del mouse per incollarlo nel terminale. In alternativa, a giudicare dall'output, digitare qualcosa come

# $(program | tail -n 1)

per eseguire l'output di tail -n 1 comando dopo aver ricevuto l'output di program . Questo probabilmente non è più breve. Tuttavia, questo dovrebbe teoricamente consentire la definizione di un alias come il seguente

# alias ii='$( $(history -p !!) | tail -n 1)'

che dovrebbe prendere l'ultimo comando nella cronologia, eseguirlo, ottenere la sua ultima riga ed eseguirlo di nuovo. Sfortunatamente, questo non funziona. Questo discute un problema simile ma non sono riuscito ad adattarlo a questo, bash di solito si lamenta di non aver trovato "" .


Linux
  1. Le mie prime 10 scorciatoie da terminale per Linux

  2. Come eseguire un comando che sopravviverà alla chiusura del terminale?

  3. Eseguire il comando nel terminale attivo remoto?

  4. gnome-terminal:comando non trovato

  5. Cancella il terminale usando la scorciatoia da tastiera

Come eseguire più comandi Linux contemporaneamente nel terminale Linux

Comando cronologia in Linux:visualizza la cronologia del terminale Linux

Utilizzo di cut su terminale Linux

Come eseguire il terminale utilizzando le scorciatoie da tastiera in Gnome 2?

Esiste un'utilità per leggere le variabili di ambiente da un file env e quindi eseguire un comando (più leggero del caposquadra)?

Il comando RPM si blocca