Serija RHCSA: Kako izvesti upravljanje datotek in imenikov - 2. del


V tem članku, RHCSA 2. del: Upravljanje datotek in imenikov, bomo pregledali nekatere bistvene spretnosti, ki so potrebne pri vsakodnevnih opravilih sistemskega skrbnika.

Ustvarjanje, brisanje, kopiranje in premikanje datotek in imenikov

Upravljanje datotek in imenikov je ključna sposobnost, ki bi jo moral imeti vsak sistemski skrbnik. To vključuje možnost ustvarjanja/brisanja besedilnih datotek iz nič (jedro konfiguracije vsakega programa) in imenikov (kjer boste organizirali datoteke in druge imenike) ter ugotavljanje vrste obstoječih datotek.

Ukaz na dotik lahko uporabite ne samo za ustvarjanje praznih datotek, temveč tudi za posodobitev časa dostopa in spreminjanja obstoječih datotek.

Za določitev vrste datoteke lahko uporabite datoteko [ime datoteke] (to vam bo prišlo prav, preden zaženete želeni urejevalnik besedila, da jo uredite).

in rm [ime datoteke] , da jo izbrišete.

Kar zadeva imenike, lahko ustvarite imenike znotraj obstoječih poti z mkdir [imenik] ali pa celotno pot z mkdir -p [/ full/path/to/directory] .

Ko gre za odstranjevanje imenikov, se pred izdajo ukaza rmdir [directory] prepričajte, da so prazni, ali uporabite zmogljivejši (previdno ravnajte!) rm -rf [imenik] . Ta zadnja možnost bo prisilno rekurzivno odstranila [imenik] in vso njegovo vsebino - zato jo uporabite na lastno odgovornost.

Vhodna in izhodna preusmeritev in cevovodi

Okolje ukazne vrstice ponuja dve zelo uporabni funkciji, ki omogoča preusmeritev vhoda in izhoda ukazov iz datotek in v datoteke ter pošiljanje izhoda ukaza v drugo, imenovano preusmeritev oziroma cevovod.

Da bi razumeli ta dva pomembna koncepta, moramo najprej razumeti tri najpomembnejše vrste V/I (vhodnih in izhodnih) tokov (ali zaporedij) znakov, ki so v resnici posebne datoteke, v pomenu besede * nix.

  1. Standardni vhod (aka stdin) je privzeto priključen na tipkovnico. Z drugimi besedami, tipkovnica je standardna vhodna naprava za vnos ukazov v ukazno vrstico.
  2. Standardni izhod (aka stdout) je privzeto pritrjen na zaslon, naprava, ki\"sprejme" izhod ukazov in jih prikaže na zaslonu.
  3. Standardna napaka (aka stderr) je privzeto sporočilo o stanju ukaza, ki je tudi zaslon.

V naslednjem primeru se izhod ls/var pošlje na stdout (zaslon), pa tudi rezultat ls/tecmint. Toda v zadnjem primeru je prikazan stderr.

Za lažje prepoznavanje teh posebnih datotek jim je vsak dodeljen deskriptor datoteke, abstraktna predstavitev, ki se uporablja za dostop do njih. Bistveno za razumevanje je, da je mogoče te datoteke, tako kot druge, preusmeriti. To pomeni, da lahko izhod iz datoteke ali skripta zajamete in ga pošljete kot vhod v drugo datoteko, ukaz ali skript. Tako boste lahko na disk shranili na primer izhod ukazov za kasnejšo obdelavo ali analizo.

Za preusmeritev stdin (fd 0), stdout (fd 1) ali stderr (fd 2) so na voljo naslednji operaterji.

V nasprotju s preusmeritvijo se cevovod izvede tako, da se po ukazu in pred drugim doda navpična vrstica (|) .

Ne pozabite:

  1. Preusmeritev se uporablja za pošiljanje izhoda ukaza v datoteko ali za pošiljanje datoteke kot vhoda ukazu.
  2. Pipeliranje se uporablja za pošiljanje izhoda ukaza drugemu ukazu kot vhod.

Včasih boste morali iti po seznamu datotek. Če želite to narediti, lahko najprej shranite seznam v datoteko in nato to datoteko preberete po vrsticah. Čeprav je res, da lahko neposredno pregledujete izhod ls, ta primer služi za ponazoritev preusmeritve.

# ls -1 /var/mail > mail.txt

Če želimo preprečiti, da bi bila na zaslonu prikazana stdout in stderr, lahko oba deskriptorja datotek preusmerimo na /dev/null . Upoštevajte, kako se izhod spremeni, ko je preusmeritev izvedena za isti ukaz.

# ls /var /tecmint
# ls /var/ /tecmint &> /dev/null

Medtem ko je klasična sintaksa ukaza mačka naslednja.

# cat [file(s)]

Datoteko lahko pošljete tudi kot vhod s pravilnim operaterjem preusmeritve.

# cat < mail.txt

Če imate velik imenik ali seznam postopkov in želite naenkrat poiskati določeno datoteko ali postopek, boste želeli seznam usmeriti v grep.

Upoštevajte, da v naslednjem primeru uporabljamo cevovode. Prva išče zahtevano ključno besedo, druga pa bo iz rezultatov izločila dejanski grep ukaz . V tem primeru so navedeni vsi procesi, povezani z uporabnikom apache.

# ps -ef | grep apache | grep -v grep