Ricerca nel sito web

LFCS n. 1: come utilizzare il comando 'sed' per la manipolazione dei file in Linux


La Linux Foundation ha annunciato la certificazione LFCS (Linux Foundation Certified Sysadmin), un nuovo programma che mira ad aiutare le persone di tutto il mondo a ottenere la certificazione nelle attività di amministrazione di sistema da base a intermedia per i sistemi Linux.

Ciò include il supporto di sistemi e servizi in esecuzione, insieme alla risoluzione dei problemi e all'analisi diretta e un processo decisionale intelligente per inoltrare i problemi ai team di progettazione.

A partire dall'ultima revisione dell'11 agosto 2023, abbiamo tenuto meticolosamente conto dei domini e delle competenze, in linea con la data di entrata in vigore dell'11 maggio 2023, come dichiarato ufficialmente da la Fondazione Linux.

La serie sarà intitolata Preparazione per le parti da 1 a LFCS (Linux Foundation Certified Sysadmin) da 1 a 33 e coprirà gli argomenti seguenti argomenti:

Part 1

Come utilizzare il comando "Sed" per manipolare i file in Linux

Part 2

Come installare e utilizzare Vi/Vim in Linux

Part 3

Come comprimere file e directory e trovare file in Linux

Part 4

Partizionamento dei dispositivi di archiviazione, formattazione dei file system e configurazione della partizione di swap

Part 5

Monta/smonta filesystem locali e di rete (Samba e NFS) in Linux

Part 6

Assemblaggio di partizioni come dispositivi RAID: creazione e gestione dei backup di sistema

Part 7

Gestione del processo e dei servizi di avvio del sistema (SysVinit, Systemd e Upstart

Part 8

Come gestire utenti e gruppi, autorizzazioni file e accesso Sudo

Part 9

Gestione dei pacchetti Linux con Yum, RPM, Apt, Dpkg, Aptitude e Zypper

Part 10

Apprendimento degli script di shell di base e della risoluzione dei problemi del file system

Part 11

Come gestire e creare LVM utilizzando i comandi vgcreate, lvcreate e lvextend

Part 12

Come esplorare Linux con la documentazione e gli strumenti della Guida installati

Part 13

Come configurare e risolvere i problemi di Grand Unified Bootloader (GRUB)

Part 14

Monitora l'utilizzo delle risorse dei processi Linux e imposta i limiti dei processi in base al singolo utente

Part 15

Come impostare o modificare i parametri di runtime del kernel nei sistemi Linux

Part 16

Implementazione del controllo degli accessi obbligatorio con SELinux o AppArmor in Linux

Part 17

Come impostare elenchi di controllo di accesso (ACL) e quote disco per utenti e gruppi

Part 18

Installazione dei servizi di rete e configurazione dell'avvio automatico all'avvio

Part 19

Una guida definitiva per configurare il server FTP per consentire accessi anonimi

Part 20

Configura un server DNS di memorizzazione nella cache ricorsiva di base e configura le zone per il dominio

Part 21

Come installare, proteggere e ottimizzare le prestazioni del server database MariaDB

Part 22

Come installare e configurare il server NFS per la condivisione del file system

Part 23

Come configurare Apache con hosting virtuale basato sul nome con certificato SSL

Part 24

Come configurare un firewall Iptables per abilitare l'accesso remoto ai servizi in Linux

Part 25

Come trasformare un Linux in un router per gestire il traffico in modo statico e dinamico

Part 26

Come impostare filesystem crittografati e scambiare utilizzando lo strumento Cryptsetup

Part 27

Come monitorare l'utilizzo del sistema, le interruzioni e la risoluzione dei problemi dei server Linux

Part 28

Come configurare un repository di rete per installare o aggiornare i pacchetti

Part 29

Come controllare le prestazioni, la sicurezza e la risoluzione dei problemi della rete

Part 30

Come installare e gestire macchine virtuali e contenitori

Part 31

Impara le basi di Git per gestire i progetti in modo efficiente

Part 32

Una guida per principianti alla configurazione degli indirizzi IPv4 e IPv6 in Linux

Part 33

Una guida per principianti alla creazione di collegamenti e bridging di rete in Ubuntu

Questo post è la parte 1 di una serie di 33 tutorial, che coprirà i domini e le competenze necessari richiesti per l'esame di certificazione LFCS. Detto questo, accendi il tuo terminale e iniziamo.

Elaborazione di flussi di testo in Linux

Linux tratta l'input e l'output dei programmi come flussi (o sequenze) di caratteri. Per iniziare a comprendere il reindirizzamento e le pipe, dobbiamo prima comprendere i tre tipi più importanti di flussi di I/O (Input e Output), che sono in realtà file speciali (per convenzione in UNIX e Linux, flussi di dati e periferiche, o file di dispositivo, vengono trattati anche come file ordinari).

La differenza tra > (operatore di reindirizzamento) e | (operatore pipeline) è che mentre il primo collega un comando con un file, il secondo collega l'output di un comando con un altro comando.

command > file
command1 | command2

Poiché l'operatore di reindirizzamento crea o sovrascrive i file in modo silenzioso, dobbiamo usarlo con estrema cautela e non confonderlo mai con una pipeline.

Un vantaggio delle pipe sui sistemi Linux e UNIX è che non vi è alcun file intermedio coinvolto in una pipe: lo stdout del primo comando non viene scritto in un file e quindi letto dal secondo comando.

Per i seguenti esercizi pratici utilizzeremo la poesia “Un bambino felice” (autore anonimo).

Utilizzando il comando sed

Il nome sed è l'abbreviazione di editor di flusso. Per coloro che non hanno familiarità con il termine, un editor di flusso viene utilizzato per eseguire trasformazioni di testo di base su un flusso di input (un file o input da una pipeline).

Cambia da minuscolo a maiuscolo nel file

L'uso più basilare (e popolare) di sed è la sostituzione dei caratteri. Inizieremo cambiando ogni occorrenza della y minuscola in MAIUSCOLA Y e reindirizzando l'output a ahappychild2.txt.

Il flag g indica che sed dovrebbe eseguire la sostituzione per tutte le istanze di term su ogni riga del file. Se questo flag viene omesso, sed sostituirà solo la prima occorrenza del termine su ogni riga.

Sintassi di base di Sed:
sed ‘s/term/replacement/flag’ file
Il nostro esempio:
sed ‘s/y/Y/g’ ahappychild.txt > ahappychild2.txt

Cerca e sostituisci Word nel file

Se vuoi cercare o sostituire un carattere speciale (come /, \, &) devi eseguirne l'escape, nel termine o stringhe sostitutive, con una barra rovesciata.

Ad esempio, sostituiremo la parola e con una e commerciale. Allo stesso tempo, sostituiremo la parola I con You quando la prima si trova all'inizio di una riga.

sed 's/and/\&/g;s/^I/You/g' ahappychild.txt

Nel comando precedente, ^ (segno di accento circonflesso) è un'espressione regolare ben nota utilizzata per rappresentare l'inizio di una riga.

Come puoi vedere, possiamo combinare due o più comandi di sostituzione (e utilizzare espressioni regolari al loro interno) separandoli con un punto e virgola e racchiudendo l'insieme tra virgolette singole.

Stampa le righe selezionate da un file

Un altro utilizzo di sed è mostrare (o eliminare) una parte scelta di un file. Nell'esempio seguente, visualizzeremo le prime 5 righe di /var/log/messages dell'8 giugno.

sed -n '/^Jun  8/ p' /var/log/messages | sed -n 1,5p

Tieni presente che per impostazione predefinita sed stampa ogni riga. Possiamo sovrascrivere questo comportamento con l'opzione -n e poi dire a sed di stampare (indicato da p) solo la parte del file (o della pipe) che corrisponde al modello (8 giugno all'inizio della riga nel primo caso e righe da 1 a 5 comprese nel secondo caso).

Infine, può essere utile durante l'ispezione degli script o dei file di configurazione esaminare il codice stesso e tralasciare commenti. Il seguente sed one-liner cancella (d) le righe vuote o quelle che iniziano con # (il carattere | indica un booleano OR< tra le due espressioni regolari).

sed '/^#\|^$/d' apache2.conf

Comando univoco

Il comando uniq ci consente di segnalare o rimuovere righe duplicate in un file, scrivendo su stdout per impostazione predefinita. Dobbiamo notare che uniq non rileva le linee ripetute a meno che non siano adiacenti.

Pertanto, uniq è comunemente usato insieme a un sort precedente (che viene utilizzato per ordinare righe di file di testo). Per impostazione predefinita, sort accetta il primo campo (separato da spazi) come campo chiave. Per specificare un campo chiave diverso, dobbiamo utilizzare l'opzione -k.

Esempi di comandi Uniq

Il comando du -sch /percorso/della/directory/* restituisce l'utilizzo dello spazio su disco per sottodirectory e file all'interno della directory specificata in formato leggibile (mostra anche un totale per directory) e non ordinare l'output per dimensione, ma per sottodirectory e nome file.

Possiamo usare il seguente comando per ordinare in base alla dimensione.

du -sch /var/* | sort –h

Puoi contare il numero di eventi in un registro per data dicendo a uniq di eseguire il confronto utilizzando i primi 6 caratteri (-w 6) di ogni riga (dove la data è specificato) e anteponendo a ciascuna riga di output il numero di occorrenze (-c) con il seguente comando.

cat /var/log/mail.log | uniq -c -w 6

Infine, puoi combinare sort e uniq (come di solito). Considera il seguente file con un elenco di donatori, data di donazione e importo. Supponiamo di voler sapere quanti donatori unici ci sono.

Utilizzeremo il seguente comando cat per tagliare il primo campo (i campi sono delimitati da due punti), ordinare per nome e rimuovere le righe duplicate.

cat sortuniq.txt | cut -d: -f1 | sort | uniq

comando grep

Il comando grep cerca nei file di testo o (output del comando) l'occorrenza di un'espressione regolare specificata e restituisce qualsiasi riga contenente una corrispondenza sull'output standard.

Esempi di comandi Grep

Visualizza le informazioni da /etc/passwd per l'utente gacanepa, ignorando maiuscole e minuscole.

grep -i gacanepa /etc/passwd

Mostra tutto il contenuto di /etc il cui nome inizia con rc seguito da un singolo numero.

ls -l /etc | grep rc[0-9]

tr Utilizzo del comando

Il comando tr può essere utilizzato per tradurre (modificare) o eliminare caratteri da stdin e scrivere il risultato su stdout.

Cambia tutto da minuscolo a maiuscolo nel file sortuniq.txt.

cat sortuniq.txt | tr [:lower:] [:upper:]

Riduci il delimitatore nell'output di ls –l a un solo spazio.

ls -l | tr -s ' '

Taglia l'utilizzo dei comandi

Il comando cut estrae porzioni di righe di input (da stdin o file) e visualizza il risultato sullo standard output, in base al numero di byte (opzione -b), caratteri (-c) o campi (-f).

In quest'ultimo caso (basato sui campi), il separatore di campo predefinito è una tabulazione, ma è possibile specificare un delimitatore diverso utilizzando l'opzione -d.

Esempi di comandi di taglio

Estrai gli account utente e le shell predefinite loro assegnate da /etc/passwd (l'opzione –d ci permette di specificare il delimitatore del campo e il –f< L'opzione indica quali campi verranno estratti.

cat /etc/passwd | cut -d: -f1,7

Riassumendo, creeremo un flusso di testo composto dal primo e dal terzo file non vuoto dell'output dell'ultimo comando. Utilizzeremo grep come primo filtro per verificare le sessioni dell'utente gacanepa, quindi comprimeremo i delimitatori in un solo spazio (tr -s ' ' ).

Successivamente, estrarremo il primo e il terzo campo con cut e infine ordineremo in base al secondo campo (indirizzi IP in questo caso) mostrando univoco.

last | grep gacanepa | tr -s ' ' | cut -d' ' -f1,3 | sort -k2 | uniq

Il comando precedente mostra come è possibile combinare più comandi e pipe in modo da ottenere dati filtrati secondo i nostri desideri. Sentiti libero di eseguirlo anche per parti, per aiutarti a vedere l'output che viene trasmesso da un comando a quello successivo (questa può essere un'ottima esperienza di apprendimento, tra l'altro!).

Riepilogo

Sebbene questo esempio (insieme al resto degli esempi nel tutorial corrente) possa non sembrare molto utile a prima vista, rappresenta un buon punto di partenza per iniziare a sperimentare i comandi utilizzati per creare, modificare e manipolare file dal sistema Linux. riga di comando.

Sentiti libero di lasciare le tue domande e i tuoi commenti qui sotto: saranno molto apprezzati!

L'eBook LFCS è ora disponibile per l'acquisto. Ordina la tua copia oggi e inizia il tuo viaggio per diventare un amministratore di sistema Linux certificato!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

Ultimo ma non meno importante, considera l'acquisto del voucher per l'esame utilizzando i seguenti collegamenti per guadagnarci una piccola commissione, che ci aiuterà a mantenere aggiornato questo libro.