GNU/Linux >> Linux Esercitazione >  >> Linux

Capire il punto esclamativo (!) In Bash?

Ho usato

history | less

per ottenere le righe dei comandi precedenti e dai numeri a sinistra ho trovato la riga che volevo ripetere (es. 22) e l'ho fatto

!22

al prompt dei comandi e ha funzionato, eseguendo il set di comandi sulla riga che ho eseguito in quel momento. Non riesco a capire dove viene utilizzato il punto esclamativo, cosa rappresenta in termini di azioni intraprese da bash e dove usarlo. Dalla documentazione non vedo una spiegazione che sia 'tangibile'.

Risposta accettata:

! invoca l'espansione della cronologia, una funzionalità originariamente apparsa nella shell C, nei giorni prima che si potesse contare sui terminali dotati di tasti freccia. È particolarmente utile se aggiungi il numero del comando corrente al prompt (PS1="!$ " ) in modo da poter guardare rapidamente lo schermo per ottenere i numeri per i comandi passati.

Ora puoi usare i tasti freccia e cose come Ctrl-R per cercare nella cronologia dei comandi, non vedo molto utile per la funzione.

Una sua variante che potresti ancora trovare utile è !! , che riesegue il comando precedente. Da solo, non trovo ! ! Entra più veloce di Entra , ma può essere utile se combinato in un comando più grande.

Esempio: Un errore pilota comune su sudo sistemi basati è dimenticare il sudo prefisso su un comando che richiede privilegi aggiuntivi. Un principiante riscrive l'intero comando. Lo studente diligente modifica il comando dalla cronologia dei comandi della shell. L'illuminato digita sudo !! .

Elaborazione ! in questo modo è abilitato in Bash di default nelle shell interattive e può essere disabilitato con set +o histexpand o set +H . Puoi disabilitarlo in Zsh con set -K .


Linux
  1. Come usare il comando cronologia in Linux

  2. Suggerimenti Bash per tutti i giorni dalla riga di comando

  3. Comprensione delle variabili in Bash Shell sotto Linux

  4. '&&' vs. '&' con il comando 'test' in Bash

  5. Cosa fa -e in un bash shebang?

Comando della cronologia in Linux (Cronologia di Bash)

L'elenco delle scorciatoie da tastiera utili di Bash

Come abilitare il timestamp nella cronologia di Bash in Linux

Comprendere il comando uname in Linux

Comprendere il comando dell'ora in Linux

comprensione dell'output del comando "yum history".