Se si desidera padroneggiare la shell Bash di Linux, macOS, o un altro sistema UNIX-like, caratteri speciali (come ~, *, |, e >) sono fondamentali. Noi ti aiuteranno a svelare queste criptiche Linux sequenze di comando e diventare un eroe dei geroglifici.
Quali Sono I Caratteri Speciali?
Ci sono una serie di caratteri che la Bash shell tratta in due modi diversi. Quando si digita il guscio, si comportano come le istruzioni o comandi e indica alla shell di eseguire una certa funzione. Pensare a loro come un solo carattere comandi.
A volte, si desidera solo per la stampa di un carattere e non hanno bisogno di agire come un simbolo magico. C’è un modo è possibile utilizzare un carattere per rappresentare se stesso, piuttosto che la sua funzione speciale.
Vi mostreremo quali caratteri sono “speciali” o “meta-” personaggi, oltre a come si possono utilizzare funzionalmente e letteralmente.
~ Home Directory
La tilde (~) è una scorciatoia per la vostra home directory. Significa che non è necessario digitare il percorso completo della directory home in comandi. Ovunque vi troviate nel file system, è possibile utilizzare questo comando per andare alla home directory:
cd ~
È inoltre possibile utilizzare questo comando con i relativi percorsi. Per esempio, se sei da qualche parte nel file di sistema non è sotto la tua cartella home, e si desidera cambiare la directory di archivio nella vostra directory di lavoro, usare la tilde per farlo:
cd ~/lavoro/archivio
. Directory Corrente
Un punto (.) rappresenta la directory corrente. Si vede negli elenchi di directory, se si utilizza l’opzione-a (tutti) opzione con ls.
ls-a
È inoltre possibile utilizzare il periodo di comandi per rappresentare il percorso della directory corrente. Per esempio, se si desidera eseguire uno script dalla directory corrente, si dovrebbe chiamare così:
./script.sh
Questo dice Bash a guardare nella directory corrente per il script.sh file. In questo modo, non cercare la directory nel percorso per la corrispondenza eseguibile o script.
.. Parent Directory
Il periodo doppio o “double dot” (..) rappresenta la directory padre di quello attuale. È possibile utilizzare questo per salire di un livello nella struttura della directory.
cd ..
È inoltre possibile utilizzare questo comando con i percorsi relativi, ad esempio, se vuoi salire di un livello nell’albero delle directory, e quindi di entrare in un’altra directory a quel livello.
È inoltre possibile utilizzare questa tecnica per spostarsi rapidamente in una directory allo stesso livello nell’albero delle directory come quello attuale. Si salire di un livello, e poi di nuovo in basso di una in una directory diversa.
cd ../gc_help
/ Percorso Separatore Di Directory
È possibile utilizzare una barra (/)—spesso chiamato semplicemente una barra di separare le directory in un percorso.
ls ~/lavoro/archivio
Una barra di avanzamento rappresenta il più breve possibile percorso di directory. Perché tutto nella directory di Linux albero a partire dalla radice della directory, è possibile utilizzare questo comando per passare alla directory radice rapidamente:
cd /
# Commento o Tagliare le Stringhe
Più spesso, si utilizza l’hash o simbolo di cancelletto (#) per raccontare la shell quello che segue è un commento, e non deve agire su di esso. Si può usare negli script di shell, e meno utilmente—sulla riga di comando.
# Questo verrà ignorato dalla shell Bash
Non è realmente ignorato, tuttavia, perché è aggiunto alla vostra storia di comando.
È inoltre possibile utilizzare l’hash per tagliare una variabile stringa e rimuovere il testo dall’inizio. Questo comando crea una variabile di tipo stringa chiamata this_string.
In questo esempio, si può assegnare il testo “Dave Geek!” per la variabile.
this_string=”Dave Geek!”
Questo comando utilizza echo per stampare le parole “How-To” per la finestra del terminale. Recupera il valore memorizzato nella variabile stringa tramite un parametro di espansione. Perché aggiungiamo l’hash e il testo “Dave”, che consente di ritagliare la porzione di stringa prima è passato a echo.
eco Come ${this_string#Dave}
Questo non cambia il valore memorizzato nella variabile stringa; riguarda solo ciò che è inviata a l’eco. Possiamo usare echo per stampare il valore della variabile di stringa una volta di più e controllare questo:
echo $this_string
? Singolo Carattere Jolly
Shell Bash supporta tre caratteri jolly, uno dei quali è il punto interrogativo (?). Utilizzare i caratteri jolly per sostituire i caratteri nel nome del file template. Un nome di file che contiene un carattere jolly forme di un modello che corrisponde a una serie di nomi di file, piuttosto che uno solo.
Il punto di domanda jolly rappresenta esattamente un carattere. Si consideri il seguente modello nome file:
ls badge?.txt
Questo si traduce come “elenco di tutti i file con un nome che inizia con “badge” ed è seguito da un qualsiasi singolo carattere prima che l’estensione del file.”
Abbina i seguenti file. Nota che alcuni numeri e alcune lettere dopo la “badge” parte del nome del file. Il punto di domanda jolly, la corrispondenza di lettere e numeri.
Nome del modello non corrisponde “badge.txt” anche se, perché il nome del file non ha un carattere compreso tra “badge” e l’estensione di file. Il punto di domanda jolly deve corrispondere un carattere corrispondente al nome del file.
È inoltre possibile utilizzare il punto interrogativo per trovare tutti i file con un numero specifico di caratteri nei nomi di file. In questo elenco sono presenti tutti i file di testo che contengono esattamente cinque caratteri del nome del file:
ls ?????.txt
* Sequenza Di Caratteri Jolly
È possibile utilizzare l’asterisco (*) come carattere jolly per indicare qualsiasi sequenza di caratteri, tra cui l’assenza di carattere. Si consideri il seguente modello nome file:
ls badge*
Questo corrisponde a tutte le caratteristiche seguenti:
Corrisponde a “badge.txt” perché il jolly rappresenta una qualsiasi sequenza di caratteri o no personaggi.
Questo comando indica tutti i file chiamato “fonte”, indipendentemente dalla estensione di file.
ls origine.*
[] Set Di Caratteri Jolly
Come descritto sopra, è possibile utilizzare il punto di domanda per rappresentare un singolo carattere qualsiasi e l’asterisco rappresentano una qualsiasi sequenza di caratteri (inclusi, senza caratteri).
Si può formare un jolly con le parentesi quadre ( [] ) e i caratteri che contengono. Il relativo carattere nel nome del file deve corrispondere almeno uno dei caratteri jolly set di caratteri.
In questo esempio, il comando si traduce in: “qualsiasi file con un “.png” estensione di un nome di file che iniziano con “pipes_0,” e in cui il carattere successivo è di 2, 4, o 6.”
ls badge_0[246].txt
È possibile utilizzare più di un set di staffe per modello nome file:
ls badge_[01][789].txt
È inoltre possibile includere intervalli di set di caratteri. Il seguente comando consente di selezionare i file con i numeri da 21 a 25 e 31 a 35 nel nome del file.
ls badge_[23][1-5].txt
; Separatore Di Comandi Di Shell
È possibile digitare il numero di comandi che ti piace sulla riga di comando, come lungo come lei li separano con un punto e virgola (;). Faremo nel seguente esempio:
ls > count.txt; wc -l count.txt; rm count.txt
Si noti che il secondo comando viene eseguito anche se il primo fallisce, il terzo viene eseguito anche se il secondo non riesce, e così via.
Se si desidera interrompere la sequenza di esecuzione se il comando ha esito negativo, l’uso di una doppia e commerciale (&&) invece di un punto e virgola:
cd ./doesntexist && cp ~/Documenti/report/* .
& Processo In Background
Dopo aver digitato un comando in una finestra di terminale e completa, si ritorna al prompt dei comandi. Normalmente, questo richiede solo un momento o due. Ma se si avvia un’applicazione, come gedit, non è possibile utilizzare la finestra di terminale fino a quando si chiude l’applicazione.
Si può, comunque, di avviare un’applicazione, come un processo in background e continua a utilizzare la finestra di terminale. Per fare questo, basta aggiungere una “e commerciale” per la riga di comando:
gedit command_address.pagina &
Bash mostra l’ID del processo che ha lanciato, e poi si ritorna alla riga di comando. È quindi possibile continuare a utilizzare la finestra di terminale.
< Input Di Reindirizzamento
Molti comandi di Linux accettare un file come parametro e prendere i loro dati dal file. La maggior parte di questi comandi possono anche ricevere l’input da un ruscello. Per creare un flusso, è possibile utilizzare la sinistra parentesi angolari ( < ), come illustrato nell’esempio riportato di seguito, per reindirizzare un file in un comando:
sort < words.txt
Quando un comando di ingresso reindirizzato in esso, si potrebbe comportarsi in modo diverso rispetto a quando si legge da un file di nome.
Se usiamo wc per contare le parole, righe e caratteri in un file, stampa i valori, e quindi il nome del file. Se vi reindirizzare il contenuto del file wc, stampa gli stessi valori numerici, ma non so il nome del file da cui i dati provengono. Non è possibile stampare un nome di file.
Qui sono alcuni esempi di come è possibile utilizzare wc:
wc words.txt
wc < words.txt
> La Ridirezione Dell’Output
È possibile utilizzare l’angolo destro della staffa ( > ) per reindirizzare l’output di un comando (solitamente, in un file); ecco un esempio:
ls > files.txt
gatto files.txt
La ridirezione dell’Output può anche reindirizzare i messaggi di errore se si utilizza una cifra (2, nel nostro esempio) con >. Ecco come fare:
wc doesntexist.txt 2> errors.txt
gatto errors.txt
CORRELATI: Quali Sono stdin, stdout e stderr su Linux?
| Tubo
Un “tubo” catene di comandi insieme. Si prende l’output di un comando e la alimenta al prossimo ingresso. Il numero di sottofondo comandi (la lunghezza della catena) è arbitrario.
Qui, usiamo gatto per alimentare i contenuti del words.txt file grep, che estrae ogni riga che contiene un minuscole o maiuscole “C.” grep passerà poi queste linee di sorta. sorta utilizza l’opzione-r (reverse) opzione, in modo ordinato i risultati verranno visualizzati in ordine inverso.
Abbiamo digitato il seguente:
gatto words.txt | grep [cC] | sort-r
! Pipeline di logica NON e la Storia dell’Operatore
Il punto esclamativo (!) è un operatore logico che significa NON.
Ci sono due comandi in questa riga di comando:
[ ! -d ./backup ] && mkdir ./backup
- Il primo comando è il testo all’interno delle parentesi quadre;
- Il secondo comando è il testo che segue il doppio e commerciali &&.
Il primo comando che usi ! come un operatore logico. Le parentesi quadre indicano un test sta per essere fatta. L’-d (directory) opzione di test per la presenza di una directory chiamata di backup. Il secondo comando crea la directory.
Perché due e commerciali separare i due comandi Bash esegue il secondo se il primo riesce. Tuttavia, che è l’opposto di ciò di cui abbiamo bisogno. Se il test per la directory “backup” riesce, non abbiamo bisogno di creare. E se il test per la directory “backup “non riesce, il secondo comando non verrà eseguito, e la mancanza di directory non sarà creato.
Questo è dove l’operatore logico ! entra in gioco. Esso agisce come un logico e NON. Così, se il test ha esito positivo (cioè, la directory esiste), l’ ! la ribalta che “NON è successo”, che è il fallimento. Così, il secondo comando non è attivato.
Se la directory test ha esito negativo (cioè, la directory non esiste), l’ ! modifiche in risposta a “NON fallimento” che è successo. Così, il comando per creare la directory mancante viene eseguito.
Che po’! confezioni un sacco di punch quando ne avete bisogno!
Per controllare lo stato della cartella di backup, è possibile utilizzare il comando ls e-l (long list) e d (directory) opzioni, come mostrato di seguito:
ls -l -d backup
È anche possibile eseguire i comandi del comando di storia con il punto esclamativo. La storia comando elenca la cronologia dei comandi, e quindi digitare il numero del comando che si desidera eseguire nuovamente con ! per eseguirlo, come mostrato di seguito:
!24
Il seguente ri-esegue il comando precedente:
!!
La Variabile $ Espressioni
La Bash shell, è possibile creare variabili per contenere valori. Alcuni, come le variabili di ambiente, esistono sempre, e si può accedere in qualsiasi momento si apre una finestra di terminale. Questi hanno valori, come il tuo nome utente, home directory, e il percorso.
È possibile utilizzare l’eco per vedere il valore di una variabile—basta far precedere il nome della variabile con il segno di dollaro ($), come mostrato di seguito:
echo $UTENTE
echo $HOME
echo $PATH
Per creare una variabile, è necessario dare un nome e fornire un valore per tenere. Non è necessario utilizzare il simbolo del dollaro per creare una variabile. Devi solo aggiungere $ quando si fa riferimento a una variabile, come nel seguente esempio:
ThisDistro=Ubuntu
MyNumber=2001
echo $ThisDistro
echo $MyNumber
Aggiungere le parentesi graffe ( {} ) di tutto il segno di dollaro e di eseguire un parametro di espansione per ottenere il valore della variabile e consentire ulteriori trasformazioni del valore.
Questo crea una variabile che contiene una stringa di caratteri, come illustrato di seguito:
MyString=123456qwerty
Utilizzare il seguente comando echo stringa nella finestra di terminale:
echo ${MyString}
Per restituire la sottostringa a partire posizione 6 dell’intera stringa, utilizzare il comando riportato di seguito (c’e ‘ uno zero-offset, in modo che la prima posizione è pari a zero):
echo ${myString:6}
Se si desidera eco di una sottostringa che inizia alla posizione zero e contiene i prossimi sei caratteri, utilizzare il seguente comando:
echo ${myString:0:6}
Utilizzare il comando seguente per l’eco di una sottostringa che inizia alla posizione di quattro e contiene i successivi quattro caratteri:
echo ${myString:4:4}
Citando Caratteri Speciali
Se si desidera utilizzare un carattere speciale come un letterale (non speciale), è necessario indicare la shell Bash. Questo è chiamato citando, e ci sono tre modi per farlo.
Se racchiudi il testo tra virgolette (“…”), questo impedisce la Bash di agire sulla maggior parte dei caratteri speciali, e che solo la stampa. Un’eccezione degna di nota, però, è il segno di dollaro ($). Lo è ancora il personaggio per espressioni delle variabili, in modo da poter inserire i valori delle variabili in uscita.
Per esempio, questo comando consente di stampare la data e l’ora:
echo “Oggi è di $(data)”
Se racchiudi il testo tra virgolette singole ( ‘ … ’ ), come mostrato di seguito, si ferma la funzione di tutti i caratteri speciali:
echo ” Oggi è $(date)’
È possibile utilizzare una barra rovesciata ( ) per evitare che il carattere che segue il funzionamento come un carattere speciale. Questo è chiamato “fuga” il carattere; si veda l’esempio riportato di seguito:
echo “Oggi $(date)”
Basti pensare caratteri speciali come i comandi molto brevi. Se si memorizzano i loro usi, può beneficiare la vostra comprensione della shell Bash e altre persone script—immensamente.
CORRELATI: 37 Comandi Linux Importanti che Si Deve Sapere
CONTINUA A LEGGERE
- “Come Utilizzare i punti di Comando su Linux
- “Chrome Collegamenti Che Si Deve Sapere
- “Perché Si Dovrebbe Overcloccare la RAM (È Facile!)
- “Come Aumentare il Vostro MacBook di Archiviazione
- “Come Disattivare passare il Dito a Digitare sulla Tastiera dell’iPhone