Aumenta l’efficienza eseguendo più comandi contemporaneamente in Linux

Aumenta l’efficienza eseguendo più comandi contemporaneamente in Linux
Immagine caratteristica Accelera il processo Comandi multipli

Vuoi aumentare la tua produttività? Considera l’esecuzione di più comandi contemporaneamente nel tuo terminale Linux. Questo approccio ti consente di eseguire comandi di sequenza semplici, eseguire attività in background e gestire i comandi condizionali collettivamente.

In questo articolo approfondiremo diverse tecniche per eseguire comandi in sequenza e contemporaneamente su un terminale Linux.

I vantaggi dell’esecuzione di più comandi contemporaneamente

Che tu stia eseguendo attività di manutenzione di routine, elaborando grandi set di dati o automatizzando segmenti del tuo flusso di lavoro, la combinazione di comandi può semplificare le tue operazioni e aumentare l’efficienza complessiva.

Ad esempio, quando si esegue il backup di più directory, è possibile collegare i comandi anziché gestirli singolarmente, risparmiando tempo e fatica.

Spesso concatena i comandi quando installo pacchetti Linux che richiedono diversi moduli. In questo modo, mi assicuro che il pacchetto e le sue dipendenze vengano installati in un’unica azione, eliminando la digitazione ripetitiva.

Esecuzione sequenziale dei comandi

Questo metodo è il mio preferito quando utilizzo il terminale. Possiamo collegare i comandi in modo che vengano eseguiti uno dopo l’altro, indipendentemente dal fatto che il comando precedente sia stato eseguito correttamente.

Per eseguire questi comandi in ordine, basta usare un punto e virgola ;come separatore. Quando si preme Invio, il terminale elabora il comando iniziale, attende che venga completato e poi procede al successivo.

Ad esempio, se si desidera aggiornare il sistema ed eliminare contemporaneamente i pacchetti inutilizzati, è possibile eseguire quanto segue:

Aggiornamento, potenziamento e pulizia del sistema Ubuntu tramite il gestore pacchetti apt.

Concatenando questi comandi, si impone l’esecuzione sequenziale, assicurando che ogni attività venga completata solo dopo la conclusione della precedente, mantenendo così l’efficienza.

Esecuzione di comandi basata sulle condizioni

Se si desidera eseguire il secondo comando solo se il primo ha esito positivo (o negativo), è possibile sfruttare l’esecuzione condizionale tramite l’uso degli operatori &&(AND) e ||(OR).

Esegui se il primo comando riesce

Per garantire che un comando venga eseguito solo se il precedente ha avuto esito positivo, utilizzare l’ &&operatore tra i comandi.

Ad esempio, se si desidera creare una nuova directory e poi accedervi solo se la creazione della directory ha esito positivo, utilizzare:

Creazione e modifica simultanea della directory.

Se il primo comando fallisce, il comando successivo non verrà eseguito.

Esegui se il primo comando fallisce

|| operatore. Ciò è particolarmente utile per i comandi di fallback o per registrare errori senza interrompere il flusso di lavoro.

Spesso trovo questa pratica utile durante le operazioni sui file, come la copia di un file in una posizione di backup. Se la copia fallisce, voglio essere informato senza interrompere le mie attività in corso. Puoi strutturarla in questo modo:

cp file_name /backup || echo "Failed!" >> error_log.txt

In questo caso, il cpcomando tenta di copiare il file designato nella directory di backup. Se fallisce, l’ ||operatore esegue il comando successivo, che aggiunge il messaggio di errore a un registro degli errori. In questo modo, il flusso di lavoro continua senza interruzioni, documentando anche il problema per una revisione successiva.

Esecuzione di comandi in background

A volte, potresti non voler mettere in pausa per la conclusione di un’attività. Se un processo richiede molto tempo, puoi continuare a far fluire il tuo lavoro aggiungendo una e commerciale &alla fine del tuo comando.

Ad esempio, se desideri scaricare un file di grandi dimensioni da un URL specifico e continuare a lavorare su altre attività, puoi utilizzare:

sudo wget https://example.com/large-file.zip &

Ciò consente di continuare a lavorare sul terminale mentre il download viene eseguito in background.

Concatenamento di comandi con esecuzione in background

Cosa succede se vuoi collegare due comandi assicurandoti che il secondo venga eseguito in background dopo il completamento del primo? In questo caso, puoi utilizzare sia l’ |operatore pipe che l’e commerciale &.

La barra verticale |indirizza l’output del primo comando come input per il secondo, mentre la e commerciale &consente l’esecuzione del secondo comando in background.

Ad esempio, per leggere un file di grandi dimensioni ed estrarre le parole chiave, salvando i risultati in un nuovo file, è possibile utilizzare l’ >operatore di reindirizzamento:

cat samplefile.txt | grep "Project" > output.txt &
Ricerca in file di grandi dimensioni e salvataggio separato dei risultati specificati.

Con questa configurazione, sia le operazioni di ricerca che di salvataggio verranno eseguite in background. In questo modo, puoi eseguire altri comandi senza interruzioni mentre il file viene elaborato.

Esecuzione di più comandi contemporaneamente con Xargs

Se sei ansioso di migliorare le tue capacità multitasking, considera l’esecuzione di comandi in parallelo utilizzando il xargscomando. Ciò consente l’esecuzione simultanea di più comandi anziché gestirli in sequenza.

Il xargscomando suddivide in modo efficiente un elenco di argomenti in batch più piccoli, eseguendo contemporaneamente un comando specifico su ciascun batch.

Ad esempio, se hai un elenco di URL archiviati in un file e vuoi scaricarli tutti in una volta, invece di farlo uno per uno, puoi eseguire:

cat urls_file.txt | xargs -n 1 -P 4 wget

In questo caso, -n 1indirizza xargsl’elaborazione di un argomento per comando e -P 4gli ordina di eseguire simultaneamente quattro comandi. Ciò accelera notevolmente il processo di download rispetto a un approccio sequenziale.

Conclusione

In sintesi, è possibile combinare i comandi utilizzando punti e virgola ;, implementare l’esecuzione condizionale con &&e ||, eseguire processi in background con &e potenziare le capacità multitasking tramite l’esecuzione parallela utilizzando xargs.

Credito immagine: Unsplash . Tutte le modifiche e gli screenshot sono di Haroon Javed.

Fonte

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *