Inleiding
Het navigeren en manipuleren van bestanden en mappen in het bestandssysteem is een essentieel onderdeel van het werken met de meeste computers. Cloudservers gebruiken meestal dezelfde gangbare Linux-shells en gangbare Linux-commando’s om met bestanden en mappen te werken. Deze terminal zal enkele fundamentele vaardigheden introduceren voor het gebruik van deze commando’s.
Vereisten en Doelen
Om deze handleiding te kunnen volgen, moet je toegang hebben tot een Linux-server. Als je informatie nodig hebt over hoe je voor de eerste keer verbinding maakt met je server, kun je onze handleiding volgen over het verbinden met een Linux-server via SSH. onze gids over het verbinden met een Linux-server via SSH.
Je wilt ook begrijpen hoe de terminal werkt en hoe Linux-commando’s eruitzien. Deze handleiding behandelt een introductie tot de terminal.
Alle materialen in deze handleiding kunnen worden uitgevoerd met een gewoon, niet-root (niet-beheerders) gebruikersaccount. U kunt leren hoe u dit type gebruikersaccount configureert door de handleiding voor de initiële serverconfiguratie van uw distributie te volgen, zoals voor Ubuntu 22.04.
Wanneer u klaar bent om te beginnen, maakt u verbinding met uw Linux-server via SSH en gaat u hieronder verder.
Navigatie en Verkenning
De meest fundamentele vaardigheden die u moet beheersen, zijn het navigeren door het bestandssysteem en een idee krijgen van wat er om u heen is. U zult de tools die u hiervoor kunt gebruiken in deze sectie doornemen.
Vinden Waar U Bent met het “pwd” Commando
Wanneer u inlogt op uw server, wordt u meestal gedropt in de home directory van uw gebruikersaccount. Een home directory is een directory die is gereserveerd voor uw gebruiker om bestanden op te slaan en mappen te maken. Het is de locatie in het bestandssysteem waar u volledige controle heeft.
Om te achterhalen waar je home-directory zich bevindt ten opzichte van de rest van het bestandssysteem, kun je het pwd
-commando gebruiken. Dit commando geeft de directory weer waarin je momenteel bent:
Output/home/sammy
De home-directory is vernoemd naar het gebruikersaccount. Deze directory bevindt zich in een directory genaamd /home
, die op zijn beurt binnen de top-level directory ligt, die meestal de “root” directory wordt genoemd en wordt weergegeven door een enkele slash /
.
Het bekijken van de inhoud van directories met “ls”
Nu je weet hoe je de huidige directory kunt weergeven, kun je de inhoud van een directory bekijken.
Op dit moment heeft je home-directory niet veel te bieden, dus je kunt naar een andere, meer gevulde directory gaan om te verkennen. Gebruik cd
om naar deze directory te gaan. Daarna gebruik je pwd
om te bevestigen dat je succesvol bent verplaatst:
Output/usr/share
Nu je in een nieuwe directory bent, laten we eens kijken wat er binnenin zit. Hiervoor kun je het ls
-commando gebruiken:
Outputadduser groff pam-configs
applications grub perl
apport grub-gfxpayload-lists perl5
apps hal pixmaps
apt i18n pkgconfig
aptitude icons polkit-1
apt-xapian-index info popularity-contest
. . .
Zoals je kunt zien, zijn er veel items in deze directory. Je kunt enkele optionele vlaggen toevoegen aan het commando om het standaardgedrag aan te passen. Bijvoorbeeld, om alle inhoud in een uitgebreide vorm weer te geven, kun je de -l
-vlag gebruiken (voor “lange” uitvoer):
Outputtotal 440
drwxr-xr-x 2 root root 4096 Apr 17 2022 adduser
drwxr-xr-x 2 root root 4096 Sep 24 19:11 applications
drwxr-xr-x 6 root root 4096 Oct 9 18:16 apport
drwxr-xr-x 3 root root 4096 Apr 17 2022 apps
drwxr-xr-x 2 root root 4096 Oct 9 18:15 apt
drwxr-xr-x 2 root root 4096 Apr 17 2022 aptitude
drwxr-xr-x 4 root root 4096 Apr 17 2022 apt-xapian-index
drwxr-xr-x 2 root root 4096 Apr 17 2022 awk
. . .
Deze weergave geeft ons veel informatie. Het eerste blok beschrijft het bestandstype (als de eerste kolom een “d” is, is het item een directory, en als het een “-“, is het een normaal bestand) en de machtigingen. Elke volgende kolom, in volgorde, beschrijft het aantal harde links naar dat bestand elders op het systeem, de eigenaar, groepseigenaar, grootte van het item, laatste wijzigingstijd en de naam van het item.
Om een lijst te krijgen van alle bestanden, inclusief verborgen bestanden en directories, kun je de -a
vlag toevoegen. Aangezien er geen echte verborgen bestanden zijn in de /usr/share
directory, laten we teruggaan naar je home directory en die opdracht proberen. Je kunt teruggaan naar de home directory door cd
in te typen zonder argumenten:
Output. .. .bash_logout .bashrc .profile
Zoals je kunt zien, zijn er drie verborgen bestanden, samen met .
en ..
, die speciale indicatoren zijn. Je zult merken dat vaak configuratiebestanden worden opgeslagen als verborgen bestanden, zoals hier het geval is.
Voor de punt en dubbele punt vermeldingen, dit zijn niet precies directories, maar eerder ingebouwde methoden om te verwijzen naar gerelateerde directories. De enkele punt geeft de huidige directory aan, en de dubbele punt geeft de bovenliggende directory van deze directory aan. Dit zal handig zijn in de volgende sectie.
Rondnavigeren in het bestandssysteem met “cd”
Je hebt al twee mapverplaatsingen gemaakt om enkele eigenschappen van ls
te demonstreren in de vorige sectie. Laten we hier eens beter naar het commando kijken.
Begin door terug te gaan naar de map /usr/share
:
Dit is een voorbeeld van het wijzigen van een map door een absoluut pad op te geven. In Linux bevindt elk bestand en elke map zich onder de bovenste map, die de “root” map wordt genoemd, maar wordt aangeduid met een enkele leidende slash “/”. Een absoluut pad geeft de locatie van een map aan ten opzichte van deze topmap aan. Hiermee kunnen we op een ondubbelzinnige manier naar mappen verwijzen vanuit elke plaats in het bestandssysteem. Elk absoluut pad moet met die slash beginnen.
De alternatieve methode is om relatieve paden te gebruiken. Relatieve paden verwijzen naar mappen ten opzichte van de huidige map. Voor mappen die dicht bij de huidige map in de hiërarchie liggen, is dit meestal korter, en het is soms voordelig om geen aannames te hoeven maken over waar een map zich bevindt in het bredere bestandssysteem. Elke map binnen de huidige map kan worden aangeduid met de naam zonder een leidende slash. Je kunt naar de map locale
binnen /usr/share
vanaf je huidige locatie gaan door het volgende te typen:
Je kunt ook meerdere mapniveaus verplaatsen met relatieve paden door het gedeelte van het pad op te geven dat na het pad van de huidige map komt. Vanaf hier kun je naar de map LC_MESSAGES
binnen de map en
gaan door het volgende te typen:
Om terug te gaan naar de bovenliggende map van de huidige directory, kunt u de speciale dubbele punt indicator gebruiken. Bijvoorbeeld, u bevindt zich nu in de directory /usr/share/locale/en/LC_MESSAGES
. Om één niveau omhoog te gaan, kunt u typen:
Dit brengt ons naar de directory /usr/share/locale/en
.
U kunt altijd terugkeren naar uw thuismap door cd
uit te voeren zonder een directory op te geven. U kunt ook ~
gebruiken in plaats van uw thuismap in andere opdrachten:
cd ~
pwd
/home/sammy
Om meer te weten te komen over hoe u deze drie commando’s gebruikt, kunt u onze handleiding over het verkennen van het Linux-bestandssysteem raadplegen.
Bestanden Bekijken
In de vorige sectie hebt u geleerd hoe u door het bestandssysteem kunt navigeren. U hebt waarschijnlijk enkele bestanden gezien bij het gebruik van het ls
-commando in verschillende mappen. In tegenstelling tot sommige besturingssystemen vertrouwen Linux en andere Unix-achtige besturingssystemen op platte tekstbestanden voor grote delen van het systeem.
De belangrijkste manier waarop u bestanden bekijkt in deze tutorial is met het less
-commando. Dit wordt een “pager” genoemd, omdat het u in staat stelt door pagina’s van een bestand te scrollen. Terwijl de vorige commando’s onmiddellijk werden uitgevoerd en u terugbrachten naar de opdrachtregel, is less
een toepassing die blijft draaien en het scherm bezet houdt totdat u afsluit.
Je zult het bestand /etc/services
openen, wat een configuratiebestand is dat service-informatie bevat waar het systeem van op de hoogte is:
Het bestand wordt geopend in less
, waardoor je het gedeelte van het document kunt zien dat past in het gebied van het terminalvenster:
Output# Network services, Internet style
#
# Let op dat het momenteel het beleid van IANA is om een enkel bekend
# poortnummer toe te wijzen voor zowel TCP als UDP; vandaar dat poorten officieel twee vermeldingen hebben
# zelfs als het protocol UDP-operaties niet ondersteunt.
#
# Bijgewerkt vanaf http://www.iana.org/assignments/port-numbers en andere
# bronnen zoals http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services .
# Nieuwe poorten worden toegevoegd op verzoek als ze officieel zijn toegewezen
# door IANA en gebruikt worden in de echte wereld of nodig zijn voor een Debian-pakket.
# Als je een grote lijst met gebruikte nummers nodig hebt, installeer dan het nmap-pakket.
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
. . .
Om te scrollen, kun je de pijltjestoetsen omhoog en omlaag op je toetsenbord gebruiken. Om naar beneden te bladeren, kun je zowel de spatiebalk, de “Page Down” knop op je toetsenbord, of de CTRL-f
sneltoets gebruiken.
Om terug te scrollen, kun je zowel de “Page Up” knop, of de CTRL-b
sneltoets op je toetsenbord gebruiken.
Om naar tekst in het document te zoeken, kun je een voorwaartse slash “/” typen gevolgd door de zoekterm. Bijvoorbeeld, om te zoeken naar “mail”, zou je typen:
/mail
Dit zal vooruit door het document zoeken en stoppen bij het eerste resultaat. Om naar een ander resultaat te gaan, kun je de kleine letter n
toets typen:
n
Om terug te gaan naar het vorige resultaat, gebruik een hoofdletter N
in plaats daarvan:
N
Om het less
programma te verlaten, kunt u q
typen om af te sluiten:
q
Er zijn vele andere manieren om een bestand te bekijken die handig zijn in bepaalde omstandigheden. Het cat
commando geeft de inhoud van een bestand weer en brengt je onmiddellijk terug naar de prompt. Het head
commando laat standaard de eerste 10 regels van een bestand zien. Op dezelfde manier laat het tail
commando de laatste 10 regels zien. Deze commando’s tonen bestandsinhoud op een manier die handig is voor het “piping” naar andere programma’s. Dit concept wordt later in deze zelfstudie serie behandeld.
Bestands- en mapmanipulatie
In deze sectie zul je bestanden en mappen maken en manipuleren.
Maak een bestand met “touch”
Veel commando’s en programma’s kunnen bestanden maken. De meest rechtstreekse methode om een bestand te maken is met het touch
commando. Dit zal een leeg bestand maken met de opgegeven naam en locatie.
Zorg er eerst voor dat je in je home-directory bent, aangezien dit een locatie is waar je toestemming hebt om bestanden op te slaan. Vervolgens kunt u een bestand genaamd file1
maken door het volgende te typen:
Nu, als je de bestanden in de map bekijkt, kun je je nieuw aangemaakte bestand zien:
Outputfile1
Als je het touch
-commando gebruikt op een bestaand bestand, wordt de “laatst gewijzigd” tijd van dat bestand bijgewerkt. Dit kan handig zijn om in gedachten te houden.
Je kunt ook meerdere bestanden tegelijk aanmaken. Je kunt ook absolute paden gebruiken. Bijvoorbeeld, je zou kunnen typen:
Outputfile1 file2 file3
Maak een map aan met “mkdir”
Vergelijkbaar met het touch
-commando, stelt het mkdir
-commando je in staat om lege mappen aan te maken.
Bijvoorbeeld, om een map binnen je thuismap genaamd test
aan te maken, zou je kunnen typen:
Je kunt een map binnen de test
-map genaamd example
aanmaken door te typen:
Om het bovenstaande commando te laten werken, moet de test
-map al bestaan. Om mkdir
te vertellen dat het alle benodigde mappen moet aanmaken om een gegeven map-pad te construeren, kun je de -p
-optie gebruiken. Hiermee kun je geneste mappen in één stap maken. Je kunt een mapstructuur maken die eruitziet als some/other/directories
door te typen:
Het commando zal eerst de some
-map maken, vervolgens zal het de other
-map daarin aanmaken. Ten slotte zal het de directories
-map binnen die twee mappen aanmaken.
Bestanden en mappen verplaatsen en hernoemen met “mv”
U kunt een bestand naar een nieuwe locatie verplaatsen met het mv
-commando. Bijvoorbeeld, u kunt bestand1
verplaatsen naar de test
-map door te typen:
U kunt dat bestand terug verplaatsen naar uw thuismap door gebruik te maken van de speciale puntverwijzing om te verwijzen naar de huidige map. Zorg ervoor dat u zich in uw thuismap bevindt en voer dan het mv
-commando uit:
Het mv
-commando wordt ook gebruikt om bestanden en mappen te hernoemen. In wezen zijn verplaatsen en hernoemen gewoon aanpassingen van de locatie en naam voor een bestaand item.
Dus om de map test
te hernoemen naar testing
, zou u kunnen typen:
Opmerking: De shell zal u niet weerhouden van het per ongeluk uitvoeren van destructieve acties. Als u een bestand hernoemt en een naam kiest die al bestaat, zal het vorige bestand worden overschreven door het bestand dat u verplaatst. Er is geen manier om het vorige bestand te herstellen als u het per ongeluk overschrijft.
Bestanden en mappen kopiëren met “cp”
Met het mv
commando kunt u een bestand of map verplaatsen of hernoemen, maar u kunt het niet dupliceren. Het cp
commando kan een nieuwe kopie maken van een bestaand item.
Bijvoorbeeld, u kunt file3
kopiëren naar een nieuw bestand genaamd file4
:
In tegenstelling tot een mv
operatie, na welke file3
niet langer zou bestaan, heeft u nu zowel file3
als file4
.
Let op: Net als bij het mv
commando, is het mogelijk om een bestand te overschrijven als u niet voorzichtig bent met de bestandsnaam die u gebruikt als het doel van de operatie. Bijvoorbeeld, als file4
al bestond in het bovenstaande voorbeeld, zou de inhoud volledig worden vervangen door de inhoud van file3
.
Om hele mappen te kopiëren, moet u de -r
optie aan het commando toevoegen. Dit staat voor “recursief”, omdat het de map kopieert, plus alle inhoud van de map.
Bijvoorbeeld, om de some
mappenstructuur naar een nieuwe structuur genaamd again
te kopiëren, zou u kunnen typen:
In tegenstelling tot bij bestanden, waarbij een bestaande bestemming zou leiden tot overschrijving, als het doel een bestaande map is, wordt het bestand of de map gekopieerd naar het doel:
Dit zal een nieuwe kopie van file1
creëren en het binnen de again
map plaatsen.
Het verwijderen van bestanden en mappen met “rm” en “rmdir”
Om een bestand te verwijderen, kun je het rm
commando gebruiken.
Let op: Wees uiterst voorzichtig bij het gebruik van destructieve commando’s zoals rm
. Er is geen “ongedaan maken” commando in de shell, dus het is mogelijk om per ongeluk belangrijke bestanden permanent te vernietigen.
Om een gewoon bestand te verwijderen, geef je het gewoon door aan het rm
commando:
Evenzo, om lege mappen te verwijderen, kun je het rmdir
commando gebruiken. Dit lukt alleen als er niets in de betreffende map staat. Bijvoorbeeld, om de map voorbeeld
binnen de map testen
te verwijderen:
Om een niet-lege map te verwijderen, gebruik je het rm
commando met de -r
optie, die alle inhoud van de map recursief verwijdert, plus de map zelf.
Bijvoorbeeld, om de map nogmaals
en alles daarin te verwijderen, typ je:
Het bewerken van bestanden
Op dit moment weet je hoe je bestanden als objecten kunt manipuleren, maar je hebt nog niet geleerd hoe je ze daadwerkelijk kunt bewerken en er inhoud aan toevoegen.
nano
is een van de weinige veelvoorkomende teksteditors voor de opdrachtregel in Linux, en is een uitstekend startpunt voor beginners. Het werkt enigszins vergelijkbaar met het less
-programma dat hierboven wordt besproken, omdat het de hele terminal in beslag neemt gedurende het gebruik.
De nano
-editor kan bestaande bestanden openen of een nieuw bestand maken. Als je besluit om een nieuw bestand te maken, kun je het een naam geven wanneer je de nano
-editor aanroept, of later, wanneer je je inhoud opslaat.
Je kunt het bestand file1
openen om te bewerken door te typen:
De nano
-toepassing zal het bestand openen (dat momenteel leeg is). De interface ziet er ongeveer zo uit:
GNU nano 4.8 file1
[ New File ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell
Langs de bovenkant heb je de naam van de toepassing en de naam van het bestand dat je bewerkt. In het midden wordt de inhoud van het bestand, momenteel leeg, weergegeven. Langs de onderkant heb je een aantal toetscombinaties die enkele besturingselementen voor de editor aangeven. Voor elk van deze betekent het ^
-teken de CTRL
-toets.
Om hulp te krijgen vanuit de editor, druk op Ctrl+G
.
Wanneer je klaar bent met het bekijken van de hulp, typ Ctrl+X
om terug te gaan naar je document.
Voor dit voorbeeld kun je gewoon deze twee zinnen typen:
Hello there.
Here is some text.
Om je werk op te slaan, druk op Ctrl+O
.
File Name to Write: file1
^G Get Help M-D DOS Format M-A Append M-B Backup File
^C Cancel M-M Mac Format M-P Prepend
Zoals je kunt zien, zijn de opties onderaan ook veranderd. Deze zijn contextueel, wat betekent dat ze zullen veranderen afhankelijk van wat je probeert te doen. Om het schrijven naar file1
te bevestigen, druk op Enter
.
Na het opslaan, als je extra wijzigingen aanbrengt en probeert het programma af te sluiten, zie je een vergelijkbare prompt. Voeg een nieuwe regel toe, en probeer dan nano
af te sluiten door Ctrl+X
in te drukken.
Als je niet hebt opgeslagen, wordt je gevraagd om de wijzigingen op te slaan die je hebt aangebracht:
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
Y Yes
N No ^C Cancel
Je kunt op Y
drukken om je wijzigingen op te slaan, op N
om je wijzigingen te negeren en af te sluiten, of op Ctrl+C
om het afsluiten te annuleren. Als je ervoor kiest om op te slaan, krijg je dezelfde bestandsprompt als je eerder hebt ontvangen, waarbij wordt bevestigd dat je de wijzigingen naar hetzelfde bestand wilt opslaan. Druk op Enter
om het bestand op te slaan en de editor te verlaten.
Je kunt de inhoud van het bestand dat je hebt gemaakt zien door ofwel het cat
-programma te gebruiken om de inhoud weer te geven, of het less
-programma om het bestand te openen voor weergave. Na het bekijken met less
, moet je onthouden dat je op q
moet drukken om terug te keren naar de terminal.
OutputHello there.
Here is some text.
Another line.
Een andere editor die je mogelijk vermeld ziet in bepaalde handleidingen is vim
of vi
. Dit is een geavanceerdere editor die zeer krachtig is, maar gepaard gaat met een steile leercurve. Als je ooit wordt verteld om vim
of vi
te gebruiken, voel je vrij om in plaats daarvan nano
te gebruiken. Om te leren hoe je vim
gebruikt, lees onze handleiding voor het aan de slag gaan met vim.
Conclusie
Op dit moment zou je een begrip moeten hebben van hoe je je Linux-server kunt navigeren en hoe je de beschikbare bestanden en mappen kunt bekijken. Je zou ook bekend moeten zijn met bestandsmanipulatieopdrachten die je in staat stellen om bestanden te bekijken, kopiëren, verplaatsen of verwijderen. Ten slotte zou je comfortabel moeten zijn met enige bewerking met behulp van de nano
teksteditor.
Met deze paar vaardigheden zou je in staat moeten zijn om verder te gaan met andere handleidingen en leren hoe je het meeste uit je server kunt halen. In onze volgende handleiding zul je begrijpen hoe je Linux-machtigingen kunt bekijken en begrijpen.
Source:
https://www.digitalocean.com/community/tutorials/basic-linux-navigation-and-file-management