Iesācēja rokasgrāmata Shell Scripting 3 Vairāk pamata komandas un ķēdes
Jūs esat iemācījušies veidot skriptus, izmantot argumentus un veidot cilpas. Tagad aplūkosim dažas pamata komandas, teksta faila manipulācijas un ievades un izejas novirzīšanu uz failiem un citām komandām.
Dažas pamata noderīgās komandas
Mēs jau esam piešķīruši jums pamata čaulu skriptu sadalījumu un piemēru, kas balstīti uz cilpām, bet noteikti pārbaudiet šos rakstus, ja esat līdz šim nokavējis mūsu čaulu skriptu rokasgrāmatu.
Komandrinda ir brīnišķīga daudzu iemeslu dēļ, un novirzīšana ir viena no svarīgākajām. Ja jums vajadzēja ņemt vērā un atveidot katra komandas iznākumu, lai veiktu turpmāku rīcību vai izmantotu to kaut ko citu, tad mēs visi jau sen būtu bijuši traks. Pāradresācija ļauj mums izmantot šo izeju un saglabāt to vai nekavējoties to izmantot kā ievadi citai komandai. Mēs varam izmantot arī failus kā ievadi citām komandām.
Pirms mēs turpinām, aptveram dažas pamata komandas, kas var būt noderīgas daudzās dažādās vietās.
atbalss - Šī komanda vienkārši izdrukā (parāda) visu tās argumentu komandrindā kā izvadi
atbalss arguments ar atstarpēm
Kā redzat, īpašas rakstzīmes ir jāizbēg, lai tās tiktu apstrādātas normāli. Tas tiek darīts, izmantojot backslash (\ t Tā ir labāka ideja izmantot pēdiņas. Echo komanda darbojas arī ar mainīgajiem.
Kā redzat, vienreizējas un dubultās pēdiņas darbojas atšķirīgi. Lai iegūtu vairāk informācijas, skatiet Kas ir atšķirība starp vienreizējiem un divkāršiem piedāvājumiem Bash Shell?
kaķis - Šī komanda parāda teksta failu saturu kā izeju.
kaķis file_to_be_read
Pieņemsim, ka mēs izveidojam šo teksta failu nano:
Kad mēs izmantojam failā cat komandu, mēs varam redzēt tā izeju.
grep - Šī ir viena no spēcīgākajām un noderīgākajām komandām, kas jums pieejamas Linux. Tas nozīmē globālo / regulāro izteiksmi. Tas izskatās caur failu un izdrukā jebkuru līniju, kas atbilst konkrētam modelim. Tā kā šis modelis ir balstīts uz „regulāru izteiksmi”, īsa līnija var dot daudzus modeļus, kas jāsaskaņo. Lai gan nav, jūs varat ievadīt ternu meklēšanai.
grep raksta fails
Es jums apliecinu, ka grep var darīt vairāk, bet tagad paliksim vieglāk.
Izejas novirzīšana
Lai novirzītu komandas izvadi uz failu, mēs izmantojam īpašu rakstzīmi, jo lielāks par simbolu (>).
Mainīsim mūsu sarakstu, vai mēs? Ievadiet šādu komandu:
echo pepperoni> saraksts
Jūs varat redzēt, ka atbalss vairs nerāda līniju, un, aplūkojot “saraksta” faila saturu, mēs redzam, ko mēs šeit atkārtojām.
Ņemiet vērā arī to, ka iepriekšējais “saraksta” saturs tika noņemts. Pamēģiniet vēlreiz:
Tas var būt noderīgi, ja vēlaties atkārtoti izmantot failu, bet bieži vien mēs tikai vēlamies pievienot esošam failam. Šim nolūkam mēs izmantojam divus secīgus lielākus simbolus:
atbalss dzeltenā paprika >> saraksts
Viegli! Izmantosim šo komandu, lai izveidotu lielāku sarakstu, vai mēs?
Tur mēs ejam. Es domāju, ka jūs varat redzēt, kāpēc tik daudzi geeks izmanto komandrindu, lai izveidotu uzdevumu sarakstus un tamlīdzīgus, bet tas kļūst vēl labāk.
Veiksim komandas izvadi un ievietojiet to failā:
ls -al /> ~ / rootlist
Failu sarakstu izveidošana, rediģēšana un komandu palaišana tiem, kurus vēlaties, nekad nav bijusi vienkāršāka. Un, kamēr mēs šīs pamatfunkcijas izpildām komandrindā, tās arī darbojas skriptos.
Cauruļvadi vai ķēdes
Cauruļvadi ir nosaukti tāpēc, ka tas izmanto cauruli, (|; koplietots ar lielāko klaviatūru). Būtībā tas aizņem vienas komandas izvadi un tieši to padod citai. Jūs varat izveidot garas komandu ķēdes, lai šādā veidā iegūtu ļoti specifisku vēlamo rezultātu, un tas ir ļoti ērti komandām, piemēram, grep.
Tā darbojas daudz, piemēram, ">", izņemot to, ka to var vairākkārt savienot ar ķēdi, un tā iedarbība ir vispārīgāka, jo tai nav jāiet caur teksta failu.
Kā redzat, grep ir reģistrjutīga. Jūs varat izmantot “-i” karodziņu, lai to ignorētu.
Ievades ievadīšana
Varat arī ievadīt datus no komandām, izmantojot mazāk nekā simbolu (<).
kaķis < list
"Tas nav atšķirīgs no argumenta izmantošanas!" Nu, jūs šajā gadījumā būtu pareizi. Ja ieejas ievade patiešām ir noderīga, komandas tiek apvienotas kopā.
Pieņemsim, ka mēs vēlamies filtrēt jebkuru vārdu, kas tajā ir "pep" no mūsu pašreizējā "faila" faila jaunā failā ar nosaukumu "labojumi".
grep pep labojumi
Atkārtojam šo komandu un pievienosim dažas šķirošanas.
grep pep labojumi
Tas izmantos “pep” kā meklēšanas terminu no ievades faila “saraksts”, sakārtot to alfabētiskā secībā (visi lielie burti, kam seko visi mazie burti), pēc tam izlaidiet to “pārskatīšanas” failā.
Lai ilustrētu kārtošanas komandu, apskatīsim šādu piemēru:
Kā redzat, karodziņa "-f" pievienošana šķirošanas komandai ļauj ignorēt lietu. Tas atvieglo teksta rindkopu alfabētiskumu un ignorē kapitalizāciju, kad tas nav svarīgi.
Vienkāršs skripts
Izveidosim skriptu, kura forma ir šāda:
skripts searchterm listfile
Tas aizņems terminu un izmantos grep, lai meklētu sarakstu sarakstā, sakārtotu rezultātus un pēc tam tos izvadītu uz citu failu.
Šeit ir katalogs, kurā pārbaudīsim skriptu:
Un mēs varam izveidot sarakstu ar to, kas šeit ir, tad palaist skriptu.
Lūdzu! Jo vairāk jūs apgūstat regulāru izteiksmju noteikumus, jo precīzāk jūs varat izveidot meklēšanas komandu. Un visu, kas ir derīgs pēdiņās, var aizstāt ar savu pirmo argumentu!
Kas attiecas uz šķirošanu, jūs varat darīt vairāk nekā tikai kārtot alfabēta secībā. Apskatiet manas lapu, lai iegūtu dažas no šīm komandām:
- tsort - progresīvāka topoloģiskās šķirošanas funkcija
- tr - ļauj kartēt konkrētas rakstzīmes uz citām rakstzīmēm un pārrakstīt starp tām.
- uniq - noņem jebkādu unikālu (lasīt: dublikātu)
- awk - tiešām uzlabota teksta apstrādes valoda / funkcija, ko var izmantot, lai atdalītu laukus failu nosaukumos
- izgriezt, ielīmēt / pievienoties - komandas, kas ir noderīgas, lai izolētu laukus no teksta failiem un pievienotu jaunus datus kolonnās
- izskats - meklējumi, piemēram, grep, bet meklēšanai izmanto vārdnīcas failu (ko var norādīt lietotājs)
- wc - ļauj iegūt vārdu skaitu, līniju skaitu, rakstzīmju skaitu un daudz ko citu
Šodien mēs apskatījām vairākus pamatus, kas komandrindā var būt tikpat noderīgi kā skriptos. Dati, kas balstīti uz tekstu, bieži vien ir pamatā lietām, kuras mēs ikdienā lietojam, lai varētu strādāt ar to, meklēt to un manipulēt ar to..
Kādi ir jūsu iecienītākie skripti? Vai ir pieejami speciāli lietojami skripti teksta failiem? Kopīgojiet komentāros to, ko zināt!