Weboldal keresés

LFCS #1: A „sed” parancs használata fájlkezeléshez Linux alatt


A Linux Foundation bejelentette az LFCS (Linux Foundation Certified Sysadmin) tanúsítványt, egy új programot, amelynek célja, hogy világszerte segítse az egyéneket a Linux rendszerek alap- és középszintű rendszeradminisztrációs feladataira vonatkozó minősítés megszerzésében.

Ez magában foglalja a futó rendszerek és szolgáltatások támogatását, valamint az első kézből történő hibaelhárítást és elemzést, valamint az intelligens döntéshozatalt, amely a problémákat a mérnöki csapatok elé terjeszti.

A legutóbbi, 2023. augusztus 11-i átdolgozáskor alaposan elszámoltuk a domaineket és a kompetenciákat, igazodva a 2023. május 11-i hatálybalépési dátumhoz, amint azt hivatalosan kijelentette: a Linux Alapítvány.

A sorozat a Preparation for the LFCS (Linux Foundation Certified Sysadmin) 1. és 33. közötti rész címe lesz, és a következő témák:

Part 1

A „Sed” parancs használata a fájlok kezeléséhez Linux alatt

Part 2

A Vi/Vim telepítése és használata Linuxban

Part 3

Fájlok és könyvtárak tömörítése és fájlok keresése Linuxban

Part 4

Tárolóeszközök particionálása, fájlrendszerek formázása és cserepartíció konfigurálása

Part 5

Helyi és hálózati (Samba és NFS) fájlrendszerek csatlakoztatása/leválasztása Linuxban

Part 6

Partíciók összeállítása RAID-eszközként – Rendszermentések létrehozása és kezelése

Part 7

Rendszerindítási folyamatok és szolgáltatások kezelése (SysVinit, Systemd és Upstart

Part 8

A felhasználók és csoportok, a fájlengedélyek és a Sudo Access kezelése

Part 9

Linux csomagkezelés Yum, RPM, Apt, Dpkg, Aptitude és Zypper segítségével

Part 10

Az alapvető shell-parancsfájlok és a fájlrendszer-hibaelhárítás elsajátítása

Part 11

LVM kezelése és létrehozása a vgcreate, lvcreate és lvextend parancsokkal

Part 12

Hogyan fedezze fel a Linuxot a telepített súgódokumentációkkal és eszközökkel

Part 13

A Grand Unified Bootloader (GRUB) konfigurálása és hibaelhárítása

Part 14

Figyelje a Linux-folyamatok erőforrás-használatát és állítsa be a folyamatkorlátokat felhasználónként

Part 15

A kernel futásidejű paramétereinek beállítása vagy módosítása Linux rendszereken

Part 16

Kötelező hozzáférés-vezérlés megvalósítása SELinux vagy AppArmor segítségével Linux alatt

Part 17

Hozzáférés-vezérlési listák (ACL) és lemezkvóták beállítása felhasználók és csoportok számára

Part 18

A hálózati szolgáltatások telepítése és az automatikus indítás konfigurálása rendszerindításkor

Part 19

Végső útmutató az FTP-kiszolgáló beállításához, hogy lehetővé tegye a névtelen bejelentkezést

Part 20

Állítson be egy alapvető rekurzív gyorsítótárazó DNS-kiszolgálót, és állítsa be a zónákat a tartományhoz

Part 21

A MariaDB Database Server telepítése, biztonságossá tétele és teljesítményhangolása

Part 22

Az NFS-kiszolgáló telepítése és konfigurálása fájlrendszer-megosztáshoz

Part 23

Az Apache beállítása névalapú virtuális tárhely használatával SSL-tanúsítvánnyal

Part 24

Hogyan állítsunk be egy Iptables tűzfalat a szolgáltatások távoli eléréséhez Linux alatt

Part 25

Hogyan alakítsunk át egy Linuxot routerré a forgalom statikus és dinamikus kezelésére

Part 26

Titkosított fájlrendszerek beállítása és csere a Cryptsetup Tool segítségével

Part 27

A rendszerhasználat, a kimaradások figyelése és a Linux-kiszolgálók hibaelhárítása

Part 28

Hálózati tároló beállítása csomagok telepítéséhez vagy frissítéséhez

Part 29

A hálózat teljesítményének, biztonságának és hibaelhárításának ellenőrzése

Part 30

Virtuális gépek és tárolók telepítése és kezelése

Part 31

Tanulja meg a Git alapjait a projektek hatékony menedzseléséhez

Part 32

Útmutató kezdőknek az IPv4- és IPv6-címek konfigurálásához Linuxban

Part 33

Útmutató kezdőknek Hálózati kötés és áthidalás létrehozásához Ubuntuban

Ez a bejegyzés 1. része egy 33 oktatóanyagból álló sorozatnak, amely lefedi az LFCS minősítő vizsgához szükséges területeket és kompetenciákat. Ennek ellenére indítsa be a terminált, és kezdjük.

Szövegfolyamok feldolgozása Linux alatt

A Linux a programok bemenetét és kimenetét karakterfolyamként (vagy sorozatként) kezeli. Az átirányítás és a csövek megértéséhez először meg kell értenünk az I/O (bemeneti és kimeneti) adatfolyamok három legfontosabb típusát, amelyek valójában speciális fájlok (UNIX és Linux rendszerben konvenció szerint adatfolyamok és perifériák, vagy eszközfájlok, közönséges fájlként is kezelik).

A különbség a > (átirányítási operátor) és a | (csővezeték operátor) között az, hogy míg az első egy parancsot köt össze egy fájllal, az utóbbi a parancs kimenetét egy másikkal. parancs.

command > file
command1 | command2

Mivel az átirányítási operátor csendben hoz létre vagy írja felül a fájlokat, rendkívül óvatosan kell használnunk, és soha ne tévessze össze egy folyamattal.

A pipes Linux és UNIX rendszereken az egyik előnye, hogy nincs köztes fájl a pipe-hez – az első parancs stdoutja nem íródik fájlba, majd a második parancs olvassa el.

A következő gyakorló gyakorlatokhoz a „Boldog gyermek” című verset használjuk (névtelen szerző).

A sed Command használata

A sed név a streamszerkesztő rövidítése. Azok számára, akik nem ismerik ezt a kifejezést, egy adatfolyam-szerkesztőt használnak az alapvető szövegátalakítások végrehajtására egy bemeneti adatfolyamon (fájlon vagy csővezetékről származó bemeneten).

Módosítsa a kisbetűt nagybetűre a fájlban

A sed legalapvetőbb (és legnépszerűbb) használata a karakterek helyettesítése. Kezdjük azzal, hogy a kisbetűs y minden előfordulását NAGYBETŐS Y-ra változtatjuk, és a kimenetet átirányítjuk az ahappychild2.txt fájlra.

A g jelző azt jelzi, hogy a sed-nek végre kell hajtania a helyettesítést a kifejezés minden előfordulása esetén a fájl minden sorában. Ha ezt a jelzőt kihagyjuk, a sed csak a kifejezés első előfordulását fogja lecserélni minden sorban.

Sed alapszintaxis:
sed ‘s/term/replacement/flag’ file
Példánk:
sed ‘s/y/Y/g’ ahappychild.txt > ahappychild2.txt

A Word keresése és cseréje a fájlban

Ha speciális karaktert (például /, \, &) szeretne keresni vagy lecserélni, ki kell lépnie a kifejezésből. vagy cserekarakterláncok, visszafelé perjellel.

Például az "és" jelet a és szóval helyettesítjük. Ugyanakkor az I szót a You szóra cseréljük, ha az első szót a sor elején találjuk.

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

A fenti parancsban a ^ (caret jel) egy jól ismert reguláris kifejezés, amely egy sor elejét jelöli.

Amint látja, két vagy több helyettesítési parancsot kombinálhatunk (és használhatunk reguláris kifejezéseket bennük), ha pontosvesszővel választjuk el őket, és a halmazt egyetlen idézőjelbe zárjuk.

Kijelölt sorok nyomtatása fájlból

A sed másik használata a fájl egy kiválasztott részének megjelenítése (vagy törlése). A következő példában a /var/log/messages első 5 sorát jelenítjük meg június 8-tól.

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

Vegye figyelembe, hogy alapértelmezés szerint a sed minden sort kinyomtat. Ezt a viselkedést felülbírálhatjuk a -n kapcsolóval, majd megmondhatjuk a sed-nek, hogy csak a fájlnak (vagy a csőnek) azt a részét nyomtassa ki (ezt a p jelzi) (Az első esetben június 8. a sor elején, a második esetben az 1-5. sorok között).

Végül a szkriptek vagy konfigurációs fájlok vizsgálatakor hasznos lehet magát a kódot megvizsgálni, és elhagyni a megjegyzéseket. A következő sed egysoros törli (d) az üres sorokat vagy a # karakterrel kezdődő sorokat (a | karakter logikai VAGY< karaktert jelez a két reguláris kifejezés között).

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

egyedi parancs

A uniq parancs lehetővé teszi, hogy jelentsük vagy távolítsuk el a fájl ismétlődő sorait, alapértelmezés szerint az stdout-ba írva. Meg kell jegyeznünk, hogy az uniq nem észleli az ismétlődő sorokat, hacsak nem szomszédosak.

Így az uniq kifejezést általában az azt megelőző rendezés mellett használják (amely a szövegfájlok sorainak rendezésére szolgál). Alapértelmezés szerint a rendezés az első mezőt (szóközökkel elválasztva) kulcsmezőként használja. Más kulcsmező megadásához a -k opciót kell használnunk.

Egyedi parancspéldák

A du -sch /útvonal/könyvtár/* parancs visszaadja a lemezterület-használatot alkönyvtáronként és a megadott könyvtáron belüli fájlonként ember által olvasható formátumban (könyvtáronkénti végösszeget is), és nem Rendezze a kimenetet méret szerint, de alkönyvtár és fájlnév szerint.

A következő paranccsal méret szerint rendezhetjük.

du -sch /var/* | sort –h

Megszámolhatja a naplóban lévő események számát dátum szerint, ha megmondja az uniq parancsot, hogy az összehasonlítást az egyes sorok első 6 karakterével (-w 6) (ahol a dátum meg van adva), és minden kimeneti sor előtagja az előfordulások számával (-c) a következő paranccsal.

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

Végül kombinálhatja a rendezést és az egyediet (ahogy általában). Tekintse meg a következő fájlt az adományozók listájával, az adományozás dátumával és összegével. Tegyük fel, hogy tudni akarjuk, hány egyedi donor van.

A következő cat paranccsal kivágjuk az első mezőt (a mezőket kettőspont választja el), név szerint rendezzük, és eltávolítjuk az ismétlődő sorokat.

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

grep parancs

A grep parancs szöveges fájlokban vagy (parancskimenetben) keres egy meghatározott reguláris kifejezés előfordulását, és minden olyan sort kiír, amely a szabványos kimenettel megegyezik.

Példák a Grep parancsokra

A gacanepa felhasználó adatainak megjelenítése a /etc/passwd fájlból, figyelmen kívül hagyva a kis- és nagybetűket.

grep -i gacanepa /etc/passwd

Mutassa meg a(z) /etc összes tartalmát, amelynek neve az rc karakterrel kezdődik, amelyet egyetlen szám követ.

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

tr Parancshasználat

A tr paranccsal lefordíthatjuk (megváltoztathatjuk) vagy törölhetjük az stdin karaktereit, és az eredményt az stdout-ba írhatjuk.

Módosítsa az összes kisbetűt nagybetűre a sortuniq.txt fájlban.

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

Nyomja össze a határolót az ls –l kimenetében, hogy csak egy szóköz legyen.

ls -l | tr -s ' '

Vágja le a parancshasználatot

A cut parancs kivonja a bemeneti sorok egy részét (stdin-ből vagy fájlokból), és az eredményt a szabványos kimeneten jeleníti meg a bájtok száma (-b opció), karakterek (-c ) alapján. ), vagy mezők (-f).

Ez utóbbi esetben (a mezők alapján) az alapértelmezett mezőelválasztó egy tabulátor, de a -d kapcsolóval más elválasztó is megadható.

Vágási parancs példák

Bontsa ki a felhasználói fiókokat és a hozzájuk rendelt alapértelmezett parancsértelmezőket az /etc/passwd fájlból (a –d opció lehetővé teszi a mezőhatároló és a –f megadását A kapcsoló jelzi, hogy melyik mező(k) kerülnek kibontásra.

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

Összegezve, létrehozunk egy szövegfolyamot, amely az utolsó parancs kimenetének első és harmadik nem üres fájljából áll. A grep szűrőt használjuk első szűrőként a gacanepa felhasználó munkameneteinek ellenőrzésére, majd csak egy szóközhöz szorítjuk a határolókat (tr -s ' ' ).

Ezután kibontjuk az első és a harmadik mezőt a kivágás elemmel, végül pedig a második mező (ebben az esetben az IP-címek) alapján rendezzük az egyediséget.

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

A fenti parancs megmutatja, hogyan lehet több parancsot és csővezetéket kombinálni, hogy kívánságunknak megfelelően szűrt adatokat kapjunk. Nyugodtan futtathatja részekre bontva is, hogy segítsen látni a kimenetet, amely egyik parancsról a másikra fut (ez egyébként nagyszerű tanulási élmény lehet!).

Összegzés

Bár ez a példa (az aktuális oktatóanyag többi példájával együtt) első pillantásra nem tűnik túl hasznosnak, jó kiindulópontot jelentenek a Linux fájlok létrehozására, szerkesztésére és manipulálására használt parancsokkal való kísérletezéshez. parancs sor.

Nyugodtan hagyja meg kérdéseit és megjegyzéseit alább – nagyra értékeljük!

Az LFCS e-könyv már megvásárolható. Rendelje meg példányát még ma, és induljon útnak okleveles Linux rendszergazdává válása felé!

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

Végül, de nem utolsósorban, kérjük, vegye fontolóra a vizsgautalvány megvásárlását a következő linkek segítségével, hogy egy kis jutalékot kapjunk, amely segít a könyv frissítésében.