Tips en Trucs 2014

Linux bestandstypen

Introductie

Bij het bladeren door een Linux bestandssysteem kom je verschillende soorten bestanden tegen. De meest gebruikte zijn gewone bestanden en mappen. Het Linux besturingssysteem heeft wat betreft bestandstypen meer te bieden en kent naast de gewone bestanden en mappen nog vijf andere bestandstypen.

Herkennen van het bestandstype

Met één enkele opdracht kan je alle bestandstypen op een Linux systeem herkennen.

dany@linux-att3:~> ls -ld /etc/services
-rw-r--r-- 1 root root 1263621 27 sep 22:06 /etc/services

De ls opdracht toont het bestandstype in het eerste teken van de eerste kolom (het onderdeel met de toegangsrechten van het bestand). In het voorbeeld een minteken (het symbool voor een gewoon bestand). Belangrijk om weten is dat je een Linux bestandstype niet mag verwarren met bestandsextensies. De zeven verschillende Linux bestandstypen zijn:

  1. - : gewoon bestand
  2. d : map (directory)
  3. c : karakter apparaat (character device)
  4. b : blok apparaat (block device)
  5. s : lokale verbinding (socket)
  6. p : benoemde pijplijn (pipe)
  7. l : koppeling (link)

Gewone bestanden

Het gewone bestand is het meest voorkomende bestandstype op een Linux systeem. Het zijn de bestanden die tekst, afbeeldingen, applicaties, gedeelde bibliotheken, enz. bevatten. Je kunt een gewoon (regulier) bestand met de touch opdracht aanmaken.

dany@linux-att3:~> touch pindanet
dany@linux-att3:~> ls -ld pindanet
-rw-r--r-- 1 dany users 0 15 feb 12:48 pindanet

Het eerste teken van de ls uitvoer, in dit geval een minteken, verwijst naar een gewoon bestand. Een gewoon bestand kan je verwijderen met de rm opdracht.

dany@linux-att3:~> rm pindanet

Map

Mappen zijn de tweede meest voorkomende bestandstypen in Linux. Mappen kan je aanmaken met de mkdir opdracht.

dany@linux-att3:~> mkdir BestansTypen
dany@linux-att3:~> ls -ld BestansTypen/
drwxr-xr-x 2 dany users 4096 15 feb 12:54 BestansTypen/

Zoals je merkt verwijst de letter d in de ls uitvoer naar een map. Een map verwijder je met de rmdir opdracht.

dany@linux-att3:~> touch BestansTypen/map
dany@linux-att3:~> rmdir BestansTypen/
rmdir: kan ‘BestansTypen/’ niet verwijderen: Map is niet leeg

Oops eeen foutmelding. De touch opdracht heeft een bestand in de map aangemaakt en niet lege mappen kan je niet verwijderen. Daarvoor gebruik je de rm opdracht.

dany@linux-att3:~> rm -r BestansTypen/

Karakter apparaten

Karakter en blok apparaat bestanden zorgen voor communicatie tussen applicaties en hardware apparaten. Een voorbeeld:

dany@linux-att3:~> ls -ld /dev/console
crw------- 1 root root 5, 1 15 feb 10:57 /dev/console

Het console apparaat staat voor invoer vanaf een toetsenbord en uitvoer naar een tekstscherm.

Blok apparaten

Blok apparaten lijken op karakter apparaten, maar verwerken blokken met karakters (bijvoorbeeld 1024 karakters per blok per verwerking). Voorbeelden zijn harde schijven, geheugen, enz.

dany@linux-att3:~> ls -ld /dev/sda
brw-rw---- 1 root disk 8, 0 15 feb 10:57 /dev/sda

Lokale verbinding

Lokale verbindingen (local domain sockets) verzorgen de communicatie tussen processen. Ze worden gebruikt door diensten zoals X windows, syslog en dergelijke.

dany@linux-att3:~> ls -ld /dev/log
srw-rw-rw- 1 root root 0 15 feb 10:57 /dev/log

Lokale verbindingen worden aangemaakt door de socket system call en verwijderd met de unlink of rm opdracht.

Benoemde pijplijn

Benoemde pijplijnen (named pipes) lijken op lokale verbindingen en zorgen voor communicatie tussen twee lokale processen. Ze worden aangemaakt met de mknod opdracht en verwijderd met de rm opdracht.

dany@linux-att3:~> ls -ld /dev/xconsole 
pr-------- 1 dany tty 0 15 feb 11:38 /dev/xconsole

Koppelingen

Met koppelingen kan een systeembeheerder een map of bestand op verschillende plaatsen in het bestandssysteem bereikbaar maken. Koppelingen zijn dus wegwijzers naar het originele bestand. Er zijn twee soorten koppelingen:

Een zachte koppeling gebruikt een bestandsnaam als referentie en harde koppelingen gebruiken een directe referentie (in het bestandssysteem) naar het originele bestand. Daardoor kunnen harde koppelingen niet verwijzen naar bestanden buiten een bestandssysteem of partitie. Om een zachte koppeling (symbolic link) aan te maken, gebruik je de opdracht ln -s.

Symbolic links

Om een zachte koppeling te verwijderen, gebruik je de opdrachten unlink of rm.

Conclusie

Een systeembeheerder werkt meestal met gewone bestanden, mappen, blok en karakter apparaten. Software ontwikkelaars werken eveneens met lokale verbindingen en benoemde pijplijnen.