La shell bash è l'ambiente di terminale standard incluso nella maggior parte delle distribuzioni Linux, incluso con macOS, e disponibile per l'installazione su Windows 10. Memorizza i comandi che scrivi e li memorizza in un file di cronologia. Probabilmente conosci alcune basi della storia di bash, ma è molto più potente di quanto potresti realizzare.
CORRELATI: Le migliori scorciatoie da tastiera per Bash (ovvero il terminale Linux e macOS)
Per scorrere la cronologia di bash, puoi utilizzare alcune delle scorciatoie da tastiera utili di bash. Premi queste scorciatoie e i comandi che hai utilizzato in precedenza appariranno al prompt.
Bash ha anche una speciale modalità di "richiamo" che puoi usare per cercare i comandi che hai precedentemente eseguito, piuttosto che scorrerli uno per uno.
Puoi stampare l'intera cronologia di bash sullo schermo eseguendo un singolo comando:
cronologia
Vedrai un elenco di tutti i comandi nel tuo cronologia di bash, insieme a un numero a sinistra di ciascuno. Il comando con un "1" accanto ad esso è il comando più vecchio nella cronologia di bash, mentre il comando con il numero più alto è il più recente.
CORRELATO: Diventa un utente Linux Power Power con questi 8 trucchi
Puoi fare tutto quello che vuoi con l'output. Ad esempio, è possibile reindirizzare il comandogrep
per cercare la cronologia dei comandi.
cronologia | grep your_search
Potresti anche inviarlo al comandotail
per visualizzare solo un piccolo numero di comandi recenti che hai eseguito. Ad esempio, il seguente comando mostrerà le ultime 5 voci nella cronologia.
cronologia | tail -5
Bash può "espandere" rapidamente i comandi precedenti, oppure espanderli e modificarli. Questa funzione è nota come "espansione della cronologia" e utilizza un punto esclamativo, noto come "botto". Basta scriverli al prompt e premere Invio per eseguirli come se dovessi eseguire qualsiasi altro comando.
Per eseguire un comando specifico dalla cronologia con il suo numero, utilizzare il seguente comando:
! #
Per esempio, supponiamo di voler eseguire il dodicesimo comando dalla cronologia di bash. Questo è il comando con un "12" a sinistra quando si esegue il comandocronologia
. Dovresti digitare il seguente comando.
! 12
Per rieseguire l'ultimo comando che hai eseguito, digita quanto segue. Questo ha lo stesso effetto di premere una volta la freccia Su per visualizzare il comando precedente e quindi premere Enter.
!!
Puoi anche riferire a un comando un certo numero di righe indietro. Ad esempio,! - 2
eseguirà il penultimo comando eseguito.!!
significa la stessa cosa di! - 1
.
Questa espansione funziona ovunque sulla linea. Puoi aggiungere qualsiasi cosa ti piace prima o dopo!!
o una qualsiasi delle altre espressioni in questa sezione. Ad esempio, è possibile digitare il seguente comando per rieseguire l'ultimo comando eseguito attraversosudo
, assegnandogli privilegi di root. Ciò è particolarmente utile se si dimentica di aggiungeresudo
prima di eseguire un comando.
sudo !!
Oppure, ad esempio, è possibile rieseguire il comando precedente e reindirizzare l'output a grep per cercare un po 'di testo.
!! | grep text
Per cercare un comando nella cronologia ed eseguirlo, digitare quanto segue. Questo eseguirà l'ultimo comando che corrisponde al testo specificato:
! text
Quindi, se di recente hai eseguito un comando che inizia conping
, puoi eseguire il seguente comando per cercarlo. Questo cercherà all'indietro nella cronologia, individuerà il comando più recente che inizia con "pi
" e lo eseguirà immediatamente:
! Pi
Puoi aggiungere un: p
a una qualsiasi delle espansioni precedenti e bash stamperà il comando sul terminale senza eseguirlo. Questo è utile se vuoi confermare che stai selezionando il comando corretto prima di eseguirlo.
! 12: p
!!: p
! Testo: p
Bash consente anche di eseguire un nuovo comando, ma usa gli argomenti dei comandi precedenti nella cronologia. Questo può aiutarti a riutilizzare rapidamente argomenti lunghi o complicati senza doverli ridigitare.
comando! $
Per esempio, supponiamo che tu abbia eseguito il comandotouch / home / chris / some_long_file_name_you_dont_want_to_type_again
. Ora si desidera eseguire il comandonano / home / chris / some_long_file_name_you_dont_want_to_type_again
. Invece di digitare tutto da zero, è possibile eseguire:
nano! $
Il! $
farebbe in modo che bash riempia automaticamente l'ultimo argomento del comando precedente.
Questo solo riempie l'ultimo argomento. Quindi, se eseguiping google.com -c 4
e poi eseguiping! $
, questo si espanderebbe a "ping 4
".
Per risolvere questa situazione, puoi usare il seguente trucco per espandere il primo argomento sulla riga, piuttosto che l'ultimo:
comando! ^
Quindi, se hai corsoping google.com -c 4
e quindi eseguitoping! ^
, bash lo espande in "ping google.com"
.
Per inserire tutti gli argomenti utilizzati nel comando precedente anziché solo un singolo argomento, dovresti usare quanto segue:
comando! *
Quindi, se lanciping! *
invece, bash riempirebbe automaticamente tutti gli argomenti usati nel comando precedente .
Puoi usare lo stesso trucco che usi per eseguire i comandi dalla tua cronologia per ottenere argomenti da essi. Utilizza il seguente modulo.
comando! Abc: #
Ad esempio, abbiamo eseguito il comandosudo hostname ubuntu
precedente Se eseguiremo il seguente comando, bash cercherà al contrario nella cronologia per trovare l'ultimo comando beginni ng con le lettere digitiamo e inseriamo l'argomento che specifichiamo. Quindi, se eseguiamoecho! Su: 2
, bash ricercherà per trovare l'ultimo comando che inizia con "su
" e riempie il suo secondo argomento, che è "ubuntu
".
Altri trucchi funzionano come ci si potrebbe aspettare. Ad esempio, sostituendo il numero con un asterisco, noto come carattere jolly, bash riempie tutti gli argomenti del comando:
comando! Abc: *
Bash consente anche per rieseguire il comando precedente e specificare qualcosa che dovrebbe essere cambiato. Questo può essere utile per correggere un refuso in un comando. Ad esempio, il comando seguente eseguirà nuovamente il comando precedente, sostituendo il testo "abc
" in esso con il testo "xyz
".
^ abc ^ xyz
per Ad esempio, se per errore hai eseguitoping gogle.com
, puoi eseguire^ gog ^ goog
e bash eseguirà il comandoping google.com
.
La shell bash memorizza la cronologia dei comandi che sono stati eseguiti nel file di cronologia dell'account utente in ~ / .bash_history per impostazione predefinita. Ad esempio, se il tuo nome utente è bob, troverai questo file in /home/bob/.bash_history.
Perché la tua cronologia è memorizzata in un file, persiste tra una sessione e l'altra. Puoi eseguire alcuni comandi, uscire, tornare il giorno successivo e quei comandi saranno ancora nel file della cronologia pronti per essere visualizzati e utilizzati. Ogni account utente ha il proprio file di cronologia con una cronologia di comandi separata.
Per cancellare la cronologia di bash, è possibile eseguire il seguente comando. Questo cancella il contenuto del file .bash_history del tuo account utente:
cronologia -c
Bash si limita a ricordare un numero limitato di comandi per impostazione predefinita, impedendo che il file della cronologia aumenti troppo. Il numero di voci della cronologia di bash remembers è controllato dalHISTSIZE
variabile. Il valore predefinito è in genere di 500 o 1000 voci. È possibile eseguire il seguente comando per visualizzare la dimensione della cronologia di bash sul proprio sistema.
echo $ HISTSIZE
Per impostare la cronologia su zero, eseguire il seguente comando.
HISTSIZE = 0
Per il sessione corrente, bash non memorizzerà alcuna voce della cronologia a meno che non si esegua un comando comeHISTSIZE = 1000
per impostarlo su un certo numero di voci.
Bash consente di ignorare le voci della cronologia che iniziano con uno spazio se si imposta la variabileHISTCONTROL
suignorespace.
HISTCONTROL = ignorespace
Digitare uno spazio prima di un comando prima di eseguirlo nella bash shell e il comando verrà eseguito normalmente, ma non verrà visualizzato nella cronologia se questa variabile è abilitata. Ciò consente di mantenere la cronologia un po 'più pulita, scegliendo di eseguire comandi senza che vengano visualizzati nella cronologia.
Bash consente anche di ignorare i comandi duplicati che possono ingombrare la cronologia. Per fare ciò, impostareHISTCONTROL
aignoredups.
HISTCONTROL = ignorati
Per utilizzare sia la funzioneignorespace
eignoredups
, impostareHISTCONTROL
variabile aignoreboth.
HISTCONTROL = ignoreboth
Si noti che le variabili di bash impostate verranno mantenute solo per la sessione corrente. Dovrai aggiungerli al file .bashrc del tuo account utente per far sì che questi valori vengano impostati automaticamente in ogni sessione di bash che inizi, se preferisci.
La shell bash è uno strumento complesso con molte più opzioni di queste. Consulta le sezioni Espansione di Storia e Bash History nel manuale ufficiale di bash informazioni più dettagliate e altri trucchi avanzati che puoi usare.
Come configurare Google Cardboard su Android
Se sei affamato di un assaggio di questa nuova realtà virtuale, Google Cardboard è di gran lunga il modo più economico (e semplice) per ottenere sull'azione. Certo, non è di alta qualità come qualcosa come l'HTC Vive, Oculus Rift, o anche il Samsung Gear VR focalizzato sul cellulare o Google Daydream, ma è comunque una bella esperienza per il piccolo investimento coinvolto.
Perché i giochi MOBA come League of Legends sono così popolari?
I Battle Arena online multigiocatore, o MOBA, si riferiscono a un sottogruppo molto specifico di titoli di strategia top-down, basati su squadra. Nonostante umili origini come una propaggine modellata di giochi di strategia in tempo reale, questi titoli sono esplosi in prima linea nel settore dei giochi per PC, guadagnando decine di milioni di giocatori e un posto ai vertici del mondo degli eSports (blech *).