RHCSA-serie: Hoe bestands- en mapbeheer uit te voeren – Deel 2

In dit artikel, RHCSA Deel 2: Bestands- en mapbeheer, zullen we enkele essentiële vaardigheden doornemen die vereist zijn in de dagelijkse taken van een systeembeheerder.

RHCSA: Perform File and Directory Management – Part 2

Bestanden en mappen maken, verwijderen, kopiëren en verplaatsen

Bestands- en mapbeheer is een kritische vaardigheid die elke systeembeheerder zou moeten bezitten. Dit omvat het vermogen om tekstbestanden vanaf nul te maken / verwijderen (de kern van de configuratie van elk programma) en mappen (waar u bestanden en andere mappen zult organiseren), en om het type van bestaande bestanden te achterhalen.

De touch-opdracht kan niet alleen worden gebruikt om lege bestanden te maken, maar ook om de toegangs- en wijzigingstijden van bestaande bestanden bij te werken.

touch command example

U kunt file [bestandsnaam] gebruiken om het type van een bestand te bepalen (dit is handig voordat u uw voorkeurteksteditor start om het te bewerken).

file command example

en rm [bestandsnaam] om het te verwijderen.

rm command example

Voor mappen kunt u mappen maken binnen bestaande paden met mkdir [map] of een volledig pad maken met mkdir -p [/volledig/pad/naar/map].

mkdir command example

Als het gaat om het verwijderen van mappen, moet u ervoor zorgen dat ze leeg zijn voordat u de opdracht rmdir [map] uitvoert, of gebruik de krachtigere (voorzichtig mee omgaan!) rm -rf [map]. Deze laatste optie zal de [map] en al zijn inhoud recursief verwijderen – dus gebruik het op eigen risico.

Input- en outputdoorverwijzing en pijplijnen

De opdrachtregelomgeving biedt twee zeer nuttige functies die het mogelijk maken om de invoer en uitvoer van commando’s van en naar bestanden om te leiden, en om de uitvoer van een commando naar een ander te sturen, respectievelijk.

Om deze twee belangrijke concepten te begrijpen, moeten we eerst de drie belangrijkste soorten I/O (Invoer en Uitvoer) streams (of sequenties) van tekens begrijpen, die in feite speciale bestanden zijn, in de *nix betekenis van het woord.

  1. Standaard invoer (ook wel stdin genoemd) is standaard verbonden met het toetsenbord. Met andere woorden, het toetsenbord is het standaardinvoerapparaat om commando’s in te voeren in de opdrachtregel.
  2. Standaard uitvoer (ook wel stdout genoemd) is standaard verbonden met het scherm, het apparaat dat de uitvoer van commando’s “ontvangt” en ze op het scherm weergeeft.
  3. Standaard fout (ook wel stderr genoemd), is waar de statusberichten van een commando standaard naartoe worden gestuurd, wat ook het scherm is.

In het volgende voorbeeld wordt de uitvoer van ls /var naar stdout (het scherm) gestuurd, evenals het resultaat van ls /tecmint. Maar in het laatste geval wordt stderr getoond.

Input and Output Example

Om deze speciale bestanden gemakkelijker te identificeren, wordt aan elk een bestandsdescriptor toegewezen, een abstracte representatie die wordt gebruikt om ze te openen. Het essentiële om te begrijpen is dat deze bestanden, net als andere, kunnen worden omgeleid. Dit betekent dat je de output van een bestand of script kunt vastleggen en als invoer naar een ander bestand, commando of script kunt sturen. Hierdoor kun je bijvoorbeeld de output van commando’s opslaan op de schijf voor latere verwerking of analyse.

Om stdin (fd 0), stdout (fd 1) of stderr (fd 2) om te leiden, zijn de volgende operators beschikbaar.

Redirection Operator Effect
> Redirects standard output to a file containing standard output. If the destination file exists, it will be overwritten.
>> Appends standard output to a file.
2> Redirects standard error to a file containing standard output. If the destination file exists, it will be overwritten.
2>> Appends standard error to the existing file.
&> Redirects both standard output and standard error to a file; if the specified file exists, it will be overwritten.
< Uses the specified file as standard input.
<> The specified file is used for both standard input and standard output.

In tegenstelling tot omleiding wordt pipelining uitgevoerd door een verticale streep (|) toe te voegen na een commando en voor een ander commando.

Onthoud:

  1. Omleiding wordt gebruikt om de output van een commando naar een bestand te sturen, of om een bestand als invoer naar een commando te sturen.
  2. Pipelining wordt gebruikt om de output van een commando naar een ander commando als invoer te sturen.

Voorbeelden van Omleiding en Pipelining

Voorbeeld 1: De output van een commando naar een bestand omleiden

Er zullen momenten zijn waarop je over een lijst met bestanden moet itereren. Om dat te doen, kun je die lijst eerst opslaan in een bestand en vervolgens dat bestand regel voor regel lezen. Hoewel het waar is dat je direct over de output van ls kunt itereren, dient dit voorbeeld ter illustratie van omleiding.

# ls -1 /var/mail > mail.txt
Redirect output of command tot a file
Voorbeeld 2: Zowel stdout als stderr omleiden naar /dev/null

In het geval dat we zowel stdout als stderr willen voorkomen dat ze op het scherm worden weergegeven, kunnen we beide bestandsbeschrijvers omleiden naar /dev/null. Let op hoe de uitvoer verandert wanneer de omleiding wordt geïmplementeerd voor dezelfde opdracht.

# ls /var /tecmint
# ls /var/ /tecmint &> /dev/null
Redirecting stdout and stderr ouput to /dev/null
Voorbeeld 3: Het gebruik van een bestand als invoer voor een opdracht

Terwijl de klassieke syntaxis van het cat commando is als volgt.

# cat [file(s)]

Je kunt ook een bestand als invoer verzenden, met behulp van de juiste omleidingsoperator.

# cat < mail.txt
cat command example
Voorbeeld 4: Het uitvoer van een opdracht als invoer naar een andere verzenden

Als je een grote directory of proceslijst hebt en een bepaald bestand of proces in één oogopslag wilt kunnen vinden, wil je de lijst doorprikken naar grep.

Merk op dat we in het volgende voorbeeld twee pijplijnen gebruiken. De eerste zoekt naar het vereiste trefwoord, terwijl de tweede de daadwerkelijke grep opdracht uit de resultaten zal elimineren. Dit voorbeeld geeft alle processen weer die zijn gekoppeld aan de apache-gebruiker.

# ps -ef | grep apache | grep -v grep
Send output of command as input to another

Source:
https://www.tecmint.com/file-and-directory-management-in-linux/