LFCS: Jinsi ya kutumia GNU sed Amri Kuunda, Kuhariri, na Kudhibiti faili kwenye Linux - Sehemu ya 1


Wakfu wa Linux ulitangaza uthibitisho wa LFCS (Linux Foundation Certified Sysadmin), programu mpya inayolenga kuwasaidia watu binafsi kote ulimwenguni kupata uthibitisho wa majukumu ya msingi hadi ya kati ya usimamizi wa mfumo kwa mifumo ya Linux. Hii ni pamoja na kusaidia mifumo na huduma zinazoendeshwa, pamoja na utatuzi na uchambuzi wa moja kwa moja, na kufanya maamuzi mahiri ili kueneza masuala kwa timu za wahandisi.

Tafadhali tazama video ifuatayo inayoonyesha kuhusu Mpango wa Uthibitishaji wa Msingi wa Linux.

Mfululizo huo utaitwa Maandalizi ya LFCS (Linux Foundation Certified Sysadmin) Sehemu ya 1 hadi 10 na itashughulikia mada zifuatazo za Ubuntu, CentOS, na openSUSE:

Chapisho hili ni Sehemu ya 1 ya mfululizo wa mafunzo 20, ambao utashughulikia vikoa na ujuzi unaohitajika kwa ajili ya mtihani wa uidhinishaji wa LFCS. Hiyo inasemwa, washa terminal yako, na wacha tuanze.

Inachakata Mitiririko ya Maandishi katika Linux

Linux hushughulikia ingizo na matokeo kutoka kwa programu kama mitiririko (au mfuatano) wa wahusika. Ili kuanza kuelewa uelekezaji kwingine na mirija, ni lazima kwanza tuelewe aina tatu muhimu zaidi za mitiririko ya I/O (Ingizo na Pato), ambazo kwa kweli ni faili maalum (kulingana na kanuni za UNIX na Linux, mitiririko ya data na vifaa vya pembeni, au faili za kifaa; pia huchukuliwa kama faili za kawaida).

Tofauti kati ya > (opereta wa kuelekeza upya) na | (opereta wa bomba) ni kwamba ingawa ya kwanza inaunganisha amri na faili, ya mwisho inaunganisha matokeo ya amri na nyingine. amri.

# command > file
# command1 | command2

Kwa kuwa opereta wa uelekezaji upya huunda au kubatilisha faili kimya kimya, ni lazima tuitumie kwa tahadhari kali, na tusiwahi kuikosea na bomba. Faida moja ya mabomba kwenye mifumo ya Linux na UNIX ni kwamba hakuna faili ya kati inayohusika na bomba - stdout ya amri ya kwanza haijaandikwa kwa faili na kisha kusoma kwa amri ya pili.

Kwa mazoezi yafuatayo ya mazoezi tutatumia shairi \Mtoto mwenye furaha (mwandishi asiyejulikana).

Jina sed ni kifupi cha kihariri cha mtiririko. Kwa wale wasiofahamu neno hili, kihariri cha mtiririko kinatumika kufanya mabadiliko ya kimsingi ya maandishi kwenye mkondo wa kuingiza data (faili au ingizo kutoka kwa bomba).

Matumizi ya kimsingi (na maarufu) ya sed ni uingizwaji wa herufi. Tutaanza kwa kubadilisha kila tukio la herufi ndogo y hadi UPPERCASE Y na kuelekeza towe kwenye ahappychild2.txt. Alama ya g inaonyesha kuwa sed inapaswa kuchukua nafasi ya matukio yote ya neno kwenye kila safu ya faili. Ikiwa alama hii itaachwa, sed itachukua nafasi ya tukio la kwanza la muhula kwenye kila mstari.

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

Ikiwa ungependa kutafuta au kubadilisha herufi maalum (kama vile /, \, &) unahitaji kuikwepa, katika neno hili. au kamba badala, na kufyeka nyuma.

Kwa mfano, tutabadilisha neno na kwa ampersand. Wakati huo huo, tutabadilisha neno I na Wewe wakati la kwanza linapatikana mwanzoni mwa mstari.

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

Katika amri iliyo hapo juu, ^ (ishara ya kujali) ni usemi wa kawaida unaojulikana sana ambao hutumiwa kuwakilisha mwanzo wa mstari.

Kama unavyoona, tunaweza kuchanganya amri mbili au zaidi badala (na kutumia misemo ya kawaida ndani yao) kwa kuzitenganisha na nusu koloni na kuambatanisha seti ndani ya nukuu moja.

Matumizi mengine ya sed ni kuonyesha (au kufuta) sehemu iliyochaguliwa ya faili. Katika mfano ufuatao, tutaonyesha mistari 5 ya kwanza ya /var/log/messages kuanzia tarehe 8 Juni.

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

Kumbuka kuwa kwa chaguo-msingi, sed huchapisha kila mstari. Tunaweza kubatilisha tabia hii kwa chaguo la -n kisha tuambie sed ichapishe (imeonyeshwa na p) sehemu tu ya faili (au bomba) inayolingana na muundo. (Juni 8 mwanzoni mwa mstari katika kesi ya kwanza na mstari wa 1 hadi 5 ikiwa ni pamoja na katika kesi ya pili).

Hatimaye, inaweza kuwa muhimu wakati wa kukagua hati au faili za usanidi ili kukagua msimbo yenyewe na kuacha maoni. Sed ifuatayo ya mstari mmoja hufuta mistari tupu (d) au ile inayoanza na # (herufi | inaonyesha boolean AU kati ya hizo mbili za kawaida. maneno).

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

Amri ya uniq huturuhusu kuripoti au kuondoa nakala rudufu za mistari katika faili, tukiandika kwa stdout kwa chaguo-msingi. Ni lazima tukumbuke kwamba uniq haioni mistari inayorudiwa isipokuwa ikiwa iko karibu. Kwa hivyo, uniq hutumiwa kwa kawaida pamoja na upangaji uliotangulia (ambao hutumika kupanga mistari ya faili za maandishi). Kwa chaguo-msingi, panga huchukua sehemu ya kwanza (iliyotenganishwa na nafasi) kama sehemu muhimu. Ili kubainisha sehemu tofauti ya ufunguo, tunahitaji kutumia chaguo la -k.

Amri ya du –sch /path/to/directory/* hurejesha utumiaji wa nafasi ya diski kwa kila saraka ndogo na faili zilizo ndani ya saraka iliyobainishwa katika umbizo linaloweza kusomeka na binadamu (pia linaonyesha jumla ya saraka), na haifanyi hivyo. agiza pato kwa saizi, lakini kwa saraka ndogo na jina la faili. Tunaweza kutumia amri ifuatayo kupanga kwa ukubwa.

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

Unaweza kuhesabu idadi ya matukio katika kumbukumbu kwa tarehe kwa kuwaambia uniq kufanya ulinganisho kwa kutumia herufi 6 za kwanza (-w 6) za kila mstari (ambapo tarehe imebainishwa), na kuweka viambishi awali kila moja. mstari wa pato kwa idadi ya matukio (-c) na amri ifuatayo.

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

Hatimaye, unaweza kuchanganya kupanga na uniq (kama kawaida). Zingatia faili ifuatayo iliyo na orodha ya wafadhili, tarehe ya mchango na kiasi. Tuseme tunataka kujua kuna wafadhili wangapi wa kipekee. Tutatumia amri ifuatayo kukata sehemu ya kwanza (sehemu zimetengwa na koloni), panga kwa jina, na uondoe mistari iliyorudiwa.

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

Soma Pia: Mifano 13 za Amri za “paka”

grep hutafuta faili za maandishi au (matokeo ya amri) kwa utokeaji wa usemi maalum wa kawaida na kutoa laini yoyote iliyo na ulinganifu kwa towe la kawaida.

Onyesha maelezo kutoka /etc/passwd kwa mtumiaji gacanepa, ukipuuza kesi.

# grep -i gacanepa /etc/passwd

Onyesha maudhui yote ya /etc ambayo jina lake linaanza na rc likifuatiwa na nambari yoyote moja.

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

Soma Pia: Mifano 12 za Amri za “grep”

Amri ya tr inaweza kutumika kutafsiri (kubadilisha) au kufuta herufi kutoka stdin, na kuandika tokeo kwa stdout.

Badilisha herufi ndogo zote kuwa herufi kubwa katika faili ya sortuniq.txt.

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

Bana kikomo katika matokeo ya ls –l hadi nafasi moja pekee.

# ls -l | tr -s ' '

Amri ya kata hutoa sehemu za mistari ya ingizo (kutoka stdin au faili) na kuonyesha matokeo kwenye pato la kawaida, kulingana na idadi ya baiti (-b chaguo), herufi (< b>-c), au sehemu (-f). Katika kesi hii ya mwisho (kulingana na uga), kitenganishi cha uga chaguo-msingi ni kichupo, lakini kikomo tofauti kinaweza kubainishwa kwa kutumia chaguo la -d.

Chambua akaunti za watumiaji na makombora chaguo-msingi waliyopewa kutoka /etc/passwd (chaguo la –d huturuhusu kubainisha kikomo cha sehemu, na –f swichi inaonyesha ni sehemu gani zitatolewa.

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

Kwa muhtasari, tutaunda mtiririko wa maandishi unaojumuisha faili za kwanza na tatu zisizo tupu za matokeo ya amri ya mwisho. Tutatumia grep kama kichujio cha kwanza kuangalia vipindi vya mtumiaji gacanepa, kisha kubana vikomo kwenye nafasi moja pekee (tr -s ' ' ) Ifuatayo, tutatoa sehemu ya kwanza na ya tatu kwa kata, na hatimaye kupanga kwa sehemu ya pili (anwani za IP katika kesi hii) zinazoonyesha kipekee.

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

Amri iliyo hapo juu inaonyesha jinsi amri nyingi na mabomba yanaweza kuunganishwa ili kupata data iliyochujwa kulingana na tamaa zetu. Jisikie huru pia kuiendesha kwa sehemu, ili kukusaidia kuona matokeo ambayo yanapitishwa kutoka kwa amri moja hadi nyingine (hii inaweza kuwa uzoefu mzuri wa kujifunza, kwa njia!).

Muhtasari

Ingawa mfano huu (pamoja na mifano mingine kwenye somo la sasa) inaweza ionekane kuwa muhimu sana mwanzoni, ni mahali pazuri pa kuanza kujaribu na amri ambazo hutumiwa kuunda, kuhariri, na kuendesha faili kutoka kwa Linux. mstari wa amri. Jisikie huru kuacha maswali na maoni yako hapa chini - yatathaminiwa sana!

  1. Kuhusu LFCS
  2. Kwa nini upate Cheti cha Msingi cha Linux?
  3. Jisajili kwa mtihani wa LFCS