RHCSA-serien: Slik utfører du fil- og katalogbehandling - del 2


I denne artikkelen, RHCSA del 2: Fil- og katalogadministrasjon, vil vi gjennomgå noen grunnleggende ferdigheter som kreves i de daglige oppgavene til en systemadministrator.

Opprett, slett, kopier og flytt filer og kataloger

Fil- og katalogadministrasjon er en kritisk kompetanse som enhver systemadministrator bør ha. Dette inkluderer muligheten til å lage/slette tekstfiler fra bunnen av (kjernen i hvert programs konfigurasjon) og kataloger (hvor du vil organisere filer og andre kataloger), og å finne ut hvilken type eksisterende filer.

Berøringskommandoen kan ikke bare brukes til å lage tomme filer, men også til å oppdatere tilgangs- og endringstidene til eksisterende filer.

Du kan bruke fil [filnavn] for å bestemme en filtype (dette vil være nyttig før du starter det foretrukne tekstredigeringsprogrammet for å redigere det).

og rm [filnavn] for å slette den.

Når det gjelder kataloger, kan du lage kataloger inne i eksisterende stier med mkdir [katalog] eller lage en full bane med mkdir -p [/full/bane/til/katalog].

Når det gjelder å fjerne kataloger, må du sørge for at de er tomme før du utsteder kommandoen rmdir [directory], eller bruk den kraftigere (håndter forsiktig!) rm -rf [katalog]. Dette siste alternativet vil tvinge rekursivt fjerning av [katalogen] og alt innholdet – så bruk det på egen risiko.

Input and Output Redirection and Pipelining

Kommandolinjemiljøet gir to svært nyttige funksjoner som gjør det mulig å omdirigere inndata og utdata av kommandoer fra og til filer, og å sende utdata fra en kommando til en annen, kalt henholdsvis omdirigering og pipelining.

For å forstå disse to viktige konseptene, må vi først forstå de tre viktigste typene I/O (Input and Output) strømmer (eller sekvenser) av tegn, som faktisk er spesielle filer, i *nix betydningen av ordet.

  1. Standardinndata (aka stdin) er som standard koblet til tastaturet. Med andre ord, tastaturet er standard inndataenhet for å legge inn kommandoer til kommandolinjen.
  2. Standard utgang (aka stdout) er som standard koblet til skjermen, enheten som "mottar" utdataene fra kommandoer og viser dem på skjermen.
  3. Standardfeil (aka stderr), er der statusmeldingene til en kommando sendes til som standard, som også er skjermen.

I følgende eksempel sendes utdata fra ls /var til stdout (skjermen), samt resultatet av ls /tecmint . Men i sistnevnte tilfelle er det stderr som vises.

For lettere å identifisere disse spesielle filene, er de hver tildelt en filbeskrivelse, en abstrakt representasjon som brukes for å få tilgang til dem. Det viktigste å forstå er at disse filene, akkurat som andre, kan omdirigeres. Hva dette betyr er at du kan fange opp utdataene fra en fil eller et skript og sende det som input til en annen fil, kommando eller skript. Dette vil tillate deg å lagre på disk, for eksempel utdata av kommandoer for senere behandling eller analyse.

For å omdirigere stdin (fd 0), stdout (fd 1) eller stderr (fd 2), er følgende operatører tilgjengelige.

Redirection Operator

Effekt

>

Omdirigerer standardutdata til en fil som inneholder standardutdata. Hvis målfilen eksisterer, vil den bli overskrevet.

>>

Legger til standard utdata til en fil.

2>

Omdirigerer standardfeil til en fil som inneholder standardutdata. Hvis målfilen eksisterer, vil den bli overskrevet.

2>>

Legger til standardfeil i den eksisterende filen.

&>

Omdirigerer både standardutdata og standardfeil til en fil; hvis den angitte filen eksisterer, vil den bli overskrevet.

<

Bruker den angitte filen som standard input.

<>

Den angitte filen brukes for både standard input og standard output.

I motsetning til omdirigering, utføres pipelining ved å legge til en vertikal strek (|) etter en kommando og før en annen.

Huske:

  1. Omdirigering brukes til å sende utdata fra en kommando til en fil, eller for å sende en fil som input til en kommando.
  2. Pipelining brukes til å sende utdata fra en kommando til en annen kommando som input.

Eksempler på omdirigering og pipelining

Eksempel 1: Omdirigere utdata fra en kommando til en fil

Det vil være tider når du må iterere over en liste over filer. For å gjøre det, kan du først lagre den listen i en fil og deretter lese den filen linje for linje. Selv om det er sant at du kan iterere over utdataene til ls direkte, tjener dette eksemplet til å illustrere omdirigering.

ls -1 /var/mail > mail.txt

Eksempel 2: Omdirigerer både stdout og stderr til /dev/null

I tilfelle vi ønsker å forhindre at både stdout og stderr vises på skjermen, kan vi omdirigere begge filbeskrivelsene til /dev/null. Legg merke til hvordan utdataene endres når omdirigeringen implementeres for samme kommando.

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

Eksempel 3: Bruke en fil som input til en kommando

Mens den klassiske syntaksen til cat-kommandoen er som følger.

cat [file(s)]

Du kan også sende en fil som input ved å bruke riktig omdirigeringsoperatør.

cat < mail.txt

Eksempel 4: Sende utdata fra en kommando som input til en annen

Hvis du har en stor katalog eller prosessoppføring og ønsker å kunne finne en bestemt fil eller prosess på et øyeblikk, vil du ønske å overføre oppføringen til grep.

Merk at vi bruker to pipelines i følgende eksempel. Den første ser etter det nødvendige nøkkelordet, mens den andre vil eliminere den faktiske grep-kommandoen fra resultatene. Dette eksemplet viser alle prosessene knyttet til apache-brukeren.

ps -ef | grep apache | grep -v grep