GNU/Linux >> Linux Esercitazione >  >> Linux

Nozioni di base sui file Unix:Inode, Soft vs Hard link, File di dispositivo, Named pipe

Inode

Ogni file in un sistema operativo Linux/Unix ha un inode ad esso associato, ad eccezione di Solaris ZFS, che non ha inode. Gli inode funzionano fondamentalmente in modo molto simile a un'appendice di un libro. Ogni Inode avrà sotto le informazioni sul file.

1. proprietario
2. autorizzazioni
3. taglia
4. ora dell'ultimo accesso
5. tempo di creazione
6. ID gruppo
7. Puntatori a blocchi di dati associati al contenuto del file
Nota:Inode tuttavia non fornisce il nome del file.

Tipi di file

Esistono fondamentalmente 5 tipi di file in qualsiasi sistema operativo Unix.

1. Regolare
2. Elenco
3. Link simbolici (hard link e soft link)
4. File dispositivo (carattere speciale e blocco dispositivo speciale)
5. Tubi con nome

Il carattere nella prima colonna del comando ls -l identifica il tipo di file.

# cd /
# ls -l bin
lrwxrwxrwx   1   root   root  9  Sep  19  15:41   bin -> ./usr/bin
-   Regular files
d   Directories
l   Symbolic links
b   Block-special device files
c   Character-special device files
p   Named pipes

File e directory

I file normali possono memorizzare diversi tipi di dati e possono essere facilmente creati utilizzando il comando touch o l'editor vi. Le directory contengono l'associazione tra file e/o directory e numeri di inode.

Collegamenti soft

Come mostrato nel diagramma, i collegamenti software o simbolici puntano semplicemente a un altro file. Contiene solo il percorso del file a cui punta

1. Metodo di creazione

# touch file1
# ln -s file1 link1
# ls -l
-rw-r--r-- 1   root   root  0  Sep  19  14:41  link1
lrwxrwxrwx 1   root   root  5  Sep  19  15:41  link1 -> file1

2. La dimensione del collegamento software creato nell'esempio sopra è il numero di caratteri nel nome del percorso (file1), che è 5 (può essere assoluto o relativo).
3. Se elimini il file originale (file1), il collegamento software diventa inutile.
4. I soft link possono risiedere su diversi file system.

Collegamenti reali

Ogni file utilizza almeno un collegamento fisico. Quindi, quando crei un nuovo file, viene creata una nuova voce di directory chiamata conteggio dei collegamenti. Quindi, quando crei un nuovo collegamento reale a questo file, il conteggio del collegamento aumenta di 1.

1. metodo di creazione

# touch file1
# ls -l
-rw-r--r-- 1  root  root  0  Sep  23  13:19  file1
# ln file1 file2
# ls -l
-rw-r--r--  2  root  root  0  Sep  23  13:19  file1
-rw-r--r--  2  root  root  0  Sep  23  13:19  file2
# ls -li
1282  -rw-r--r--  2  root  0  root  0  Sep  23  13:19  file1
1282  -rw-r--r--  2  root  0  root  0  Sep  23  13:19  file2
# find . -inum 1282
./file1
./file2

2. Il conteggio dei link aumenta di uno, ogni volta che crei un nuovo hard link al file come mostrato sopra.
3. Anche se elimini uno qualsiasi dei file, non ha alcun effetto sull'altro file. Solo il conteggio dei link diminuisce
4. Gli hard link non possono attraversare il file system.

File dispositivo

Nel sistema operativo UNIX qualsiasi dispositivo fisico ha un file ad esso associato chiamato file dispositivo . È un'interfaccia che interagisce con i driver di dispositivo. A differenza di altri tipi di file, non contengono dati nei blocchi di dati, ma usano gli inode per memorizzare il no maggiore e minore per qualsiasi file del dispositivo.

# cd /dev/
# ls -l
crw-r-----  1  root  tty   4,  0  Sep  23  12:51  tty0
brw-rw----- 1  root  disk  8,  1  Sep  23  12:51  sda0

Dispositivo principale n. – È necessario un driver di dispositivo specifico per accedere a un dispositivo
dispositivo secondario n. – unità specifica del tipo controllata dal driver di dispositivo.

Ad esempio, se disponi di 10 stampanti HP, il numero maggiore sarà il driver dei dispositivi della stampante HP e il numero minore sarà l'istanza della stampante (1,2 .. fino a 10).

I file del dispositivo sono di 2 tipi
1. Personaggio speciale
2. Blocca speciale

File dispositivo con caratteri speciali
1. Il carattere "c" nella prima colonna dell'output del comando ls -l identifica un file dispositivo speciale carattere
2. Si accede ai dati come flusso di dati (carattere per carattere , 1 byte alla volta)
3. Esempio:terminali tty, seriali, virtuali

# ls -l
crw-r-----  1  root  tty   4,  0  Sep  23  12:51  tty0

Blocca file dispositivo speciale
1. Il carattere "b" nella prima colonna dell'output del comando ls -l identifica un file dispositivo speciale carattere
2. Si accede ai dati in base alla dimensione del blocco definita per quel dispositivo
3. Esempio:disco rigido, CD/DVD

# ls -l
brw-rw-----  1  root  disk   8,  1  Sep  23  12:51  sda0

Pipe denominate

– Le pipe con nome sono file speciali utilizzati per le comunicazioni tra processori. A differenza delle pipe normali, puoi leggere e scrivere nelle pipe con nome. Per questo motivo sono anche chiamati FIFO (file in file out).
– mknod() o mkfifio() sono esempi comuni che fanno uso di named pipe per accedere alla pipe per nome.
– Come mostrato nell'esempio seguente, 2 processi (gzip e cat) possono accedere contemporaneamente alla Named pipe per scrivere e leggere i dati da essa.

# mkfifo test_pipe
# gzip -9 -c > test_pipe < out.gz
# cat file1 > test_pipe
# ls -l test_pipe
prw-rw-----  1  root  root  0  Sep  23  12:51  test_pipe


Linux
  1. Spiegazione di hard link e soft link in Linux

  2. 10 esempi di comandi Cat per gestire i file in Linux / UNIX

  3. UNIX/Linux:nozioni di base sugli elenchi di controllo di accesso (ACL).

  4. differenza tra file di dispositivo e driver di dispositivo

  5. Unix/Linux ripristina/ripristina i file eliminati

Come creare collegamenti hard e soft (collegamento simbolico) su sistemi Linux

Spiegazione di Soft Link e Hard Link in Linux con esempi

Il comando ln in Linux:crea collegamenti soft e hard

Comando Unix LS:15 esempi pratici

Trovare file leggibili dall'uomo su unix

Come puoi vedere l'effettivo hard link di ls?