Visspēcīgākā Linux Bash čaulas funkcija ir tās spēja apiet failus un efektīvi novirzīt to ievadi un izvadi. Linux izmanto īpašas rakstzīmes vai simbolus, kas pazīstami kā metarakstzīmes, kas piešķir īpašu nozīmi čaulas komandai attiecībā uz failu meklēšanu un komandu savienojumu.

Metarakstzīmes ir noderīgas, lai uzskaitītu, noņemtu un kopētu failus operētājsistēmā Linux. Tomēr katras metarakstzīmes funkcija atšķiras atkarībā no komandas, ar kuru to izmantojat.

Šajā rakstā ir sniegts padziļināts ceļvedis par dažādiem Linux metarakstzīmju veidiem. Visbeidzot, mēs izskaidrojam, kā šīs īpašās rakstzīmes palīdz savienot un paplašināt komandas.

Linux apvalks ļauj saglabāt taustiņsitienus, rakstot komandas, izmantojot metarakstzīmes starp failiem vai direktoriju nosaukumiem. Šīs rakstzīmes palīdz atsaukties uz failu grupu vai direktoriju, lai uzskaitītu, pārvietotu vai veiktu citas darbības.

Šīs ir dažas failiem atbilstošas ​​metarakstzīmes, kuras var interpretēt Linux apvalks:

  • * (zvaigznīte): atbilst vienam vai vairākiem rakstzīmes gadījumiem
  • ? (Jautājuma zīme): atbilst vienai rakstzīmei vai raksta gadījumam
  • [ ] (Kvadrātiekavas): atbilst jebkuram ar defisi atdalītam skaitlim, simbolam vai alfabētam, kas norādīts kvadrātiekavās

Ideāls veids, kā praktizēt metarakstzīmes operētājsistēmā Linux, ir izveidot jaunu tukšu mapi /tmp direktoriju.

sudo mkdir /tmp/meta

Tagad dodieties uz /tmp/meta izmantojot direktoriju cd komanda un izveidot jaunus tukšus failus, izmantojot pieskārienu, sekojoši:

touch apple.txt sidrs.sh etiķis.php cat.txt citrons.txt sula.sh sams.sh 

Izmantojiet šādas komandas, lai pārbaudītu "*" metaraksts un parādīt izvadus:

ls c*
Izvade:
sams.sh cat.txt sidrs.sh
ls c*h
Izvade:
sams.sh sidrs.sh
ls *r*
Izvade:
sidrs.sh etiķis.php
sudo rm *p*

Iepriekš minētā komanda izdzēsīs visus failus, kuru nosaukumā ir burts "p". Varat pārbaudīt izmaiņas, izmantojot komandu ls šādi:

ls
Izvade:
sams.sh cat.txt sidrs.sh sula.sh citrons.txt

Šeit ir daži piemēri "?" metaraksts parauga saskaņošanai:

vai a?*
Izvade:
apple.txt
ls c? t*
Izvade:
sams.sh cat.txt

Pēdējā komanda atbilst jebkuram failam, kas sākas ar c un ir t kā trešais burts (cat.txt, sams.sh utt.).

Tagad izmantojiet [av]* opciju ar komandu ls, lai uzskaitītu visus failus, kas sākas ar vienu vai otru a vai v, sekojoši:

ls [av]*
Izvade:
ābols.txt etiķis.sh

Varat modificēt iepriekš minēto komandu, lai uzskaitītu tikai tos failus, kas beidzas ar burtu t:

ls [ac]*[t]
Izvade:
apple.txt sams.txt cat.txt

Līdzīgi varat izmantot defisi atdalītos burtus, lai definētu diapazonus un sarakstu failus, kā norādīts tālāk.

ls [a-j]*
Izvade:
apple.txt sams.sh cat.txt sidrs.sh sula.sh

Lai labāk izprastu novirzīšanu programmā Bash, katram Linux procesam ir failu deskriptori, kas pazīstami kā standarta ievade (stdin/0), standarta izvade (stdout/1), un standarta kļūda (stderr/2). Tie nosaka komandas ievades izcelsmi un izlemj, kur nosūtīt izvades un kļūdu ziņojumus.

Novirzīšanas metarakstzīmes palīdz mainīt šīs darbības, novirzot satura I/O plūsmu. Parasti Linux apvalks nolasa komandas ievadi no tastatūras un ieraksta izvadi ekrānā. Ievades novirzīšana ļauj komandai nolasīt saturu no faila, nevis no tastatūras, savukārt izvades novirzīšana saglabā komandas izvadi failā.

Citiem vārdiem sakot, Linux failu novirzīšanas metarakstzīmes ļauj novirzīt saturu uz (>) un no (<) failus. Trīs primārās novirzīšanas metarakstzīmes ir:

  1. <: novirza faila saturu uz komandu. Piemēram, komandas izvade for mazāk .bashrc ir tāds pats kā mazāk < .bashrc.
  2. >: novirza komandas izvadi uz failu. Komanda ls /etc > lists.txt saglabā izvadi failā lists.txt.
  3. >>: pievieno komandas izvadi faila saturam.

wc apzīmē vārdu skaitu, un jūs varat to izmantot, lai parādītu atšķirību starp failu pirms un pēc tā pievienošanas izvadei.

Saistīts: Izpratne par standarta I/O operētājsistēmā Linux

Iekavas izvēršanas metaraksts ļauj izvērst rakstzīmes direktorijās, failu nosaukumos vai citos komandrindas argumentos. Piemēram, varat izveidot jaunu direktoriju lencēm iekšpusē /tmp mapi un izveidojiet failu kopu, izmantojot pieskāriena komandu šādi:

sudo mkdir /tmp/brace; cd /tmp/brace
pieskāriena pārbaude{1,2,3,4,5}

Tagad varat pārbaudīt, vai ar pieskārienu tika izveidoti faili, vai neizmantojot komandu ls.

ls
Izvade:
tests1 test2 test3 test4 test5

Varat norādīt vairākus sarakstus, lai ģenerētu failu nosaukumus, pamatojoties uz saraksta elementu kombinācijām. Piemēram:

pieskarieties {ābolam, sidram, etiķim}.{augļi, šķidrums, skābs}
pieskarieties {a, b, c}.{1,2,3}

Pēdējā komanda pašreizējā direktorijā izveidos šādus failus:

Pirmajā komandā tiek izmantotas divas figūriekavu kopas, lai saistītu failu nosaukumus katrā kopā ar otru. Varat arī rakstīt pēdējo komandu kā pieskarieties {a..c}.{1..3} lai norādītu diapazonu starp a un c un 1 un 3.

Papildus failu izveidei varat arī izmantot skavas paplašināšanu, lai noņemtu vai kopētu failus uz citām vietām.

Šeit ir tabula ar dažām obligāti zināmām metarakstzīmēm komandu savienošanai un paplašināšanai, kā arī to nosaukumiem, aprakstu un piemēriem praksē:

Vārds Apraksts Piemērs
Caurule (|) Savieno komandas izvadi kā ievadi citai komandai. kaķis /etc/passwd | grep sakne
Semikols (;) Ļauj izpildīt secīgas komandas vienu pēc otras. cd /etc; ls -la; chmod +x /tmp/script.php
& (&) Palaiž procesus vai komandas fonā. atrast / -perm -u=s -type f &
Dolārs ($) Paplašina aritmētisko izteiksmi un nodod to apvalkam echo "kopējie faili šajā direktorijā ir: $(ls | wc -l)"
Null novirzīšana (2>) Novirza standarta kļūdu ziņojumus uz /dev/null failu your_command 2>/dev/null
Circumflex (^) Atbilst jebkuram modelim, kas sākas ar izteiksmi, kam seko ^ cd /etc/ssh; ls | grep ^s

Linux metarakstzīmes ir pazīstamas arī kā aizstājējzīmes, kas komandām piešķir īpašu nozīmi un kontrolē to uzvedību. Metarakstzīmes optimizē lietotāja darba veiktspēju produktīvā vidē, vienlaikus apstrādājot failus/direktorijus un savienojot/paplašinot Linux čaulas komandas.

Turklāt metaraksti ir arī regulāro izteiksmju pamatelementi. Mācīšanās par metarakstzīmēm un to lietojumu ir arī svarīga prasme, ja vēlaties kļūt par Linux atbalstošu lietotāju.

Rokasgrāmata iesācējiem regulārām izteiksmēm, izmantojot Python

Vai vēlaties paātrināt Python darbplūsmu, izmantojot dažas vienkāršas komandas? Regulāras izteiksmes ir jūsu draugs.

Lasiet Tālāk

DalītiesČivinātE-pasts
Saistītās tēmas
  • Linux
  • Linux Elementary
  • Linux Bash Shell
Par autoru
Rumaisa Niazi (5 publicēti raksti)

Rumaisa ir MUO ārštata rakstniece. Viņa ir nēsājusi daudzas cepures, sākot no matemātiķa līdz informācijas drošības entuziastei, un tagad strādā par SOC analītiķi. Viņas interesēs ir lasīt un rakstīt par jaunām tehnoloģijām, Linux izplatīšanu un jebko, kas saistīts ar informācijas drošību.

Vairāk no Rumaisa Niazi

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai saņemtu tehniskos padomus, pārskatus, bezmaksas e-grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu