LFCS: Kif tuża l-Kmand GNU sed biex Toħloq, Teditja, u timmanipula fajls fil-Linux - Parti 1


Il-Linux Foundation ħabbret iċ-ċertifikazzjoni LFCS (Linux Foundation Certified Sysadmin), programm ġdid li għandu l-għan li jgħin individwi madwar id-dinja kollha biex jiksbu ċċertifikati f'kompiti ta 'amministrazzjoni tas-sistema bażiċi għal intermedji għal sistemi Linux. Dan jinkludi l-appoġġ ta 'sistemi u servizzi ta' tħaddim, flimkien ma 'soluzzjoni ta' problemi u analiżi diretta, u teħid ta 'deċiżjonijiet intelliġenti biex teskala l-kwistjonijiet lit-timijiet tal-inġinerija.

Jekk jogħġbok ara l-video li ġej li juri dwar il-Programm ta' Ċertifikazzjoni tal-Fondazzjoni Linux.

Is-serje se tkun intitolata Preparation for the LFCS (Linux Foundation Certified Sysadmin) Parts 1 through 10 u tkopri s-suġġetti li ġejjin għal Ubuntu, CentOS, u openSUSE:

Din il-kariga hija Parti 1 ta 'serje ta' 20 tutorja, li se tkopri l-oqsma u l-kompetenzi meħtieġa li huma meħtieġa għall-eżami ta 'ċertifikazzjoni LFCS. That being said, qabbad it-terminal tiegħek, u ejja nibdew.

Ipproċessar Test Streams fil-Linux

Linux jittratta l-input għal u l-output minn programmi bħala flussi (jew sekwenzi) ta 'karattri. Biex nibdew nifhmu d-direzzjoni mill-ġdid u l-pajpijiet, l-ewwel irridu nifhmu t-tliet tipi l-aktar importanti ta 'flussi I/O (Input u Output), li fil-fatt huma fajls speċjali (b'konvenzjoni f'UNIX u Linux, flussi ta' data u periferali, jew fajls tal-apparat, huma wkoll trattati bħala fajls ordinarji).

Id-differenza bejn > (operatur ta’ direzzjoni mill-ġdid) u | (operatur tal-pipeline) hija li filwaqt li l-ewwel jgħaqqad kmand ma’ fajl, tal-aħħar jgħaqqad l-output ta’ kmand ma’ ieħor kmand.

# command > file
# command1 | command2

Peress li l-operatur tar-ridirezzjoni joħloq jew jikteb fuq il-fajls skiet, irridu nużawha b'kawtela estrema, u qatt ma niżbaljawha ma 'pipeline. Vantaġġ wieħed tal-pajpijiet fuq sistemi Linux u UNIX huwa li m'hemm l-ebda fajl intermedju involut ma 'pajp - l-istdout tal-ewwel kmand ma jinkitebx f'fajl u mbagħad jinqara mit-tieni kmand.

Għall-eżerċizzji ta 'prattika li ġejjin se nużaw il-poeżija \Tfal kuntent (awtur anonimu).

L-isem sed huwa qasir għal editur tan-nixxiegħa. Għal dawk li mhumiex familjari mat-terminu, jintuża editur tal-flussi biex iwettaq trasformazzjonijiet bażiċi tat-test fuq fluss ta 'input (fajl jew input minn pipeline).

L-aktar użu bażiku (u popolari) tas-sed huwa s-sostituzzjoni tal-karattri. Se nibdew billi nbiddlu kull okkorrenza tal-y zgħar għal Y UPPERCASE u nidderieġu l-output għal ahappychild2.txt. Il-marka g tindika li sed għandu jwettaq is-sostituzzjoni għall-istanzi kollha tat-terminu fuq kull linja tal-fajl. Jekk din il-bandiera titħalla barra, sed se jissostitwixxi biss l-ewwel okkorrenza tat-terminu fuq kull linja.

# sed ‘s/term/replacement/flag’ file
# sed ‘s/y/Y/g’ ahappychild.txt > ahappychild2.txt

Jekk trid tfittex jew tissostitwixxi karattru speċjali (bħal /, \, &) trid taħrab minnu, fit-terminu jew kordi ta' sostituzzjoni, b'slash b'lura.

Pereżempju, se nissostitwixxu l-kelma u għal ampersand. Fl-istess ħin, aħna se nissostitwixxu l-kelma I ma 'Int meta l-ewwel waħda tinstab fil-bidu ta' linja.

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

Fil-kmand ta 'hawn fuq, ^ (sinjal caret) hija espressjoni regolari magħrufa li tintuża biex tirrappreżenta l-bidu ta' linja.

Kif tistgħu taraw, nistgħu ngħaqqdu żewġ kmandi ta' sostituzzjoni jew aktar (u nużaw espressjonijiet regolari ġewwa fihom) billi nisseparawhom b'punt u virgola u nagħlqu s-sett ġewwa kwotazzjonijiet singoli.

Użu ieħor ta 'sed huwa li juri (jew iħassar) porzjon magħżul ta' fajl. Fl-eżempju li ġej, se nuru l-ewwel 5 linji ta '/var/log/messages mit-8 ta' Ġunju.

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

Innota li b'mod awtomatiku, sed jistampa kull linja. Nistgħu negħlbu din l-imġieba bl-għażla -n u mbagħad ngħidu lil sed biex jistampa (indikat minn p) biss il-parti tal-fajl (jew il-pajp) li taqbel mal-mudell (8 ta’ Ġunju fil-bidu tal-linja fl-ewwel każ u linji 1 sa 5 inklużi fit-tieni każ).

Fl-aħħarnett, jista 'jkun utli waqt li tispezzjona skripts jew fajls ta' konfigurazzjoni biex tispezzjona l-kodiċi innifsu u tħalli barra l-kummenti. Is-sed one-liner li ġej iħassar (d) linji vojta jew dawk li jibdew b'# (il-karattru | jindika JEW boolean bejn iż-żewġ regolari espressjonijiet).

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

Il-kmand uniq jippermettilna nirrapportaw jew ineħħu linji duplikati f'fajl, billi niktbu lil stdout b'mod awtomatiku. Irridu ninnotaw li uniq ma jiskoprix linji ripetuti sakemm ma jkunux maġenbhom. Għalhekk, uniq jintuża komunement flimkien ma' sort preċedenti (li tintuża biex issolvi linji ta' fajls ta' test). B'mod awtomatiku, sort jieħu l-ewwel qasam (separat bi spazji) bħala qasam ewlieni. Biex tispeċifika qasam ewlieni differenti, għandna bżonn nużaw l-għażla -k.

Il-kmand du –sch /path/to/directory/* jirritorna l-użu tal-ispazju tad-diska għal kull sottodirettorji u fajls fi ħdan id-direttorju speċifikat f’format li jinqara mill-bniedem (juri wkoll total għal kull direttorju), u ma jagħmilx tordna l-output skond id-daqs, iżda skond is-subdirettorju u l-isem tal-fajl. Nistgħu nużaw il-kmand li ġej biex issortja skond id-daqs.

# du -sch /var/* | sort –h

Tista' tgħodd in-numru ta' avvenimenti f'ġurnal skont id-data billi tgħid lil uniq biex iwettaq il-paragun billi juża l-ewwel 6 karattri (-w 6) ta' kull linja (fejn id-data hija speċifikata), u tipprefissa kull waħda. linja tal-ħruġ bin-numru ta 'okkorrenzi (-c) bil-kmand li ġej.

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

Fl-aħħarnett, tista 'tgħaqqad sort u uniq (kif huma normalment). Ikkunsidra l-fajl li ġej b'lista ta 'donaturi, data tad-donazzjoni, u ammont. Ejja ngħidu li rridu nkunu nafu kemm hemm donaturi uniċi. Se nużaw il-kmand li ġej biex naqtgħu l-ewwel qasam (l-oqsma huma delimitati b'kolon), issortja bl-isem, u neħħi l-linji duplikati.

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

Aqra wkoll: 13 Eżempji ta’ Kmand “qattus”.

grep ifittex fajls ta' test jew (output tal-kmand) għall-okkorrenza ta' espressjoni regolari speċifikata u joħroġ kwalunkwe linja li jkun fiha taqbila mal-output standard.

Uri l-informazzjoni minn /etc/passwd għall-utent gacanepa, billi tinjora l-każ.

# grep -i gacanepa /etc/passwd

Uri l-kontenut kollu ta' /etc li ismu jibda b'rc segwit minn kwalunkwe numru wieħed.

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

Aqra wkoll: 12 Eżempji ta’ Kmand “grep”.

Il-kmand tr jista 'jintuża biex jittraduċi (bidla) jew iħassar karattri minn stdin, u tikteb ir-riżultat fi stdout.

Ibdel il-ittri żgħar kollha għal kbar fil-fajl sortuniq.txt.

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

Agħfas id-delimitatur fl-output ta' ls –l għal spazju wieħed biss.

# ls -l | tr -s ' '

Il-kmand cut estratti porzjonijiet ta' linji ta' input (minn stdin jew fajls) u juri r-riżultat fuq output standard, ibbażat fuq numru ta' bytes (għażla -b), karattri (< b>-c), jew oqsma (-f). F'dan l-aħħar każ (ibbażat fuq oqsma), is-separatur tal-kamp default huwa tab, iżda delimitatur differenti jista 'jiġi speċifikat billi tuża l-għażla -d.

Oħroġ il-kontijiet tal-utent u l-qxur default assenjati lilhom minn /etc/passwd (l-għażla –d tippermettilna nispeċifikaw id-delimitatur tal-qasam, u l-–f swiċċ jindika liema qasam(i) se jiġu estratti.

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

Fil-qosor, se noħolqu fluss ta 'test li jikkonsisti fl-ewwel u t-tielet fajls mhux vojta tal-output tal-kmand aħħar. Se nużaw grep bħala l-ewwel filtru biex niċċekkjaw għal sessjonijiet ta' utent gacanepa, imbagħad għafas delimitaturi għal spazju wieħed biss (tr -s ' ' ). Sussegwentement, aħna niġbdu l-ewwel u t-tielet qasam b'qatgħa, u finalment issortja bit-tieni qasam (indirizzi IP f'dan il-każ) li juri uniku.

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

Il-kmand ta 'hawn fuq juri kif kmandi u pajpijiet multipli jistgħu jiġu kkombinati sabiex tinkiseb data ffiltrata skond ix-xewqat tagħna. Ħossok liberu li tmexxih ukoll bil-partijiet, biex jgħinek tara l-output li huwa pipelined minn kmand għall-ieħor (din tista 'tkun esperjenza ta' tagħlim kbira, bil-mod!).

Sommarju

Għalkemm dan l-eżempju (flimkien mal-bqija tal-eżempji fit-tutorja attwali) jista 'ma jidhirx utli ħafna mal-ewwel daqqa t'għajn, huma punt ta' tluq sabiħ biex tibda tesperimenta bi kmandi li jintużaw biex joħolqu, jeditjaw u jimmanipulaw fajls mill-Linux. linja tal-kmand. Ħossok liberu li tħalli l-mistoqsijiet u l-kummenti tiegħek hawn taħt - se jkunu apprezzati ħafna!

  1. Dwar l-LFCS
  2. Għaliex tikseb Ċertifikazzjoni tal-Fondazzjoni Linux?
  3. Irreġistra għall-eżami LFCS