RHCSA serija: kaip valdyti failus ir katalogus – 2 dalis


Šiame straipsnyje RHCSA 2 dalis: failų ir katalogų valdymas apžvelgsime kai kuriuos esminius įgūdžius, kurių reikia atliekant kasdienes sistemos administratoriaus užduotis.

Kurti, ištrinti, kopijuoti ir perkelti failus ir katalogus

Failų ir katalogų valdymas yra esminė kompetencija, kurią turėtų turėti kiekvienas sistemos administratorius. Tai apima galimybę kurti/ištrinti tekstinius failus nuo nulio (kiekvienos programos konfigūracijos esmė) ir katalogus (kur tvarkysite failus ir kitus katalogus) bei sužinoti esamų failų tipą.

Touch komanda galima ne tik kurti tuščius failus, bet ir atnaujinti esamų failų prieigos ir modifikavimo laiką.

Galite naudoti failą [failo pavadinimas], kad nustatytumėte failo tipą (tai bus naudinga prieš paleidžiant pageidaujamą teksto rengyklę, kad galėtumėte jį redaguoti).

ir rm [failo pavadinimas], kad jį ištrintumėte.

Kalbant apie katalogus, katalogus galite sukurti esamuose keliuose naudodami mkdir [katalogas] arba sukurti visą kelią naudodami mkdir -p [/full/path/to/directory].

Kai reikia pašalinti katalogus, prieš išleisdami komandą rmdir [katalogas] turite įsitikinti, kad jie yra tušti, arba naudoti galingesnę (elkitės atsargiai!) rm -rf [katalogas] . Ši paskutinė parinktis privers rekursyviai pašalinti [katalogas] ir visą jo turinį, todėl naudokite ją savo rizika.

Įvesties ir išvesties peradresavimas ir vamzdynų sudarymas

Komandinės eilutės aplinkoje yra dvi labai naudingos funkcijos, leidžiančios nukreipti komandų įvestį ir išvestį iš ir į failus bei siųsti komandos išvestį į kitą, vadinamą peradresavimas ir vamzdynų sudarymas.

Norėdami suprasti šias dvi svarbias sąvokas, pirmiausia turime suprasti tris svarbiausius įvesties/išvesties (įvesties ir išvesties) simbolių srautų (arba sekos) tipus, kurie iš tikrųjų yra specialūs failai šio žodžio *nix prasme.

  1. Standartinė įvestis (dar žinoma kaip stdin) pagal numatytuosius nustatymus yra prijungta prie klaviatūros. Kitaip tariant, klaviatūra yra standartinis įvesties įrenginys komandoms į komandų eilutę įvesti.
  2. Standartinė išvestis (dar žinoma kaip stdout) pagal numatytuosius nustatymus yra prijungta prie ekrano, įrenginio, kuris „gauna“ komandų išvestį ir rodo jas ekrane.
  3. Standartinė klaida (dar žinoma kaip stderr) yra vieta, kur pagal numatytuosius nustatymus siunčiami komandos būsenos pranešimai, o tai yra ir ekranas.

Toliau pateiktame pavyzdyje ls /var išvestis siunčiama į stdout (ekraną), taip pat ls /tecmint rezultatas. . Tačiau pastaruoju atveju rodomas stderr.

Kad būtų lengviau atpažinti šiuos specialius failus, kiekvienam iš jų priskiriamas failo deskriptorius – abstraktus vaizdas, naudojamas prieigai prie jų. Svarbu suprasti, kad šie failai, kaip ir kiti, gali būti nukreipti. Tai reiškia, kad galite užfiksuoti failo ar scenarijaus išvestį ir nusiųsti jį kaip įvestį į kitą failą, komandą ar scenarijų. Tai leis diske išsaugoti, pavyzdžiui, komandų išvestį vėliau apdoroti ar analizuoti.

Norint peradresuoti stdin (fd 0), stdout (fd 1) arba stderr (fd 2), galimi šie operatoriai.

Redirection Operator

Efektas

>

Peradresuoja standartinę išvestį į failą, kuriame yra standartinė išvestis. Jei paskirties failas yra, jis bus perrašytas.

>>

Prideda standartinę išvestį prie failo.

2>

Peradresuoja standartinę klaidą į failą, kuriame yra standartinė išvestis. Jei paskirties failas yra, jis bus perrašytas.

2>>

Prie esamo failo pridedama standartinė klaida.

&>

Peradresuoja ir standartinę išvestį, ir standartinę klaidą į failą; jei nurodytas failas egzistuoja, jis bus perrašytas.

<

Naudoja nurodytą failą kaip standartinę įvestį.

<>

Nurodytas failas naudojamas standartinei įvestiei ir standartinei išvestiei.

Priešingai nei peradresavimas, konvejerinis procesas atliekamas pridedant vertikalią juostą (|) po komandos ir prieš kitą.

Prisiminti:

  1. Peradresavimas naudojamas siųsti komandos išvestį į failą arba siųsti failą kaip komandos įvestį.
  2. Sujungimas naudojamas siųsti komandos išvestį kitai komandai kaip įvestį.

Peradresavimo ir vamzdynų sudarymo pavyzdžiai

1 pavyzdys: komandos išvesties peradresavimas į failą

Kartais reikės kartoti failų sąrašą. Norėdami tai padaryti, pirmiausia galite įrašyti tą sąrašą į failą ir perskaityti tą failą eilutę po eilutės. Nors tiesa, kad galite kartoti ls išvestį tiesiogiai, šis pavyzdys skirtas peradresavimui iliustruoti.

ls -1 /var/mail > mail.txt

2 pavyzdys: stdout ir stderr nukreipimas į /dev/null

Jei norime, kad ekrane nebūtų rodomi stdout ir stderr, abu failų aprašus galime peradresuoti į /dev/null. Atkreipkite dėmesį, kaip keičiasi išvestis, kai peradresavimas įgyvendinamas tai pačiai komandai.

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

3 pavyzdys: failo naudojimas kaip komandos įvestis

Nors klasikinė katės komandos sintaksė yra tokia.

cat [file(s)]

Taip pat galite siųsti failą kaip įvestį naudodami tinkamą peradresavimo operatorių.

cat < mail.txt

4 pavyzdys: komandos išvesties siuntimas kaip įvestis kitam

Jei turite didelį katalogą arba procesų sąrašą ir norite iš pirmo žvilgsnio rasti tam tikrą failą arba procesą, norėsite įtraukti sąrašą į grep.

Atkreipkite dėmesį, kad kitame pavyzdyje mes naudojame vamzdynus. Pirmasis ieško reikiamo raktinio žodžio, o antrasis pašalins tikrąją grep komandą iš rezultatų. Šiame pavyzdyje pateikiami visi su apache vartotoju susiję procesai.

ps -ef | grep apache | grep -v grep