„Ile jest typów plików w Linuxie/Unixie i czym one są?” Jest to częste pytanie każdej osoby, która zaczyna uczyć się Linuksa. O.K, dlaczego tak bardzo ważna jest znajomość typów plików?
Odpowiedź: To dlatego, że Linux traktuje każdą rzecz jako plik. Kiedy kiedykolwiek zaczniesz pracować na Linuksie/Uniksie musisz radzić sobie z różnymi typami plików (linux/unix) aby efektywnie nimi zarządzać
Ile typów plików jest w Linuksie/Uniksie?
Domyślnie Unix ma tylko 3 typy plików. Są to…
Pliki zwykłe
-
Pliki katalogowe
-
Pliki specjalne(Ta kategoria ma 5 podtypów.)
W praktyce mamy więc 7 typów(1+1+5) plików w Linux/Unix. A w Solarisie mamy 8 typów. I możesz zobaczyć wskazanie typu pliku w lewej części polecenia „ls -l”.
Tutaj są te typy plików.
-
Plik zwykły(-.)
-
Pliki katalogowe(d)
Pliki specjalne
- Plik blokowy(b)
- Plik urządzenia znakowego(c)
- Plik rurowy o nazwie lub po prostu rurowy file(p)
- Symbolic link file(l)
- Socket file(s)
Dla twojej informacji jest jeszcze jeden typ pliku zwany door file(D) który jest obecny w Sun Solaris jak wspomniano wcześniej. Door jest specjalnym plikiem do komunikacji międzyprocesowej pomiędzy klientem a serwerem (w sumie 8 typów w maszynach Unix). Będziemy uczyć się o różnych typach plików, jak poniżej sekwencji dla każdego typu pliku.
Definicja i informacje o typie pliku
Jak utworzyć określony typ pliku
Jak lista/widzieć określony typ pliku
Regularny typ pliku wyjaśnione w Linuksie
To są pliki, które są wskazane z „-” w ls -l wyjście polecenia na początku linii. I te pliki są.
1. Plik czytelny lub
2. Plik binarny lub
3. Pliki obrazów lub
4. Pliki skompresowane itp.
Jak tworzyć zwykłe pliki w systemie Linux/Unix?
Ans: Użyj polecenia touch/vi i operatorów przekierowania itp.
Jak możemy wylistować pliki regularne?
ls -l | grep ^-
Przykładowa lista plików regularnych :
-rw-r--r-- 1 krishna krishna 20986522 2010-01-31 13:48 test.wmv
-rw-r--r-- 1 krishna krishna 173448 2010-01-30 21:20 Transformers-Teaser-Wallpaper-310.jpg
-r-xr-xr-x 1 root root 135168 2009-12-12 19:14 VIDEO_TS.VOB
-rw-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
Typ pliku katalogowego wyjaśniony w Linux/Unix
Ten typ plików zawiera zwykłe pliki/foldery/specjalne pliki przechowywane na fizycznym urządzeniu. I ten typ plików będzie w niebieskim kolorze z linkiem większym lub równym 2.
Jak możemy je wylistować w moim obecnym katalogu roboczym?
ls -l | grep ^d
Przykładowe listowanie katalogów.
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
Jak je utworzyć?
Ans : Użyj polecenia mkdir
Typ pliku blokowego w Linuksie
Te pliki są plikami sprzętowymi większość z nich jest obecna w /dev.
Jak je utworzyć?
Ans : Użyj polecenia fdisk lub utwórz wirtualną partycję.
Jak możemy je wylistować w moim obecnym katalogu roboczym?
ls -l | grep ^b
Przykładowa lista plików Block (abyś mógł zobaczyć te pliki, znajdują się one w /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
Pliki urządzeń znakowych w Linuksie
Zapewniają szeregowy strumień wejścia lub wyjścia.Twoje terminale są klasycznym przykładem dla tego typu plików.
Jak możemy wylistować pliki znakowe w moim obecnym katalogu roboczym?
ls -l | grep ^c
Przykładowy listing plików znakowych (znajdujących się w /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
Pliki rurowe w systemie Linux/Unix
Inną nazwą rury jest „nazwana” rura, która jest czasami nazywana FIFO. FIFO to skrót od „First In, First Out” i odnosi się do właściwości, że kolejność bajtów wchodzących jest taka sama jak wychodzących. Nazwa” nazwanego potoku jest w rzeczywistości nazwą pliku w systemie plików.
Jak je tworzyć?
Ans: Użyj polecenia mkfifo.
Jak możemy wyświetlić listę plików znakowych w moim obecnym katalogu roboczym?
ls -l | grep ^p
Przykładowa lista plików rur
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
symboliczne pliki odnośników w Linuksie
Są to pliki powiązane z innymi plikami. Są one albo katalogiem/plikiem zwykłym. Numer inode dla tego pliku i jego plików nadrzędnych jest taki sam. Istnieją dwa rodzaje plików linków dostępnych w systemie Linux/Unix tj. miękki i twardy link.
Jak je tworzyć?
Ans : użyj komendy ln
Jak możemy wyświetlić listę połączonych plików w moim obecnym katalogu roboczym?
ls -l | grep ^l
Przykładowa lista połączonych plików
lrwxrwxrwx 1 root root 24 2010-02-15 09:35 sndstat -> /proc/asound/oss/sndstat
lrwxrwxrwx 1 root 15 2010-02-15 09:35 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root 15 2010-02-15 09:35 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 2010-02-15 09:35 stdout -> /proc/self/fd/1
Pliki gniazd w Linuksie
Plik gniazda jest używany do przekazywania informacji między aplikacjami w celach komunikacyjnych
Jak je utworzyć?
Ans : Możesz utworzyć plik gniazda używając wywołania systemowego socket() dostępnego pod
Przykład w programowaniu w języku C
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
Możesz odwołać się do tego pliku gniazda używając sockfd. To jest to samo co deskryptor pliku, i możesz użyć wywołań systemowych read(), write() do odczytu i zapisu z gniazda.
Jak możemy wylistować pliki gniazda w moim obecnym katalogu roboczym?
ls -l | grep ^s
Przykładowa lista plików gniazda.
srw-rw-rw- 1 root root 0 2010-02-15 09:35 /dev/log
srwxrwxrwx 1 root root 0 2010-02-15 10:07 /var/run/cups/cups.sock
srwxrwxrwx 1 root root 0 2010-02-15 09:35 /var/run/samba/winbindd_privileged/pipe
srwxrwxrwx 1 mysql mysql 0 2010-02-15 09:35 /var/run/mysqld/mysqld.sock
Porada dla was. Jak znaleźć pożądany typ pliku ?
Ans : Użyj polecenia find z opcją -type. Na przykład, jeśli chcesz znaleźć plik gniazda, wystarczy użyć poniższej komendy. find / -type s Jeśli chcesz znaleźć plik połączony to jak? Find / -type l
Thats it….
.