Linux Navigatie en Bestandsbeheer

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.

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:

  1. pwd
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:

  1. cd /usr/share
  2. pwd
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:

  1. ls
Output
adduser 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):

  1. ls -l
Output
total 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:

  1. cd
  2. ls -a
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:

  1. cd /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:

  1. cd locale

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:

  1. cd en/LC_MESSAGES

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:

  1. cd ..

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:

  1. less /etc/services

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:

  1. cd
  2. touch file1

Nu, als je de bestanden in de map bekijkt, kun je je nieuw aangemaakte bestand zien:

  1. ls
Output
file1

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:

  1. touch /home/sammy/file2 /home/sammy/file3
  2. ls
Output
file1 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:

  1. cd
  2. mkdir test

Je kunt een map binnen de test-map genaamd example aanmaken door te typen:

  1. mkdir test/example

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:

  1. mkdir -p some/other/directories

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:

  1. mv file1 test

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:

  1. cd
  2. mv test/file1 .

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:

  1. mv test testing

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:

  1. cp file3 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:

  1. cp -r some again

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:

  1. cp file1 again

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:

  1. cd
  2. rm file4

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:

  1. rmdir testing/example

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:

  1. rm -r again

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:

  1. cd
  2. nano file1

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:

file1
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.

  1. less file1
Output
Hello 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