Gli operatori di concatenazione dei comandi sono caratteri speciali utilizzati per scrivere script di shell in miniatura nella riga di comando. Sono generalmente utilizzati per eseguire comandi in una determinata sequenza, definita dalla posizione degli operatori tra i comandi. Questo è incredibilmente utile per automatizzare le attività.
Impariamo alcuni operatori di concatenamento comuni su Linux che possono aiutarti a completare le attività più velocemente e con intervalli utente minori.
1. L'operatore commerciale (&)
Spesso quando si apre un programma o si esegue un comando dalla shell, è necessario attendere fino al termine del comando o uscire manualmente dal programma prima di poter continuare a utilizzare la shell. Ecco dove entra in gioco l'operatore e commerciale (&).
Aggiungendo l'operatore e commerciale a qualsiasi comando, imponi la shell a esegui quel comando Linux in background in modo da poter continuare a utilizzare la shell untethered.
gedit &
Di solito, se esegui gedit dal terminale, non sarai in grado di utilizzare il terminale a meno che non chiudi l'editor di testo. Ma, aggiungendo l'operatore e commerciale, puoi farlo funzionare in background e continuare a usare la shell immediatamente.
2. L'operatore punto e virgola (;)
L'operatore punto e virgola è un operatore di concatenamento di Linux incredibilmente utile che puoi utilizzare per eseguire comandi in un ordine sequenziale definito. Ordina i tuoi comandi e separali con punti e virgola.
pwd; mkdir test; CDtest; toccare file
La sintassi di cui sopra impone alla shell di eseguire ogni comando uno dopo l'altro. Si noti che la shell non controlla se ogni comando termina correttamente. Non appena la shell riceve un codice di ritorno, passa all'esecuzione del comando successivo.
3. L'operatore OR (||)
L'operatore OR eseguirà il comando che segue solo se il comando precedente fallisce, cioè restituisce un codice di uscita 0. Funziona come una porta logica OR, che restituisce un valore di 1 quando l'input è 0.
cattivo_comando || ls
In questa sintassi di esempio, bad_command è un comando falso che non verrà eseguito e poiché fallisce, il comando succede all'operatore OR, che è il comando ls, verrà eseguito correttamente.
4. L'operatore del tubo (|)
L'operatore pipe dirige l'output del comando precedente come input per il comando successivo. È più comunemente usato per filtrare i dati con il comando grep.
test del gatto | grep -i "utilizzare"
Questo comando invia l'output di il comando del gatto come input per il comando grep, che quindi filtra l'output rispetto a una stringa specificata.
5. L'operatore AND (&&)
Questo operatore funziona in modo simile all'operatore punto e virgola tranne che, a differenza dell'operatore punto e virgola, l'operatore AND eseguirà i comandi solo se il comando precedente è stato eseguito correttamente.
pwd && prova mkdir && cd prova && bad_command && ls
In questa sintassi di esempio, la shell eseguirà correttamente tutti i comandi fino a bad_command. Tuttavia, poiché bad_command non viene eseguito, la shell restituirà un errore e salterà il comando ls.
6. L'operatore NOT (!)
L'operatore NOT funziona in modo simile a un'istruzioneexcept nella programmazione. Ad esempio, se si desidera eseguire un'operazione su un numero elevato di file in una directory ma si desidera escludere un file few in base a qualche parametro, allora puoi usare l'operatore NOT passando il parametro dopo il carattere NOT (!).
rm-R !(*.TXT)
Questo comando di esempio rimuoverà in modo ricorsivo tutti i file in una directory ad eccezione dei file che hanno un ".TXT"estensione.
7. L'operatore di precedenza ((..))
I comandi che seguono gli operatori AND e OR dipendono dal codice di uscita del comando precedente. Questi operatori sono binari e valutano solo i due comandi che li precedono e li seguono.
Pertanto, quando si lavora con più operatori, è importante impostare i gruppi e la precedenza per garantire che la sequenza di esecuzione soddisfi le proprie aspettative.
(ls *.txt > txt-file.list && cp *.tx ~) && (ls *.deb > deb-packages.list && cp *.deb ~) || eco "Prova di precedenza!"
In questa sintassi di esempio, entrambi i gruppi di comandi devono restituire un codice di uscita 0 per garantire la corretta esecuzione dell'ultimo comando. Questo esempio richiede che entrambi i comandi nel primo set() terminino con 0 per l'esecuzione del secondo set().
8. L'operatore di combinazione ({..})
Come suggerisce il nome, l'operatore di combinazione viene utilizzato per raggruppare i comandi. Qualunque comando tu voglia raggruppare, puoi inserirlo tra parentesi graffe e verrà eseguito in base al codice di uscita del primo comando.
prova -f /etc/passwd && {pwd; data} && echo $0; eco "Ciao"
La sintassi di esempio verificherà se il file /etc/passwd è presente, stampa la directory di lavoro corrente, la data, il nome della shell ed echo "Ciao".
9. Concatenazione o Operatore Escape (\)
L'operatore di concatenazione o escape ha due funzioni. Puoi usarlo per concatenare due comandi o come carattere di escape quando lavori con le stringhe nella shell.
mkdir test0 test1 \ test2
eco "Ciao! da IL
l'altra parte"
Il primo comando creerà quattro directory denominate da test0 a test2 e il secondo comando stamperà la stringa separata da una nuova riga.
10. Gli operatori di reindirizzamento (>, >>,
Gli operatori di reindirizzamento reindirizzano l'output o l'input a un file riscrivendo il file o aggiungendolo. Se si desidera riscrivere un file, è necessario utilizzare la sintassi della parentesi angolare singola (>). Se vuoi aggiungere un file, dovrai usare la sintassi della doppia parentesi angolare (>>).
eco "dsd"> test; eco "bsss">> test
Nella sintassi di esempio, il primo comando sovrascriverà il file "test" con la stringa fornita ma, nel secondo comando, la stringa fornita verrà aggiunta al file di test.
Accelera il flusso di lavoro del tuo terminale Linux
Mentre l'utilizzo di operatori speciali semplificherà in modo significativo l'esecuzione delle attività per te, ci sono molti altri modi per accelerare il tuo flusso di lavoro.
Un modo semplice e utile per fare di più in meno tempo è familiarizzare con alcune utili scorciatoie della shell. Abituarsi a queste scorciatoie farà molto e ti ritroverai a fare affidamento su di esse per tutto il tempo che usi Linux.