Come usare il comando cronologia su Linux

Un prompt del terminale su un computer portatile Linux.

Fatmawati Achmad Zaenuri/Shutterstock



La shell di Linux salva una cronologia dei comandi che esegui e puoi cercarla per ripetere i comandi che hai eseguito in passato. Una volta compreso il comando della cronologia di Linux e come usarlo, può aumentare significativamente la tua produttività.

Manipolare la Storia

Come George Santayana ha detto notoriamente , Chi non ricorda il passato è condannato a ripeterlo. Sfortunatamente, su Linux, se non riesci a ricordare il passato, non puoi ripeterlo, anche se lo desideri.





10 comandi di base di Linux per principianti IMPARENTATO 10 comandi di base di Linux per principianti

In quel momento Linux |_+_| il comando torna utile. Ti consente di rivedere e ripetere i comandi precedenti. Questo non ha lo scopo solo di incoraggiare la pigrizia o di risparmiare tempo: c'è anche un fattore di efficienza (e precisione) in gioco. Più un comando è lungo e complicato, più difficile è ricordarlo e digitarlo senza commettere errori. Esistono due tipi di errori: uno che impedisce il funzionamento del comando e uno che consente al comando di funzionare, ma gli fa fare qualcosa di imprevisto.

Il |_+_| comando elimina questi problemi. Come la maggior parte dei comandi di Linux, c'è più di quanto tu possa pensare . Tuttavia, se impari a usare |_+_| comando, può migliorare il tuo utilizzo della riga di comando di Linux, ogni singolo giorno. È un buon investimento del tuo tempo. Ci sono modi di gran lunga migliori per usare |_+_| comando che solo premendo ripetutamente la freccia su .



Il comando della storia

Nella sua forma più semplice, puoi usare |_+_| comando digitandone semplicemente il nome:

history

Annuncio pubblicitario

L'elenco dei comandi utilizzati in precedenza viene quindi scritto nella finestra del terminale.



I comandi sono numerati, con quelli utilizzati più di recente (quelli con i numeri più alti) alla fine dell'elenco.

Per vedere un certo numero di comandi, puoi passare un numero a |_+_| sulla riga di comando. Ad esempio, per vedere gli ultimi 10 comandi che hai utilizzato, digita quanto segue:

history

Puoi ottenere lo stesso risultato se tubo |_+_| tramite la |_+_| comando . Per farlo, digita quanto segue:

history

IMPARENTATO: Come usare le pipe su Linux

Comandi ripetuti

Se vuoi riutilizzare un comando dall'elenco della cronologia, digita un punto esclamativo (!) e il numero del comando senza spazi tra i due.

Ad esempio, per ripetere il comando numero 37, digitare questo comando:

history

Annuncio pubblicitario

Per ripetere l'ultimo comando, digita ancora due punti esclamativi, senza spazi:

history

Questo può essere utile quando si impartisce un comando e si dimentica di usare |_+_| . Digita |_+_|, uno spazio, i doppi punti esclamativi, quindi premi Invio.

Per il seguente esempio, abbiamo digitato un comando che richiede |_+_|. Invece di ridigitare l'intera riga, possiamo salvare una serie di sequenze di tasti e digitare semplicemente |_+_|, come mostrato di seguito:

history history

Quindi, puoi digitare il numero corrispondente dall'elenco per ripetere un comando o usare i doppi punti esclamativi per ripetere l'ultimo comando che hai usato. Tuttavia, cosa succede se si desidera ripetere il quinto o l'ottavo comando?

Puoi usare un punto esclamativo, un trattino (-) e il numero di qualsiasi comando precedente (di nuovo, senza spazi) per ripeterlo.

Per ripetere il tredicesimo comando precedente, dovresti digitare quanto segue:

tail

Ricerca di comandi per stringa

Per ripetere l'ultimo comando che inizia con una stringa particolare, puoi digitare un punto esclamativo, quindi la stringa senza spazi, quindi premere Invio.

Annuncio pubblicitario

Ad esempio, per ripetere l'ultimo comando iniziato con |_+_|, digitare questo comando:

sudo

C'è un elemento di pericolo in questo, però. Se l'ultimo comando iniziato con |_+_| non è quello che pensi che sia, lancerai il comando sbagliato.

Per fornire una rete di sicurezza, tuttavia, puoi usare |_+_| modificatore (stampa), come mostrato di seguito:

sudo

Questo istruisce |_+_| per stampare il comando nella finestra del terminale, invece di eseguirlo. Questo ti permette di vedere il comando prima di usarlo. Se è il comando che desideri, premi la freccia su, quindi premi Invio per utilizzarlo.

Se vuoi trovare un comando che contiene una stringa particolare, puoi usare un punto esclamativo e un punto interrogativo.

Annuncio pubblicitario

Ad esempio, per trovare ed eseguire il primo comando corrispondente che contiene la parola alias, digitare questo comando:

sudo

Questo troverà qualsiasi comando che contiene gli alias della stringa, indipendentemente da dove appare nella stringa.

Ricerca interattiva

Una ricerca interattiva ti consente di scorrere un elenco di comandi corrispondenti e ripetere quello che desideri.

Basta premere Ctrl+r per avviare la ricerca.

Una finestra di terminale dopo

Mentre digiti l'indizio di ricerca, apparirà il primo comando corrispondente. Le lettere digitate vengono visualizzate tra il segno di spunta (`) e l'apostrofo ('). I comandi corrispondenti si aggiornano mentre digiti ogni lettera.

A

Ogni volta che premi Ctrl + r, stai cercando all'indietro il prossimo comando corrispondente, che appare nella finestra del terminale.

Quando si preme Invio, il comando visualizzato verrà eseguito.

Per modificare un comando prima di eseguirlo, premere il tasto freccia sinistra o destra.

Annuncio pubblicitario

Il comando viene visualizzato sulla riga di comando ed è possibile modificarlo.

Un comando sulla riga di comando con la modifica abilitata.

Puoi usare altri strumenti Linux per cercare nell'elenco della cronologia. Ad esempio, per reindirizzare l'output da |_+_| in |_+_| e cerca i comandi che contengono la stringa alias potresti usare questo comando:

sudo !!

Modifica dell'ultimo comando

Se è necessario correggere un errore di battitura e quindi ripetere il comando, è possibile utilizzare il cursore (^) per modificarlo. Questo è un ottimo trucco da tenere nella manica ogni volta che scrivi male un comando o vuoi rieseguirne uno con un'opzione o un parametro della riga di comando diverso.

Per usarlo, digita (senza spazi) un accento circonflesso, il testo che vuoi sostituire, un altro accento circonflesso, il testo con cui vuoi sostituirlo, un altro accento circonflesso, quindi premi Invio.

Ad esempio, supponiamo di digitare il seguente comando, digitando accidentalmente shhd invece di sshd:

sudo

Puoi correggerlo facilmente digitando quanto segue:

sudo

Il comando viene eseguito con shhd corretto in sshd.

Eliminazione di comandi dall'elenco della cronologia

Puoi anche eliminare i comandi dall'elenco della cronologia con |_+_| (cancella) opzione. Non c'è motivo di mantenere il comando sbagliato nell'elenco della cronologia.

Annuncio pubblicitario

Puoi usare |_+_| per trovarlo, passa il suo numero a |_+_| con il |_+_| opzione per eliminarlo, quindi cercare di nuovo per assicurarsi che sia sparito:

:p history history

Puoi anche passare una serie di comandi a |_+_| opzione. Per eliminare tutte le voci dell'elenco da 22 a 32 (incluse), digita questo comando:

grep

Per eliminare solo gli ultimi cinque comandi, puoi digitare un numero negativo, in questo modo:

-d

Aggiornamento manuale del file di cronologia

Quando si accede o si apre una sessione del terminale, l'elenco della cronologia viene letto dal file della cronologia. In Bash, il file di cronologia predefinito è |_+_|.

Qualsiasi modifica apportata nella sessione corrente della finestra del terminale viene scritta nel file di cronologia solo quando si chiude la finestra del terminale o si effettua il logout.

Supponiamo di voler aprire un'altra finestra di terminale per accedere all'elenco completo della cronologia, inclusi i comandi digitati nella prima finestra di terminale. Il |_+_| (tutti) ti consente di farlo nella prima finestra del terminale prima di aprire la seconda.

Per usarlo, digita quanto segue:

grep

I comandi vengono scritti silenziosamente nel file di cronologia.

Annuncio pubblicitario

Se vuoi scrivere tutte le modifiche all'elenco della cronologia nel file della cronologia (se hai cancellato alcuni vecchi comandi, ad esempio), puoi usare |_+_| (scrivi) opzione, in questo modo:

history

Cancellazione dell'elenco della cronologia

Per cancellare tutti i comandi dall'elenco della cronologia, puoi usare |_+_| (cancella) opzione, come segue:

-d

Se vuoi anche forzare queste modifiche al file della cronologia, usa |_+_| opzione, in questo modo:

-d

Sicurezza e file di cronologia

Se utilizzi applicazioni che richiedono di digitare informazioni sensibili (come le password) sulla riga di comando, ricorda che anche queste verranno salvate nel file della cronologia. Se non desideri che determinate informazioni vengano salvate, puoi utilizzare la seguente struttura di comandi per eliminarle immediatamente dall'elenco della cronologia:

.bash_history -a

Questa struttura include due comandi separati da un punto e virgola (;). Scomponiamo questo:

    app-speciale: Il nome del programma che stiamo utilizzando. la mia-password-segreta: La password segreta che dobbiamo fornire per l'applicazione sulla riga di comando. Questa è la fine del comando uno. storia -d: Nel secondo comando, invochiamo il |_+_| (cancella) opzione di |_+_|. Quello che elimineremo arriverà nella prossima parte del comando. $(cronologia 1): utilizza una sostituzione di comando. La parte del comando contenuta nel |_+_| viene eseguito in una subshell. Il risultato di tale esecuzione viene pubblicato come testo nel comando originale. Il |_+_| comando restituisce il comando precedente. Quindi, puoi pensare al secondo comando come history -d ultimo comando qui.

Puoi usare il |_+_| comando per assicurarsi che il comando contenente la password sia stato rimosso dall'elenco della cronologia.

Annuncio pubblicitario

C'è un modo ancora più semplice per farlo, però. Poiché Bash ignora le righe che iniziano con uno spazio per impostazione predefinita, includi semplicemente uno spazio all'inizio della riga, come segue:

-w -c

Il comando con la password non viene aggiunto all'elenco della cronologia. Il motivo per cui questo trucco funziona è contenuto nel |_+_| file.

Il file .bashrc

Il |_+_| il file viene eseguito ogni volta che accedi o apri una finestra di terminale. Contiene anche alcuni valori che controllano il comportamento di |_+_| comando. andiamo modifica questo file con |_+_| .

Digita quanto segue:

-w

Nella parte superiore del file vengono visualizzate due voci:

  • -d : Il numero massimo di voci che l'elenco della cronologia può contenere.
  • history : Il limite per il numero di righe che può contenere un file di cronologia.

Questi due valori interagiscono nei seguenti modi:

  • Quando accedi o avvii una sessione della finestra del terminale, l'elenco della cronologia viene popolato da |_+_| file.
  • Quando chiudi una finestra di terminale, il numero massimo di comandi impostato in |_+_| vengono salvati in |_+_| file.
  • Se il |_+_| l'opzione shell è abilitata, i comandi vengono aggiunti a |_+_|. Se |_+_| non è impostato, |_+_| viene sovrascritto.
  • Dopo aver salvato i comandi dall'elenco della cronologia in |_+_| , il file della cronologia viene troncato per contenere non più di |_+_| Linee.

Inoltre, nella parte superiore del file, viene visualizzata una voce per |_+_| valore.

Il

Puoi impostare questo valore per eseguire una delle seguenti operazioni:

  • |_+_|Le righe che iniziano con uno spazio non vengono aggiunte all'elenco della cronologia.
  • |_+_|I comandi duplicati non vengono aggiunti al file di cronologia.
  • |_+_|Abilita entrambi i precedenti.
Annuncio pubblicitario

Puoi anche elencare comandi specifici che non desideri vengano aggiunti all'elenco della cronologia. Separali con i due punti (:) e inseriscili tra virgolette (…).

Seguiresti questa struttura per aggiungere una linea al tuo |_+_| file e sostituisci i comandi che vuoi ignorare:

$()

Un

Utilizzo di timestamp

Se vuoi aggiungere timestamp all'elenco della cronologia, puoi usare |_+_| collocamento. Per fare ciò, aggiungi semplicemente una riga come la seguente al tuo |_+_| file:

history 1

Nota che c'è uno spazio prima delle virgolette di chiusura. Ciò impedisce al timestamp di raggiungere i comandi nell'elenco dei comandi.

Un

Ora, quando esegui il comando history, vedi data e timestamp. Nota che tutti i comandi che erano nell'elenco della cronologia prima di aggiungere i timestamp verranno contrassegnati con la data e l'ora del primo comando che riceve un timestamp. In questo esempio mostrato di seguito, questo era il comando 118.

Questo è un timestamp molto prolisso. Tuttavia, puoi utilizzare token diversi da |_+_| per affinarlo. Gli altri token che puoi utilizzare sono:

    history 5:Giorno .bashrc:Mese .bashrc:Anno history:Ora gedit:Minuti HISTSIZE :Secondi HISTFILESIZE:Data intera (formato anno-mese-data) .bash_history:Ora (formato ore:minuti:secondi)
  • HISTSIZE : Data e ora complete (formati giorno-data-mese-anno e ora:minuti:secondi)

Sperimentiamo e usiamo alcuni token diversi:

.bash_history

L

Annuncio pubblicitario

Se rimuoviamo il giorno e il mese, tuttavia, mostrerà solo l'ora.

Eventuali modifiche apportate a |_+_| si applicano all'intero elenco della cronologia. Ciò è possibile perché l'ora di ogni comando è memorizzata come numero di secondi dall'epoca Unix . La direttiva |_+_| specifica semplicemente il formato utilizzato per rendere quel numero di secondi in uno stile leggibile dall'uomo, come ad esempio:

histappend

Il

Il nostro output è ora più gestibile.

Puoi anche usare il |_+_| comando da controllare. A volte, recensire comandi che hai utilizzato in passato può aiutarti a identificare cosa potrebbe aver causato un problema.

Proprio come puoi nella vita, su Linux puoi usare |_+_| comando di rivivere i bei tempi e imparare dai cattivi.

IMPARENTATO: 37 importanti comandi di Linux che dovresti sapere

Comandi Linux
File catrame · pv · gatto · tac · chmod · presa · differenza · sed · Con · uomo · spinto · popd · fsck · testdisk · seguito · fd · pandoc · cd · $PATH · awk · giuntura · jq · piega · unico · journalctl · coda · stato · ls · fstab · buttato fuori · meno · chgrp · chown · rev · Guarda · stringhe · genere · rinominare · cerniera lampo · decomprimere · montare · smontare · installare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · noi · nano · mkdir · a partire dal · ln · toppa · convertire · rclone · brandello · SRM
Processi alias · schermo · superiore · Bello · renice · progresso · strace · sistema · tmux · chsh · storia · in · lotto · libero · quale · dmesg · usermod · ps · chroot · xargs · tty · mignolo · lsof · vmstat · tempo scaduto · parete · · uccisione · dormire · sudo · il suo · volta · gruppoaggiungi · usermod · gruppi · lshw · spegnimento · riavviare · fermare · spegni · passwd · lscpu · crontab · Data · bg · fg
Rete netstat · ping · traceroute · ip · ss · chi è · fail2ban · bmon · voi · dito · nmap · ftp · arricciare · wget · chi · chi sono · In · iptables · ssh-keygen · ufw

IMPARENTATO: I migliori laptop Linux per sviluppatori e appassionati

LEGGI SUCCESSIVO Foto del profilo di Dave McKay Dave McKay
Dave McKay ha usato per la prima volta i computer quando era in voga il nastro di carta perforata, e da allora ha programmato. Dopo oltre 30 anni nel settore IT, ora è un giornalista tecnologico a tempo pieno. Durante la sua carriera ha lavorato come programmatore freelance, manager di un team internazionale di sviluppo software, project manager di servizi IT e, più recentemente, come Data Protection Officer. I suoi scritti sono stati pubblicati da howtogeek.com, cloudavvyit.com, itenterpriser.com e opensource.com. Dave è un evangelista di Linux e un sostenitore dell'open source.
Leggi la biografia completa

Articoli Interessanti