RHCSA sērija: Kā veikt failu un direktoriju pārvaldību - 2. daļa


Šajā rakstā RHCSA 2. daļa: Failu un direktoriju pārvaldība mēs pārskatīsim dažas būtiskas prasmes, kas nepieciešamas sistēmas administratora ikdienas uzdevumos.

Izveidot, dzēst, kopēt un pārvietot failus un direktorijus

Failu un direktoriju pārvaldība ir kritiska kompetence, kas būtu jāpiemīt katram sistēmas administratoram. Tas ietver iespēju izveidot/izdzēst teksta failus no jauna (katras programmas konfigurācijas pamats) un direktorijus (kur jūs kārtosit failus un citus direktorijus), un uzzināt esošo failu veidu.

Pieskāriena komandu var izmantot ne tikai tukšu failu izveidošanai, bet arī esošo failu piekļuves un modifikācijas laika atjaunināšanai.

Lai noteiktu faila tipu, varat izmantot file [faila nosaukums] (tas noderēs pirms vēlamā teksta redaktora palaišanas, lai to rediģētu).

un rm [faila nosaukums] , lai to izdzēstu.

Kas attiecas uz direktorijiem, esošos ceļos varat izveidot direktorijus ar mkdir [directory] vai izveidot pilnu ceļu ar mkdir -p [/ full/path/to/directory] .

Kad jānoņem direktoriji, pirms komandas rmdir [directory] izsniegšanas jums jāpārliecinās, vai tie ir tukši, vai arī izmantojiet jaudīgāko (rīkojieties uzmanīgi!) rm -rf [direktorija] . Šī pēdējā opcija piespiedīs rekursīvi noņemt [directory] un visu tā saturu - tāpēc izmantojiet to uz savu risku.

Ieejas un izvades novirzīšana un cauruļvadi

Komandrindas vide nodrošina divas ļoti noderīgas funkcijas, kas ļauj novirzīt komandu ievadi un izvadi no failiem un uz failiem, kā arī nosūtīt komandas izvadi uz citu, ko attiecīgi sauc par novirzīšanu un nosūtīšanu.

Lai saprastu šos divus svarīgos jēdzienus, mums vispirms ir jāsaprot trīs vissvarīgākie I/O (ievades un izvades) rakstzīmju plūsmu (vai secību) veidi, kas faktiski ir īpaši faili šī vārda * nix nozīmē.

  1. Standarta ievade (aka stdin) pēc noklusējuma ir pievienota tastatūrai. Citiem vārdiem sakot, tastatūra ir standarta ievades ierīce komandu ievadīšanai komandrindā.
  2. Standarta izeja (aka stdout) pēc noklusējuma ir pievienota ekrānam, ierīcei, kas “saņem” komandu izvadi un parāda tās ekrānā.
  3. Standarta kļūda (aka stderr) ir vieta, kur pēc noklusējuma tiek nosūtīti komandas statusa ziņojumi, kas ir arī ekrāns.

Šajā piemērā ls/var izeja tiek nosūtīta uz stdout (ekrāns), kā arī ls/tecmint rezultāts. Bet pēdējā gadījumā tiek parādīts stderr.

Lai vieglāk identificētu šos īpašos failus, katram no tiem tiek piešķirts faila deskriptors - abstrakts attēlojums, kas tiek izmantots, lai tiem piekļūtu. Būtiskākais, kas jāsaprot, ir tas, ka šos failus, tāpat kā citus, var novirzīt. Tas nozīmē, ka jūs varat sagūstīt faila vai skripta izvadi un nosūtīt to kā ievadi citam failam, komandai vai skriptam. Tas ļaus jums saglabāt diskā, piemēram, komandu izvadi vēlākai apstrādei vai analīzei.

Lai novirzītu stdin (fd 0), stdout (fd 1) vai stderr (fd 2), ir pieejami šādi operatori.

Atšķirībā no novirzīšanas, cauruļvadus veic, pievienojot vertikālu joslu (|) pēc komandas un pirms citas.

Atcerieties:

  1. Novirzīšana tiek izmantota komandas izvades nosūtīšanai uz failu vai faila nosūtīšanai kā ievade komandai.
  2. Cauruļvadi tiek izmantoti, lai nosūtītu komandas izvadi uz citu komandu kā ievadi.

Būs reizes, kad būs jāpārkārto failu saraksts. Lai to izdarītu, vispirms varat saglabāt šo sarakstu failā un pēc tam izlasīt šo failu pa rindām. Lai gan ir taisnība, ka jūs varat atkārtot tieši ls izvadi, šis piemērs kalpo ilustrēšanai novirzīšanai.

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

Gadījumā, ja mēs vēlamies novērst gan stdout, gan stderr rādīšanu ekrānā, abus failu aprakstus varam novirzīt uz /dev/null . Ņemiet vērā, kā izeja mainās, kad novirzīšana tiek ieviesta tai pašai komandai.

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

Kaut arī klasiskā kaķu komandas sintakse ir šāda.

# cat [file(s)]

Varat arī nosūtīt failu kā ievadi, izmantojot pareizo novirzīšanas operatoru.

# cat < mail.txt

Ja jums ir liels direktorijs vai procesu saraksts un vēlaties īsumā atrast noteiktu failu vai procesu, jūs vēlēsities ievadīt sarakstu grep.

Ņemiet vērā, ka mēs izmantojam cauruļvadus šajā piemērā. Pirmais meklē nepieciešamo atslēgvārdu, bet otrais izslēgs faktisko grep komandu no rezultātiem. Šajā piemērā ir uzskaitīti visi ar apache lietotāju saistītie procesi.

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