15 Caratteri Speciali che Avete Bisogno di Sapere per Bash

0
2174

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