”Hur många filtyper finns det i Linux/Unix och vilka är de?” Detta är en vanlig fråga för varje person som börjar lära sig Linux. O.K., varför är det så viktigt att känna till filtyper?

Svar: Det beror på att Linux betraktar allting som en fil. När du börjar arbeta på en Linux/Unix-box måste du hantera olika filtyper (linux/unix) för att effektivt hantera dem

Hur många filtyper finns det i Linux/Unix?

Som standard har Unix endast 3 filtyper. De är:

Regulära filer

  1. Katalogfiler

  2. Speciella filer (Denna kategori har 5 undertyper)

Så i praktiken har vi totalt 7 typer (1+1+5) av filer i Linux/Unix. Och i Solaris har vi 8 typer. Och du kan se filtypsangivelsen längst till vänster i kommandot ”ls -l”.

Här är dessa filtyper.

  1. Regular file(-) 
  2. Katalogfiler(d) 

Särskilda filer

  1. Blockfil(b)
  2. Karaktärsenhetsfil(c)
  3. Namnsatt pipefil eller bara en pipe. file(p)
  4. Symbolisk länk file(l)
  5. Socket file(s)

För din information finns det ytterligare en filtyp som heter door file(D) och som finns i Sun Solaris som tidigare nämnts. En door-fil är en särskild fil för kommunikation mellan processer mellan en klient och en server (totalt 8 typer i Unix-maskiner). Vi kommer att lära oss om olika typer av filer enligt nedanstående sekvens för varje filtyp:

Definition och information om filtypen
Hur man skapar en viss filtyp
Hur man listar/ser en viss filtyp

Reguljära filtyper förklarade i Linux

Dessa är de filer som anges med ”-” i ls -l kommandots utdata i början av raden. Och dessa filer är.

1. Läsbar fil eller
2. En binär fil eller
3. Bildfiler eller
4. Komprimerade filer etc.

Hur skapar man vanliga filer i Linux/Unix?
Ans: Använd touch/vi-kommandot och omdirigeringsoperatorer etc.

Hur kan vi lista reguljära filer?

ls -l | grep ^- 

Exempel på listning av reguljära filer :

-rw-r--r-- 1 krishna krishna krishna 20986522 2010-01-31 13:48 test.wmv
-rw-r--r-- 1 krishna krishna krishna 173448 2010-01-30 21:20 Transformers-Teaser-Wallpaper-310.jpg
-r-xr-xr-xx 1 root root 135168 2009-12-12 19:14 VIDEO_TS.VOB
-rw-r--r--r-- 1 krishna krishna 2113536 2009-12-01 13:32 Aditya 365 - Janavule.mp3
-rwxrwxrwx 1 root root 168 2010-02-14 14:12 xyz.sh

Directory file type explained in Linux/Unix

Den här typen av filer innehåller vanliga filer/mappar/specialfiler som lagras på en fysisk enhet. Och denna typ av filer kommer att vara i blå färg med länk större än eller lika med 2.

Hur kan vi lista dem i min nuvarande arbetskatalog? 
ls -l | grep ^d

Exempel på listning av kataloger.

drwxr-xr-x 2 surendra surendra 4096 2010-01-19 18:37 bin
drwxr-xr-x 5 surendra surendra 4096 2010-02-15 18:46 Desktop
drwxr-xr-x 2 surendra surendra 4096 2010-01-18 14:36 Documents
drwxr-xr-x 2 surendra surendra 4096 2010-02-13 17:45 Downloads

Hur skapar man dem?
Ans : Använd kommandot mkdir

Blockfiltyp i Linux

Dessa filer är hårdvarufiler de flesta av dem finns i /dev.

Hur skapar man dem?
Ans : Använd kommandot fdisk eller skapa en virtuell partition.

Hur kan vi lista dem i min nuvarande arbetskatalog?

ls -l | grep ^b

Exempel på en lista över blockfiler (för att du ska kunna se dessa filer finns de i /dev).

brw-rw---- 1 root disk 8, 1 2010-02-15 09:35 sda1
brw-rw---- 1 root disk 8, 2 2010-02-15 09:35 sda2
brw-rw---- 1 root disk 8, 5 2010-02-15 09:35 sda5

Karaktärsinformationsfiler i Linux

Givar en seriell inmatnings- eller utmatningsström.Dina terminaler är klassiska exempel på denna typ av filer.

Hur kan vi lista teckenfiler i min nuvarande arbetskatalog?

ls -l | grep ^c

Exempel på listning av teckenfiler(ligger i /dev)

crw-rw-rw- 1 root tty 5, 0 2010-02-15 16:52 tty
crw--w---- 1 root root 4, 0 2010-02-15 09:35 tty0
crw------- 1 root root 4, 1 2010-02-15 09:35 tty1

Pipe-filer i Linux/Unix

Det andra namnet på pipe är en ”namngiven” pipe, som ibland kallas FIFO. FIFO står för ”First In, First Out” (första in, första ut) och syftar på egenskapen att ordningen på de bytes som går in är densamma som när de kommer ut. ”Namnet” på en namngiven pipe är egentligen ett filnamn i filsystemet.

Hur skapar man dem?
Ans: Använd kommandot mkfifo.

Hur kan vi lista teckenfiler i min nuvarande arbetskatalog?

ls -l | grep ^p

Exempel på listning av pipe-filer

prw-r----- 1 root root 0 2010-02-15 09:35 /dev/.initramfs/usplash_outfifo
prw-r----- 1 root root 0 2010-02-15 09:35 /dev/.initramfs/usplash_fifo
prw------- 1 syslog syslog 0 2010-02-15 15:38 /var/run/rsyslog/kmsg

symboliska länkfiler i Linux

Dessa är länkade filer till andra filer. De är antingen Directory/Regular File. Inodnumret för den här filen och dess överordnade filer är detsamma. Det finns två typer av länkfiler i Linux/Unix, nämligen mjuka och hårda länkar.

Hur skapar man dem?
Ans : använd kommandot ln

Hur kan vi lista länkade filer i min nuvarande arbetskatalog?

ls -l | grep ^l

Exempel på listning av länkade filer
lrwxrwxrwx 1 root root 24 2010-02-15 09:35 sndstat -> /proc/asound/oss/sndstat
lrwxrwxrwx 1 root root 15 2010-02-15 09:35 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 2010-02-15 09:35 stdin -> /proc/self/fd/0
lrwxrwxrwxrwx 1 root root 15 2010-02-15 09:35 stdout -> /proc/self/fd/1

Socketfiler i Linux

En socketfil används för att överföra information mellan program i kommunikationssyfte

Hur skapar man dem?
Ans : Du kan skapa en socket-fil med hjälp av systemanropet socket() som finns tillgängligt under

Exempel i C-programmering

int sockfd = socket(AF_INET, SOCK_STREAM, 0);

Du kan hänvisa till denna socket-fil med sockfd. Detta är samma sak som filbeskrivningen, och du kan använda read(), write() systemanropen för att läsa och skriva från socket.

Hur kan vi lista socketfiler i min nuvarande arbetskatalog?

ls -l | grep ^s

Exempel på listning av socketfiler.

srw-rw-rw- 1 root root 0 2010-02-15 09:35 /dev/log

srwxrwxrwxrwx 1 root root 0 2010-02-15 10:07 /var/run/cups/cups.sock
srwxrwxrwxrwx 1 root root 0 2010-02-15 09:35 /var/run/samba/winbindd_privileged/pipe
srwxrwxrwxrwx 1 mysql mysql 0 2010-02-15 09:35 /var/run/mysqld/mysqld.sock

Ett tips till er. Hur hittar man önskad typ av fil?

Ans : Använd kommandot find med alternativet -type. Om du till exempel vill hitta en socket-fil är det bara att använda nedanstående kommando. find / -type s Om du vill hitta en länkad fil, hur gör du då? Find / -type l

Thats it….

admin

Lämna ett svar

Din e-postadress kommer inte publiceras.

lg