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.