Serija RHCSA: Kako izvesti upravljanje datotekama i direktorijumima - 2. dio


U ovom članku, RHCSA dio 2: Upravljanje datotekama i direktorijumima, pregledat ćemo neke osnovne vještine koje su potrebne u svakodnevnim zadacima administratora sistema.

Kreirajte, izbrišite, kopirajte i premjestite datoteke i direktorije

Upravljanje datotekama i direktorijumima je kritična kompetencija koju bi svaki sistemski administrator trebao posjedovati. Ovo uključuje mogućnost kreiranja/brisanja tekstualnih datoteka od nule (jezgra konfiguracije svakog programa) i direktorija (gdje ćete organizirati datoteke i druge direktorije), te da saznate vrstu postojećih datoteka.

Komanda dodira se može koristiti ne samo za kreiranje praznih datoteka, već i za ažuriranje vremena pristupa i modifikacije postojećih datoteka.

Možete koristiti file [filename] da odredite tip datoteke (ovo će vam dobro doći prije pokretanja željenog uređivača teksta da biste ga uredili).

i rm [ime datoteke] da ga izbrišete.

Što se tiče direktorija, možete kreirati direktorije unutar postojećih staza pomoću mkdir [direktorij] ili kreirati punu stazu sa mkdir -p [/full/path/to/directory].

Kada je u pitanju uklanjanje direktorija, morate se uvjeriti da su prazni prije izdavanja naredbe rmdir [direktorij] ili upotrijebite moćniji (pažljivo rukujte!) rm -rf [direktorij]. Ova posljednja opcija će primorati rekurzivno uklanjanje [direktorij] i sav njegov sadržaj – stoga je koristite na vlastitu odgovornost.

Input and Output Redirection and Pipelining

Okruženje komandne linije pruža dvije vrlo korisne funkcije koje omogućavaju preusmjeravanje ulaza i izlaza komandi iz i na datoteke i slanje izlaza komande drugoj, tzv. preusmjeravanje i pipelining, respektivno.

Da bismo razumjeli ta dva važna koncepta, prvo moramo razumjeti tri najvažnija tipa I/O (Input and Output) tokova (ili nizova) znakova, koji su u stvari posebne datoteke, u *nix smislu riječi.

  1. Standardni unos (aka stdin) je po defaultu vezan za tastaturu. Drugim riječima, tastatura je standardni ulazni uređaj za unos komandi u komandnu liniju.
  2. Standardni izlaz (aka stdout) je po defaultu priključen na ekran, uređaj koji “prima” izlaz komandi i prikazuje ih na ekranu.
  3. Standardna greška (aka stderr), je mjesto gdje se standardno šalju statusne poruke komande, a to je i ekran.

U sljedećem primjeru, izlaz ls /var se šalje u stdout (ekran), kao i rezultat ls /tecmint . Ali u drugom slučaju, prikazan je stderr.

Da bi se lakše identifikovale ove posebne datoteke, svakoj im je dodeljen deskriptor datoteke, apstraktni prikaz koji se koristi za pristup. Bitna stvar koju treba razumjeti je da se ove datoteke, baš kao i druge, mogu preusmjeriti. Ovo znači da možete uhvatiti izlaz iz datoteke ili skripte i poslati ga kao ulaz u drugu datoteku, naredbu ili skriptu. Ovo će vam omogućiti da pohranite na disk, na primjer, izlaz naredbi za kasniju obradu ili analizu.

Da biste preusmjerili stdin (fd 0), stdout (fd 1) ili stderr (fd 2), dostupni su sljedeći operatori.

Redirection Operator

Efekat

>

Preusmjerava standardni izlaz na datoteku koja sadrži standardni izlaz. Ako odredišna datoteka postoji, ona će biti prepisana.

>>

Dodaje standardni izlaz u datoteku.

2>

Preusmjerava standardnu grešku na datoteku koja sadrži standardni izlaz. Ako odredišna datoteka postoji, ona će biti prepisana.

2>>

Dodaje standardnu grešku postojećoj datoteci.

&>

Preusmjerava i standardni izlaz i standardnu grešku u datoteku; ako navedena datoteka postoji, bit će prepisana.

<

Koristi navedenu datoteku kao standardni ulaz.

<>

Navedena datoteka se koristi i za standardni ulaz i za standardni izlaz.

Za razliku od preusmjeravanja, cjevovod se izvodi dodavanjem vertikalne trake (|) nakon naredbe i prije druge.

Zapamtite:

  1. Preusmjeravanje se koristi za slanje izlaza naredbe u datoteku ili za slanje datoteke kao ulaza u komandu.
  2. Cjevovod se koristi za slanje izlaza komande drugoj komandi kao ulaz.

Primjeri preusmjeravanja i cjevovoda

Primjer 1: Preusmjeravanje izlaza naredbe u datoteku

Biće trenutaka kada ćete morati da pređete preko liste fajlova. Da biste to učinili, prvo možete spremiti tu listu u datoteku, a zatim pročitati tu datoteku red po red. Iako je istina da možete iterirati preko izlaza ls direktno, ovaj primjer služi da ilustruje preusmjeravanje.

ls -1 /var/mail > mail.txt

Primjer 2: Preusmjeravanje i stdout i stderr na /dev/null

U slučaju da želimo spriječiti da se i stdout i stderr prikazuju na ekranu, možemo preusmjeriti oba deskriptora datoteke na /dev/null. Obratite pažnju na to kako se izlaz mijenja kada se implementira preusmjeravanje za istu naredbu.

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

Primjer 3: Upotreba datoteke kao ulaza za naredbu

Dok je klasična sintaksa naredbe cat sljedeća.

cat [file(s)]

Takođe možete poslati datoteku kao ulaz, koristeći ispravan operator preusmjeravanja.

cat < mail.txt

Primjer 4: Slanje izlaza naredbe kao ulaza drugoj

Ako imate veliki direktorij ili spisak procesa i želite da budete u mogućnosti da locirate određeni fajl ili proces na prvi pogled, poželjet ćete distribuirati popis u grep.

Imajte na umu da koristimo za cjevovode u sljedećem primjeru. Prvi traži potrebnu ključnu riječ, dok će drugi eliminirati stvarnu grep komandu iz rezultata. Ovaj primjer navodi sve procese povezane s korisnikom apache.

ps -ef | grep apache | grep -v grep