Vyhledávání na webu

LFCS #1: Jak používat příkaz 'sed' pro manipulaci se soubory v Linuxu


Linux Foundation oznámila certifikaci LFCS (Linux Foundation Certified Sysadmin), nový program, jehož cílem je pomoci jednotlivcům na celém světě získat certifikaci pro základní až středně pokročilé úlohy správy systému pro systémy Linux.

To zahrnuje podporu běžících systémů a služeb spolu s řešením problémů a analýzou z první ruky a inteligentním rozhodováním, aby se problémy eskalovaly inženýrským týmům.

Od poslední revize dne 11. srpna 2023 jsme pečlivě zaúčtovali domény a kompetence v souladu s datem účinnosti 11. května 2023, jak bylo oficiálně deklarováno Linux Foundation.

Série se bude jmenovat Příprava na LFCS (Linux Foundation Certified Sysadmin) části 133 a pokryje následující témata:

Part 1

Jak používat příkaz „Sed“ k manipulaci se soubory v systému Linux

Part 2

Jak nainstalovat a používat Vi/Vim v Linuxu

Part 3

Jak komprimovat soubory a adresáře a najít soubory v Linuxu

Part 4

Rozdělení úložných zařízení, formátování souborových systémů a konfigurace odkládacího oddílu

Part 5

Připojit/odpojit místní a síťové (Samba a NFS) souborové systémy v Linuxu

Part 6

Sestavení oddílů jako zařízení RAID – Vytváření a správa záloh systému

Part 7

Správa procesu spouštění systému a služeb (SysVinit, Systemd a Upstart

Part 8

Jak spravovat uživatele a skupiny, oprávnění k souborům a sudo přístup

Part 9

Linux Package Management s Yum, RPM, Apt, Dpkg, Aptitude a Zypper

Part 10

Naučte se základní skriptování Shell a odstraňování problémů se souborovým systémem

Part 11

Jak spravovat a vytvářet LVM pomocí příkazů vgcreate, lvcreate a lvextend

Part 12

Jak prozkoumat Linux pomocí nainstalované dokumentace nápovědy a nástrojů

Part 13

Jak konfigurovat a řešit problémy s Grand Unified Bootloader (GRUB)

Part 14

Monitorujte využití zdrojů linuxových procesů a nastavujte limity procesů na základě jednotlivých uživatelů

Part 15

Jak nastavit nebo upravit parametry běhu jádra v systémech Linux

Part 16

Implementace povinného řízení přístupu pomocí SELinux nebo AppArmor v Linuxu

Part 17

Jak nastavit seznamy řízení přístupu (ACL) a diskové kvóty pro uživatele a skupiny

Part 18

Instalace síťových služeb a konfigurace automatického spouštění při spouštění

Part 19

Dokonalý průvodce nastavením FTP serveru pro anonymní přihlášení

Part 20

Nastavte základní server DNS s rekurzivním ukládáním do mezipaměti a nakonfigurujte zóny pro doménu

Part 21

Jak nainstalovat, zabezpečit a vyladit výkon databázového serveru MariaDB

Part 22

Jak nainstalovat a nakonfigurovat server NFS pro sdílení systému souborů

Part 23

Jak nastavit Apache s virtuálním hostingem založeným na názvu s certifikátem SSL

Part 24

Jak nastavit Iptables Firewall pro povolení vzdáleného přístupu ke službám v Linuxu

Part 25

Jak proměnit Linux ve směrovač, který zvládne provoz staticky a dynamicky

Part 26

Jak nastavit šifrované systémy souborů a vyměnit je pomocí nástroje Cryptsetup Tool

Part 27

Jak sledovat využití systému, výpadky a odstraňování problémů se servery Linux

Part 28

Jak nastavit síťové úložiště pro instalaci nebo aktualizaci balíčků

Part 29

Jak auditovat výkon sítě, zabezpečení a odstraňování problémů

Part 30

Jak nainstalovat a spravovat virtuální stroje a kontejnery

Part 31

Naučte se základy Git pro efektivní správu projektů

Part 32

Průvodce pro začátečníky konfigurací IPv4 a IPv6 adres v Linuxu

Part 33

Průvodce pro začátečníky vytvářením síťových vazeb a přemostění v Ubuntu

Tento příspěvek je částí 1 série výukových programů, která pokryje nezbytné domény a kompetence, které jsou vyžadovány pro certifikační zkoušku LFCS. Jak již bylo řečeno, zapněte svůj terminál a můžeme začít.

Zpracování textových proudů v Linuxu

Linux zachází se vstupem a výstupem z programů jako s proudy (nebo sekvencemi) znaků. Abychom mohli začít chápat přesměrování a roury, musíme nejprve porozumět třem nejdůležitějším typům I/O (vstupních a výstupních) toků, což jsou ve skutečnosti speciální soubory (podle konvence v UNIXu a Linuxu datové toky a periferie nebo soubory zařízení, jsou také považovány za běžné soubory).

Rozdíl mezi > (operátor přesměrování) a | (operátor potrubí) je v tom, že zatímco první spojuje příkaz se souborem, druhý spojuje výstup příkazu s jiným příkaz.

command > file
command1 | command2

Vzhledem k tomu, že operátor přesměrování vytváří nebo přepisuje soubory tiše, musíme jej používat s extrémní opatrností a nikdy si jej nespleteme s potrubím.

Jednou z výhod rour v systémech Linux a UNIX je, že s rorou není spojen žádný mezisoubor – stdout prvního příkazu se nezapisuje do souboru a pak se nečte druhým příkazem.

Pro následující procvičovací cvičení použijeme báseň „Šťastné dítě “ (anonymní autor).

Pomocí příkazu sed

Název sed je zkratka pro editor streamu. Pro ty, kteří tento termín neznají, se používá editor proudů k provádění základních textových transformací na vstupním proudu (souboru nebo vstupu z kanálu).

V souboru změňte malá písmena na velká

Nejzákladnějším (a nejoblíbenějším) použitím sed je nahrazování znaků. Začneme změnou každého výskytu malého y na VELKÁ Y a přesměrováním výstupu do ahappychild2.txt.

Příznak g označuje, že sed by měl provést náhradu za všechny výskyty výrazu na každém řádku souboru. Pokud je tento příznak vynechán, sed nahradí pouze první výskyt termínu na každém řádku.

Základní syntaxe Sed:
sed ‘s/term/replacement/flag’ file
Náš příklad:
sed ‘s/y/Y/g’ ahappychild.txt > ahappychild2.txt

Hledat a nahradit Word v souboru

Pokud chcete vyhledat nebo nahradit speciální znak (např. /, \, &), musíte jej ve výrazu escapovat nebo náhradní řetězce se zpětným lomítkem.

Například za ampersand nahradíme slovo a. Zároveň nahradíme slovo I slovem You, když se první najde na začátku řádku.

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

Ve výše uvedeném příkazu je ^ (stříška) dobře známý regulární výraz, který se používá k reprezentaci začátku řádku.

Jak vidíte, můžeme kombinovat dva nebo více substitučních příkazů (a používat v nich regulární výrazy) tak, že je oddělíme středníkem a uzavřeme sadu do jednoduchých uvozovek.

Tisk vybraných řádků ze souboru

Další použití sed je zobrazení (nebo smazání) vybrané části souboru. V následujícím příkladu zobrazíme prvních 5 řádků /var/log/messages z 8. června.

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

Všimněte si, že ve výchozím nastavení sed vytiskne každý řádek. Toto chování můžeme přepsat volbou -n a pak říct sed, aby vytiskl (označeno p) pouze tu část souboru (nebo roura), která odpovídá vzoru (8. června na začátku řádku v prvním případě a řádky 1 až 5 včetně ve druhém případě).

Konečně může být užitečné při kontrole skriptů nebo konfiguračních souborů zkontrolovat samotný kód a vynechat komentáře. Následující jednořádkový sed odstraní (d) prázdné řádky nebo řádky začínající # (znak | označuje booleovský NEBO< mezi dvěma regulárními výrazy).

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

příkaz uniq

Příkaz uniq nám umožňuje nahlásit nebo odstranit duplicitní řádky v souboru, ve výchozím nastavení zapisovat do stdout. Musíme poznamenat, že uniq nedetekuje opakované řádky, pokud nejsou sousedící.

Proto se uniq běžně používá spolu s předchozím tříděním (které se používá k řazení řádků textových souborů). Ve výchozím nastavení třídění bere jako klíčové pole první pole (oddělené mezerami). Chcete-li zadat jiné pole klíče, musíme použít volbu -k.

Příklady příkazů Uniq

Příkaz du -sch /cesta/k/adresáři/* vrací využití místa na disku na podadresáře a soubory v zadaném adresáři ve formátu čitelném pro člověka (ukazuje také celkový počet za adresář) a nevrací seřaďte výstup podle velikosti, ale podle podadresáře a názvu souboru.

K řazení podle velikosti můžeme použít následující příkaz.

du -sch /var/* | sort –h

Počet událostí v protokolu můžete spočítat podle data tak, že řeknete uniq, aby provedl porovnání pomocí prvních 6 znaků (-w 6) každého řádku (kde je datum je zadáno) a předpona každému výstupnímu řádku počtem výskytů (-c) s následujícím příkazem.

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

Nakonec můžete kombinovat sort a uniq (jak to obvykle bývá). Zvažte následující soubor se seznamem dárců, datem daru a částkou. Předpokládejme, že chceme vědět, kolik jedinečných dárců existuje.

Následující příkaz cat použijeme k vyříznutí prvního pole (pole jsou oddělena dvojtečkou), seřazení podle názvu a odstranění duplicitních řádků.

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

Příkaz grep

Příkaz grep vyhledává v textových souborech nebo (výstup příkazu) výskyt zadaného regulárního výrazu a vypisuje jakýkoli řádek obsahující shodu se standardním výstupem.

Příklady příkazů Grep

Zobrazit informace z /etc/passwd pro uživatele gacanepa, bez ohledu na velikost písmen.

grep -i gacanepa /etc/passwd

Zobrazit veškerý obsah /etc, jehož název začíná rc následovaným libovolným číslem.

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

tr Použití příkazu

Příkaz tr lze použít k překladu (změně) nebo odstranění znaků ze stdin a zapsání výsledku do stdout.

Změňte všechna malá písmena na velká v souboru sortuniq.txt.

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

Zmáčkněte oddělovač ve výstupu ls –l pouze na jednu mezeru.

ls -l | tr -s ' '

Použití příkazu Cut

Příkaz cut extrahuje části vstupních řádků (ze stdin nebo souborů) a zobrazí výsledek na standardním výstupu na základě počtu bajtů (volba -b), znaků (-c), nebo pole (-f).

V tomto posledním případě (na základě polí) je výchozím oddělovačem polí tabulátor, ale pomocí volby -d lze zadat jiný oddělovač.

Příklady příkazů Cut

Extrahujte uživatelské účty a k nim přiřazené výchozí shelly z /etc/passwd (volba –d nám umožňuje zadat oddělovač pole a –f přepínač označuje, která pole budou extrahována.

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

Když to shrneme, vytvoříme textový proud skládající se z prvního a třetího neprázdného souboru výstupu příkazu poslední. Použijeme grep jako první filtr ke kontrole relací uživatele gacanepa a poté zmáčkneme oddělovače pouze na jednu mezeru (tr -s ' ' ).

Dále extrahujeme první a třetí pole pomocí cut a nakonec seřadíme podle druhého pole (v tomto případě IP adres), které je jedinečné.

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

Výše uvedený příkaz ukazuje, jak lze kombinovat více příkazů a kanálů, abychom získali filtrovaná data podle našich přání. Neváhejte jej také spouštět po částech, abyste viděli výstup, který je zřetězen od jednoho příkazu k dalšímu (mimochodem, může to být skvělá zkušenost s učením!).

souhrn

Ačkoli se tento příklad (spolu se zbytkem příkladů v aktuálním tutoriálu) nemusí na první pohled zdát příliš užitečný, je příjemným výchozím bodem pro zahájení experimentování s příkazy, které se používají k vytváření, úpravám a manipulaci se soubory z Linuxu. příkazový řádek.

Neváhejte a zanechte své dotazy a komentáře níže – budeme velmi oceněni!

eKniha LFCS je nyní k dispozici k zakoupení. Objednejte si svou kopii ještě dnes a začněte svou cestu stát se certifikovaným správcem systému Linux!

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

V neposlední řadě zvažte nákup voucheru na zkoušku pomocí následujících odkazů, abyste nám vydělali malou provizi, která nám pomůže tuto knihu aktualizovat.