In dit artikel, RHCSA deel 2: Bestands- en directorybeheer, we zullen enkele essentiële vaardigheden bespreken die vereist zijn in de dagelijkse taken van een systeembeheerder.
Bestands- en directorybeheer is een essentiële competentie die elke systeembeheerder zou moeten bezitten. Dit omvat de mogelijkheid om helemaal opnieuw tekstbestanden te maken / verwijderen (de kern van de configuratie van elk programma) en mappen (waar u bestanden en andere mappen zult ordenen), en om het type bestaande te achterhalen bestanden.
De aanraakopdracht kan niet alleen worden gebruikt om lege bestanden aan te maken, maar ook om de toegangs- en wijzigingstijden van bestaande bestanden bij te werken.
Je kunt gebruiken bestand [bestandsnaam]
om het type van een bestand te bepalen (dit is handig voordat u uw favoriete teksteditor start om het te bewerken).
en rm [bestandsnaam]
om het te verwijderen.
Wat mappen betreft, u kunt mappen binnen bestaande paden maken met mkdir [map]
of maak een volledig pad met mkdir -p [/volledig/pad/naar/map]
.
Als het gaat om het verwijderen van mappen, moet u ervoor zorgen dat ze leeg zijn voordat u de rmdir [map]
commando, of gebruik de krachtigere (voorzichtig behandelen!) rm -rf [map]
. Deze laatste optie dwingt recursief de. te verwijderen [map]
en al zijn inhoud - dus gebruik het op eigen risico.
De opdrachtregelomgeving biedt twee zeer handige functies die het mogelijk maken om de invoer en uitvoer van opdrachten van en naar bestanden, en om de uitvoer van een opdracht naar een andere te sturen, respectievelijk omleiding en pipelining genoemd.
Om deze twee belangrijke concepten te begrijpen, moeten we eerst de drie belangrijkste typen I/O. begrijpen (Invoer en Uitvoer) streams (of reeksen) van karakters, die in feite speciale bestanden zijn, in de *nix zin van het woord.
In het volgende voorbeeld is de uitvoer van ls /var
wordt verzonden naar stout (het scherm), evenals het resultaat van ls /tecmint. Maar in het laatste geval is het stderr dat wordt getoond.
Om deze speciale bestanden gemakkelijker te kunnen identificeren, krijgen ze elk een bestandsdescriptor toegewezen, een abstracte weergave die wordt gebruikt om ze te openen. Het belangrijkste om te begrijpen is dat deze bestanden, net als andere, kunnen worden omgeleid. Dit betekent dat je de uitvoer van een bestand of script kunt vastleggen en als invoer naar een ander bestand, commando of script kunt sturen. Hiermee kunt u bijvoorbeeld de uitvoer van opdrachten op schijf opslaan voor latere verwerking of analyse.
Om stdin (fd 0), stdout (fd 1) of stderr (fd 2) om te leiden, zijn de volgende operatoren beschikbaar.
Omleidingsoperator | Effect |
> | Leidt standaarduitvoer om naar een bestand met standaarduitvoer. Als het doelbestand bestaat, wordt het overschreven. |
>> | Voegt standaarduitvoer toe aan een bestand. |
2> | Leidt standaardfout om naar een bestand met standaarduitvoer. Als het doelbestand bestaat, wordt het overschreven. |
2>> | Voegt standaardfout toe aan het bestaande bestand. |
&> | Stuurt zowel standaarduitvoer als standaardfout om naar een bestand; als het opgegeven bestand bestaat, wordt het overschreven. |
< | Gebruikt het opgegeven bestand als standaardinvoer. |
<> | Het opgegeven bestand wordt gebruikt voor zowel standaardinvoer als standaarduitvoer. |
In tegenstelling tot omleiding, wordt pipelining uitgevoerd door een verticale balk toe te voegen (|)
na een bevel en voor een ander.
Herinneren:
Er zullen momenten zijn waarop u een lijst met bestanden moet herhalen. Om dat te doen, kunt u die lijst eerst in een bestand opslaan en dat bestand vervolgens regel voor regel lezen. Hoewel het waar is dat u de uitvoer van ls rechtstreeks kunt herhalen, dient dit voorbeeld om omleiding te illustreren.
# ls -1 /var/mail > mail.txt.
Als we willen voorkomen dat zowel stdout als stderr op het scherm worden weergegeven, kunnen we beide bestandsdescriptors omleiden naar /dev/null
. Merk op hoe de uitvoer verandert wanneer de omleiding voor dezelfde opdracht wordt geïmplementeerd.
# ls /var /temint. # ls /var/ /tecmint &> /dev/null.
Terwijl de klassieke syntaxis van de kat commando is als volgt.
# kat [bestand (en)]
U kunt ook een bestand als invoer verzenden met de juiste omleidingsoperator.
# kat < mail.txt.
Als je een grote directory of procesvermelding hebt en een bepaald bestand of proces in één oogopslag wilt kunnen lokaliseren, wil je de lijst naar grep pijplijnen.
Houd er rekening mee dat we in het volgende voorbeeld gebruikmaken van pijplijnen. De eerste zoekt naar het vereiste trefwoord, terwijl de tweede het werkelijke elimineert grep commando
uit de resultaten. Dit voorbeeld geeft een overzicht van alle processen die aan de apache-gebruiker zijn gekoppeld.
# ps -ef | grep apache | grep -v grep.