27Jun

Shell Scripting iesācēju iesācējs 3: vairāk pamata komandu unĶēdes

click fraud protection

Jūs esat iemācījušies veidot skriptus, izmantot argumentus un veidot cilpas. Tagad aplūkosim dažas pamata komandas, teksta failu manipulācijas un ievades un izvades novirzīšanu uz failiem un citām komandām.

Daži pamata noderīgie komandējumi

Mēs jau esam jums iedevuši pamata čaulas skriptu sadalījumu un cilpa izveides pamatprincipus, taču noteikti pārbaudiet šos rakstus, ja līdz šim esat izlaidis mūsu čaulas skriptu rokasgrāmatu.

Komandrinda ir brīnišķīga daudzu iemeslu dēļ, un novirzīšana ir viena no visredzamākajām. Ja jums vajadzēja ņemt vērā un reproducēt katras komandas izlaidi, lai veiktu turpmākas darbības vai izmantotu to kaut ko citu, tad mēs visi jau sen pagājuši crazy. Pāradresācija ļauj mums izmantot šo izvadi un saglabāt to vai nekavējoties to izmantot kā ievadi citai komandai. Mēs varam arī izmantot failus kā ievades citām komandām.

Pirms mēs turpināsim, apskatīsim dažas pamata komandas, kas var būt noderīgas daudzās dažādās vietās.

echo - šī komanda vienkārši izdrukā( parāda) visu savu argumentu komandrindā kā izejas

instagram viewer

echo argumentu ar atstarpēm

. Kā jūs redzat, īpašām rakstzīmēm jābūt "izbēgtai", lai tās būtu normāli apstrādātas. Tas tiek darīts, izmantojot rakstzīmi priekšā, lietojot backslash( \).Labāka ideja ir izmantot citātus. Echo komanda darbojas arī ar mainīgajiem lielumiem.

Kā redzat, vienas un divu citātu izturēšanās atšķiras. Lai iegūtu vairāk informācijas, izskatiet, kāda ir atšķirība starp vienreizējiem un divkāršiem ceturkšņiem Bash apvalkā?

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 kau komandu failā, mēs varam redzēt, ka tā ir izlaide.

grep - šī ir viena no visspēcīgākajām un noderīgākajām komandām, kas jums pieejama sistēmā Linux. Tas ir par globālo / regulāro izteiksmju izdruku. Tas izskata failu un izdrukā jebkuru līniju, kas atbilst konkrētam modelim. Tā kā šis modelis ir balstīts uz "regulārām izteiksmēm", kodolīga līnija var dot daudzu paraugu saskaņošanai. Jo ne, tomēr jūs varat ievadīt ternu meklēšanai.

grep raksta fails

es jums apliecinu, ka grep var izdarīt vairāk, bet tagad pievērsīsimies vieglākai lietošanai.

novirzošās izejas

Lai novirzītu komandas izvadi uz failu, mēs izmantojam īpašu rakstzīmi, lielāku par simbolu( & gt;).

Vai mēs mainīsim savu sarakstu? Ievadiet šādu komandu:

echo pepperoni & gt;saraksts

Jūs varat redzēt, ka echo vairs nerada līniju, un, aplūkojot faila "saraksts" saturu, mēs redzam, ko mēs atkārtoja tajā.

Ņemiet arī vērā, ka iepriekšējais "saraksta" saturs tika noņemts. Izmēģiniet to vēlreiz:

Tas var būt noderīgs, ja vēlaties atkārtoti izmantot failu, taču bieži vien mēs to vēlamies pievienot esošam failam.Šim nolūkam mēs izmantojam divus secīgus lielākus simbolus:

echo dzeltens pipari> & gt;saraksts

Viegli! Izmantosim šo komandu, lai izveidotu lielāku sarakstu, vai mēs to darām?

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.

Let's ņemt komandas izvadi un ievietot to failā:

ls -al / & gt;~ / rootlist

Failu sarakstu izveidošana, to rediģēšana un pēc tam komandu izpildīšana pēc tiem, kurus vēlaties, vēl nekad nav bijusi vienkāršāka. Un, kamēr mēs veicam šīs pamatfunkcijas komandrindā, tie labi darbojas arī skriptos.

Cauruļvads vai Chaining

cauruļvads ir tik nosaukts, jo tas izmanto cauruli( |, kas ir koplietota ar \ taustiņu lielākajā daļā tastatūru).Būtībā tas aizņem vienas komandas izlaidi un tieši nodod to citai. Jūs varat izveidot garas komandu ķēdes, lai iegūtu ļoti konkrētu vēlamo izvadi šādā veidā, un tas ir ļoti ērti komandām, piemēram, grep.

Tas darbojas daudz, piemēram, "& gt;", izņemot to, ka to var vairākkārtēji sasaistīt, un tā efekts ir vispārīgāks, jo tam nav jāiet cauri teksta failam.

Kā redzat, grep ir reģistrjutīga. Varat izmantot "-i" karodziņu, lai ignorētu gadījumu.

Pārvirzīšanas ieejas

Varat arī ievadīt komandu failu failus, izmantojot mazāk nekā simbolu( & lt;).

cat

"Tas nav atšķirīgs no argumentu izmantošanas!", Jūs varētu teikt. Nu, šajā gadījumā jūs būtu pareizi. Ja ieejas pārorientēšana patiešām ir noderīga, tas ir apvienojot komandas kopā.

Pieņemsim, ka mēs vēlamies filtrēt jebkuru vārdu, kas tajā ir "pep" no mūsu pašreizējā "saraksta" faila uz jaunu failu ar nosaukumu "revisions".

grep pep & lt;saraksts & gt;labojumi

Atkārtojiet šo komandu un pievienojiet šķirošanu.

grep pep & lt;saraksts |kārtot & gt;labojumi

Izmantojot ievadfailu "list", meklēšanas lodziņā tiks izmantots "pep", sakārtojiet to alfabētiskā secībā( visi lielo burtu termiņi, kam seko visi mazajiem burtiem), pēc tam izvadiet to failā "revisions".

Lai ilustrētu kārtulas komandu, aplūkosim šādu piemēru:

Kā jūs varat redzēt, pievienojot karodziņu "-f", lai kārtotu komandu, jūs varat ignorēt gadījumu. Tādējādi mēs varam vienkārši apzīmēt līnijas teksta failos un ignorēt lielo burtu lietošanu, ja tas nav svarīgi.

Vienkāršs skripts

Izveidosim skriptu, kuram ir šāda forma:

skripts searchterm listfile

Tas aizņem terminu un izmantos grep, lai meklētu saraksta failu, kārtotu rezultātus un pēc tam izvadītu tos citā failā.

Šeit ir katalogs, kurā mēs skenēšanu pārbaudīsim:

. Mēs varam izveidot sarakstu ar to, kas šeit, un palaist skriptu.

Tur tu ej! Jo vairāk jūs apgūsiet regulāro izteiksmju noteikumus, jo precīzāk varēsiet salikt meklēšanas komandu. Un viss, kas der citātiem, var aizstāt ar savu pirmo argumentu!

Attiecībā uz šķirošanu, jūs varat darīt vairāk nekā tikai kārtot alfabēta kārtā.Apskatiet vīrusa lapu dažām no šīm komandām:

  • tsort - progresīvāka topoloģiskās šķirošanas funkcija
  • tr - ļauj norādīt citu rakstzīmju īpašās rakstzīmes un tos pārrakstīt.
  • uniq - noņem visus ne-unikālus( lasīt: dublikātus)
  • awk - ļoti uzlabotu teksta apstrādes valodu / funkciju, ko var izmantot, lai atdalītu laukus failu nosaukumos
  • sagriež, ielīmē / pievieno - komandas, kas noderīgas lauku izolēšanai no teksta failiem un pievienojotjauni dati kolonnās
  • izskats - meklē, piemēram, grep dara, bet meklēšanai meklējamo
  • wc izmanto vārdnīcas failu( kuru var norādīt lietotājs) wc - ļauj jums iegūt vārdu skaitu, rindu skaitu, rakstzīmju skaitu un citus

Mēs apskatījāmiesdažos vairāk pamatos šodien, kas var būt tikpat noderīgi kā komandrindā, kā skriptos. Teksta dati bieži vien ir to lietu pamatā, kuras mēs katru dienu lietojam, lai varētu ar to strādāt, meklēt to un manipulēt ar tiem ir atslēga.

Kādi ir daži no jūsu iecienītākajiem skriptiem? Vai jums ir kādas īpašas izmantošanas skripti teksta failiem? Kopīgojiet to, ko jūs zināt, komentāros!