Cum să ascundeți istoricul liniei de comandă Linux mergând în incognito

Come nascondere la cronologia della riga di comando di Linux andando in incognito

⌛ Reading Time: 4 minutes

Se sei un utente della riga di comando di Linux, sarai d’accordo sul fatto che ci sono momenti in cui non vuoi che determinati comandi che esegui siano registrati nella cronologia della riga di comando. Ci potrebbero essere molte ragioni per questo. Ad esempio, sei in una determinata posizione nella tua azienda e hai alcuni privilegi di cui non vuoi che gli altri abusino. Oppure, ci sono alcuni comandi critici che non vuoi eseguire accidentalmente mentre navighi nell’elenco della cronologia.

Ma c’è un modo per controllare cosa va nell’elenco della cronologia e cosa no? Oppure, in altre parole, possiamo attivare una modalità di navigazione in incognito simile a un browser Web nella riga di comando di Linux? La risposta è sì e ci sono molti modi per ottenerlo, a seconda di ciò che si desidera esattamente. In questo articolo discuteremo alcune delle popolari soluzioni disponibili.

Nota: tutti i comandi presentati in questo articolo sono stati testati su Ubuntu.

Diversi modi disponibili

I primi due modi che descriveremo qui sono già stati trattati in uno dei nostri articoli precedenti. Se ne sei già a conoscenza, puoi saltarli. Tuttavia, se non sei a conoscenza, ti consigliamo di esaminarli attentamente.

1. Inserisci uno spazio prima del comando

Sì, avete letto bene. Inserisci uno spazio all’inizio di un comando e verrà ignorato dalla shell, il che significa che il comando non verrà registrato nella cronologia. Tuttavia, c’è una dipendenza: la suddetta soluzione funzionerà solo se la variabile d’ambiente HISTCONTROL è impostata su “ignorespace” o “ignoreboth”, che è l’impostazione predefinita nella maggior parte dei casi.

Quindi, un comando come il seguente:

Non apparirà nella cronologia se hai già eseguito questo comando:

Lo screenshot qui sotto è un esempio di questo comportamento.

Il quarto comando “echo” non è stato registrato nella cronologia poiché è stato eseguito con uno spazio all’inizio.

2. Disabilitare l’intera cronologia per la sessione corrente

Se vuoi disabilitare l’intera cronologia per una sessione, puoi farlo facilmente deselezionando la variabile d’ambiente HISTSIZE prima di iniziare con il tuo lavoro da riga di comando. Per annullare l’impostazione della variabile eseguire il seguente comando:

HISTFILE è il numero di righe (o comandi) che possono essere memorizzati nell’elenco cronologico per una sessione bash in corso. Per impostazione predefinita, questa variabile ha un valore impostato, ad esempio 1000 nel mio caso.

Quindi, il comando sopra menzionato imposterà il valore della variabile d’ambiente a zero, e di conseguenza nulla verrà memorizzato nell’elenco della cronologia fino alla chiusura del terminale. Tieni presente che non sarai nemmeno in grado di vedere i comandi eseguiti in precedenza premendo il tasto freccia su o eseguendo il history comando.

3. Cancella l’intera cronologia al termine

Questo può essere visto come un’alternativa alla soluzione menzionata nella sezione precedente. L’unica differenza è che in questo caso esegui un comando DOPO aver terminato tutto il tuo lavoro. Quello che segue è il comando in questione:

Come già accennato, questo avrà lo stesso effetto della soluzione HISTFILE menzionata sopra.

4. Disattiva la cronologia solo per il lavoro che svolgi

Mentre le soluzioni (2 e 3) sopra descritte fanno il trucco, cancellano l’intera storia, cosa che potrebbe essere indesiderata in molte situazioni. Potrebbero esserci casi in cui desideri conservare l’elenco della cronologia fino al punto in cui inizi il lavoro da riga di comando. Per situazioni come queste è necessario eseguire il seguente comando prima di iniziare il lavoro:

Nota: [space] rappresenta uno spazio vuoto.

Il comando precedente disabiliterà temporaneamente la cronologia, il che significa che qualunque cosa tu faccia dopo aver eseguito questo comando non verrà registrata nella cronologia, sebbene tutte le cose eseguite prima del comando precedente saranno lì come sono nell’elenco della cronologia.

Per riattivare la cronologia, eseguire il comando seguente:

Questo riporta le cose di nuovo alla normalità, il che significa che qualsiasi lavoro da riga di comando eseguito dopo il comando precedente verrà visualizzato nella cronologia.

5. Elimina comandi specifici dalla cronologia

Supponiamo ora che l’elenco della cronologia contenga già alcuni comandi che non desideri vengano registrati. Cosa si può fare in questo caso? È semplice. Puoi andare avanti e rimuoverli. Di seguito viene illustrato come eseguire questa operazione:

Il comando precedente produrrà un elenco di comandi corrispondenti (che sono presenti nell’elenco cronologico) con un numero [num] che precede ciascuno di essi.

Una volta identificato il comando che desideri rimuovere, esegui il comando seguente per rimuovere quella particolare voce dall’elenco della cronologia:

Lo screenshot seguente ne è un esempio.

commandline-history-cancella-specifici-comandi

Il secondo comando “echo” è stato rimosso con successo.

In alternativa, puoi semplicemente premere il tasto freccia su per tornare indietro nell’elenco della cronologia, e una volta che il comando di tuo interesse appare sul terminale, basta premere “Ctrl + U” per cancellare completamente la riga, rimuovendolo di fatto elenco.

Conclusione

Esistono diversi modi in cui è possibile manipolare la cronologia della riga di comando di Linux in base alle proprie esigenze. Tieni presente, tuttavia, che di solito non è una buona pratica nascondere o rimuovere un comando dalla cronologia, anche se non è sbagliato di per sé, ma dovresti essere consapevole di ciò che stai facendo e degli effetti che potrebbe avere.