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

Satura rādītājs:

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

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

Video: Shell Scripting iesācēju iesācējs 3: vairāk pamata komandu un ķēdes
Video: Windows 8 - How to create a shutdown shortcut for your Windows 8 PC - YouTube 2024, Aprīlis
Anonim
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.
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īgi komandas

Mēs jau esam jums iedevuši pamata čaulas skriptu iedalījumu un cilpas, kuru pamatā ir piemērs, taču noteikti izlasiet šos rakstus, ja līdz šim esat izlaidis mūsu čaulas skriptu rokasgrāmatu.

Komandu līnija 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 tās argumentu komandrindā kā izvadi

echo argument with spaces

Kā redzat, speciālajām rakstzīmēm jābūt "izbēgtām", 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, speciālajām rakstzīmēm jābūt "izbēgtām", 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 divkāršas pēdiņas izturas atšķirīgi. 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ā?
Kā redzat, vienas un divkāršas pēdiņas izturas atšķirīgi. 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.

cat file_to_be_read

Pieņemsim, ka mēs izveidojam šo teksta failu nano:

Kad mēs izmantojam kau komandu failā, mēs redzam, ka tā ir izlaide.
Kad mēs izmantojam kau komandu failā, mēs redzam, ka tā ir izlaide.
grep - šī ir viena no visspēcīgākajām un noderīgākajām komandām, kas jums pieejama 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 - šī ir viena no visspēcīgākajām un noderīgākajām komandām, kas jums pieejama 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 pattern file

Image
Image

Es jums apliecinu, ka grep var paveikt vairāk, bet tagad pieņemsimies vieglāk.

Novirzot izvades

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

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

echo pepperoni > list

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

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

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

echo yellow peppers >> list

Viegli! Izmantosim šo komandu, lai izveidotu lielāku sarakstu, vai mēs to darām?
Viegli! Izmantosim šo komandu, lai izveidotu lielāku sarakstu, vai mēs to darām?
Tur 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.
Tur 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 / > ~/rootlist

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

Cauruļvadi vai ķēdi

Cauruļvads ir tik nosaukts, jo tas izmanto cauruli (|, 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, ">", izņemot to, ka to var vairākkārtēji sasaistīt, un tā iedarbība ir vispārīgāka, jo tai nav jāiet cauri teksta failam.
Tas darbojas daudz, piemēram, ">", izņemot to, ka to var vairākkārtēji sasaistīt, un tā iedarbība ir vispārīgāka, jo tai nav jāiet cauri teksta failam.

Kā jūs varat redzēt, grep ir reģistrjutīga. Varat izmantot "-i" karodziņu, lai ignorētu gadījumu.

Image
Image

Iedalījumu novirzīšana

Jūs varat arī ievadīt komandas failu failus, izmantojot mazāk nekā simbolu (<).

cat < list

"Tas nav atšķirīgs no argumenta 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ā.
"Tas nav atšķirīgs no argumenta 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 "pārskatīšana".

grep pep < list > revisions

Atkārtošu šo komandu un pievienojam šķirošanu.
Atkārtošu šo komandu un pievienojam šķirošanu.

grep pep < list | sort > revisions

Izmantojot ievadfailu "saraksts", meklēšanas lodziņā tiks izmantots "pep", kārtot to alfabētiskā secībā (visi lielo burtu termiņi, kam seko visi mazajiem burtiem), pēc tam izvadiet to failā "revisions".
Izmantojot ievadfailu "saraksts", meklēšanas lodziņā tiks izmantots "pep", kārtot 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 karti "-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.
Kā jūs varat redzēt, pievienojot karti "-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:

script 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:
Šeit ir katalogs, kurā mēs skenēšanu pārbaudīsim:
Un mēs varam izveidot sarakstu ar to, kas šeit, tad palaist skriptu.
Un mēs varam izveidot sarakstu ar to, kas šeit, tad palaist skriptu.
Lūdzu! 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!
Lūdzu! 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ā šķirošanas funkcija
  • tr - ļauj norādīt citas rakstzīmes uz īpašām rakstzīmēm un tos pārrakstīt.
  • uniq - noņem visus ne-unikālus (lasīt: dublikātu)
  • awk - patiešām uzlabota teksta apstrādes valoda / funkcija, ko var izmantot, lai atdalītu laukus failu nosaukumos
  • sagriež, ielīmē / pievieno - komandas, kas noderīgas lauku izolēšanai no teksta failiem un jaunu datu pievienošanai kolonnās
  • meklēt - meklē, piemēram, grep dara, bet meklēšanai izmanto vārdnīcas failu (kuru var norādīt lietotājs)
  • wc - ļauj iegūt vārdu skaitu, līniju skaitu, rakstzīmju skaitu un daudz ko citu

Mēs apskatījām vēl dažus pamatus š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ādi īpaša lietojuma skripti teksta failiem? Kopīgojiet to, ko jūs zināt, komentāros!

Ieteicams: