Pagpatin-aw sa Ang tanan usa ka File ug Mga Uri sa mga File sa Linux


Kung bag-o ka sa Linux, o gigamit kini sulod sa pipila ka bulan, kinahanglan nga nakadungog ka o nakabasa sa mga pahayag sama sa \Sa Linux, ang tanan usa ka File.

Tinuod kana bisan kung kini usa lamang ka konsepto sa generalization, sa Unix ug sa mga gigikanan niini sama sa Linux, ang tanan giisip nga usa ka file. Kung ang usa ka butang dili usa ka file, nan kini kinahanglan nga nagdagan ingon usa ka proseso sa sistema.

Aron masabtan kini, kuhaa pananglitan ang gidaghanon sa espasyo sa imong root (/) directory kanunay nga gigamit sa lain-laing matang sa Linux files. Kung maghimo ka usa ka file o magbalhin usa ka file sa imong sistema, kini nag-okupar sa pipila nga wanang sa pisikal nga disk ug kini giisip nga naa sa usa ka piho nga pormat (type sa file).

Ug usab ang sistema sa Linux wala magkalahi tali sa mga file ug mga direktoryo, apan ang mga direktoryo naghimo sa usa ka importante nga trabaho, nga mao ang pagtipig sa ubang mga file sa mga grupo sa usa ka hierarchy alang sa sayon nga lokasyon. Ang tanan nimong mga sangkap sa hardware girepresentahan ingon mga file ug ang sistema nakigsulti kanila gamit kini nga mga file.

Ang ideya usa ka importante nga paghulagway sa usa ka dako nga kabtangan sa Linux, diin ang input/output nga mga kapanguhaan sama sa imong mga dokumento, mga direktoryo (mga folder sa Mac OS X ug Windows), keyboard, monitor, hard-drive, removable media, printer, modem, virtual mga terminal ug usab inter-proseso ug komunikasyon sa network mao ang mga sapa sa bytes nga gihubit sa luna sa file system.

Usa ka talagsaon nga bentaha sa tanan nga usa ka file mao nga ang parehas nga hugpong sa mga himan sa Linux, mga gamit ug mga API mahimong magamit sa mga kapanguhaan sa input/output sa ibabaw.

Bisan kung ang tanan sa Linux usa ka file, adunay piho nga mga espesyal nga file nga labi pa sa usa ka file pananglitan mga socket ug ginganlan nga mga tubo.

Unsa ang lainlaing mga lahi sa mga file sa Linux?

Sa Linux adunay batakang tulo ka matang sa mga file:

  1. Ordinaryo/Regular nga mga payl
  2. Espesyal nga mga payl
  3. Mga Direktoryo

Kini ang mga datos sa mga file nga adunay sulud nga teksto, datos o mga panudlo sa programa ug kini ang labing kasagaran nga tipo sa mga file nga mahimo nimong mapaabut nga makit-an sa usa ka sistema sa Linux ug kini naglakip sa:

  1. Mabasa nga mga file
  2. Binary nga mga payl
  3. Mga file sa hulagway
  4. Mga compressed file ug uban pa.

Ang mga espesyal nga file naglakip sa mosunod:

Pag-block sa mga file : Kini ang mga file sa device nga naghatag og buffered nga pag-access sa mga sangkap sa hardware sa system. Naghatag sila usa ka pamaagi sa komunikasyon sa mga driver sa aparato pinaagi sa file system.

Usa ka importante nga aspeto mahitungod sa block files mao nga sila makahimo sa pagbalhin sa usa ka dako nga block sa data ug impormasyon sa usa ka gihatag nga panahon.

Paglista sa mga block file socket sa usa ka direktoryo:

# ls -l /dev | grep "^b"
brw-rw----  1 root disk        7,   0 May 18 10:26 loop0
brw-rw----  1 root disk        7,   1 May 18 10:26 loop1
brw-rw----  1 root disk        7,   2 May 18 10:26 loop2
brw-rw----  1 root disk        7,   3 May 18 10:26 loop3
brw-rw----  1 root disk        7,   4 May 18 10:26 loop4
brw-rw----  1 root disk        7,   5 May 18 10:26 loop5
brw-rw----  1 root disk        7,   6 May 18 10:26 loop6
brw-rw----  1 root disk        7,   7 May 18 10:26 loop7
brw-rw----  1 root disk        1,   0 May 18 10:26 ram0
brw-rw----  1 root disk        1,   1 May 18 10:26 ram1
brw-rw----  1 root disk        1,  10 May 18 10:26 ram10
brw-rw----  1 root disk        1,  11 May 18 10:26 ram11
brw-rw----  1 root disk        1,  12 May 18 10:26 ram12
brw-rw----  1 root disk        1,  13 May 18 10:26 ram13
brw-rw----  1 root disk        1,  14 May 18 10:26 ram14
brw-rw----  1 root disk        1,  15 May 18 10:26 ram15
brw-rw----  1 root disk        1,   2 May 18 10:26 ram2
brw-rw----  1 root disk        1,   3 May 18 10:26 ram3
brw-rw----  1 root disk        1,   4 May 18 10:26 ram4
brw-rw----  1 root disk        1,   5 May 18 10:26 ram5
...

Mga file sa karakter : Kini usab ang mga file sa aparato nga naghatag wala’y gibuffer nga serial access sa mga sangkap sa hardware sa system. Nagtrabaho sila pinaagi sa paghatag usa ka paagi sa komunikasyon sa mga aparato pinaagi sa pagbalhin sa data usa ka karakter matag higayon.

Paglista sa mga karakter nga file socket sa usa ka direktoryo:

# ls -l /dev | grep "^c"
crw-------  1 root root       10, 235 May 18 15:54 autofs
crw-------  1 root root       10, 234 May 18 15:54 btrfs-control
crw-------  1 root root        5,   1 May 18 10:26 console
crw-------  1 root root       10,  60 May 18 10:26 cpu_dma_latency
crw-------  1 root root       10, 203 May 18 15:54 cuse
crw-------  1 root root       10,  61 May 18 10:26 ecryptfs
crw-rw----  1 root video      29,   0 May 18 10:26 fb0
crw-rw-rw-  1 root root        1,   7 May 18 10:26 full
crw-rw-rw-  1 root root       10, 229 May 18 10:26 fuse
crw-------  1 root root      251,   0 May 18 10:27 hidraw0
crw-------  1 root root       10, 228 May 18 10:26 hpet
crw-r--r--  1 root root        1,  11 May 18 10:26 kmsg
crw-rw----+ 1 root root       10, 232 May 18 10:26 kvm
crw-------  1 root root       10, 237 May 18 10:26 loop-control
crw-------  1 root root       10, 227 May 18 10:26 mcelog
crw-------  1 root root      249,   0 May 18 10:27 media0
crw-------  1 root root      250,   0 May 18 10:26 mei0
crw-r-----  1 root kmem        1,   1 May 18 10:26 mem
crw-------  1 root root       10,  57 May 18 10:26 memory_bandwidth
crw-------  1 root root       10,  59 May 18 10:26 network_latency
crw-------  1 root root       10,  58 May 18 10:26 network_throughput
crw-rw-rw-  1 root root        1,   3 May 18 10:26 null
crw-r-----  1 root kmem        1,   4 May 18 10:26 port
crw-------  1 root root      108,   0 May 18 10:26 ppp
crw-------  1 root root       10,   1 May 18 10:26 psaux
crw-rw-rw-  1 root tty         5,   2 May 18 17:40 ptmx
crw-rw-rw-  1 root root        1,   8 May 18 10:26 random

Symbolic link files : Ang simbolikong link kay usa ka reperensiya sa laing file sa sistema. Busa, ang simbolikong link nga mga file mao ang mga file nga nagpunting sa ubang mga file, ug kini mahimo nga mga direktoryo o regular nga mga file.

Paglista sa simbolikong link socket sa usa ka direktoryo:

# ls -l /dev/ | grep "^l"
lrwxrwxrwx  1 root root             3 May 18 10:26 cdrom -> sr0
lrwxrwxrwx  1 root root            11 May 18 15:54 core -> /proc/kcore
lrwxrwxrwx  1 root root            13 May 18 15:54 fd -> /proc/self/fd
lrwxrwxrwx  1 root root             4 May 18 10:26 rtc -> rtc0
lrwxrwxrwx  1 root root             8 May 18 10:26 shm -> /run/shm
lrwxrwxrwx  1 root root            15 May 18 15:54 stderr -> /proc/self/fd/2
lrwxrwxrwx  1 root root            15 May 18 15:54 stdin -> /proc/self/fd/0
lrwxrwxrwx  1 root root            15 May 18 15:54 stdout -> /proc/self/fd/1

Makahimo ka og simbolikong mga sumpay gamit ang ln utility sa Linux sama sa pananglitan sa ubos.

# touch file1.txt
# ln -s file1.txt /home/tecmint/file1.txt  [create symbolic link]
# ls -l /home/tecmint/ | grep "^l"         [List symbolic links]

Sa pananglitan sa ibabaw, naghimo ko og file nga gitawag og file1.txt sa /tmp directory, dayon gibuhat ang simbolikong link, /home/tecmint/file1.txt aron itudlo ang /tmp/file1.txt.

Pipes o Ginganlan nga mga tubo : Kini ang mga file nga nagtugot sa inter-process nga komunikasyon pinaagi sa pagkonektar sa output sa usa ka proseso ngadto sa input sa lain.

Ang usa ka ginganlan nga tubo sa pagkatinuod usa ka file nga gigamit sa duha ka proseso aron makigkomunikar sa matag usa ug kini naglihok isip usa ka Linux pipe.

Paglista sa mga socket sa tubo sa usa ka direktoryo:

# ls -l | grep "^p"
prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe1
prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe2
prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe3
prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe4
prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe5

Mahimo nimong gamiton ang mkfifo utility sa paghimo og usa ka ginganlan nga tubo sa Linux sama sa mosunod.

# mkfifo pipe1
# echo "This is named pipe1" > pipe1

Sa pananglitan sa ibabaw, naghimo ko og usa ka ginganlan nga tubo nga gitawag og pipe1, dayon gipasa nako ang pipila ka datos niini gamit ang echo command, human niana ang kabhang nahimong un-interactive samtang giproseso ang input.

Dayon akong giablihan ang laing kabhang ug gipadagan ang laing sugo aron i-print ang gipasa sa tubo.

# while read line ;do echo "This was passed-'$line' "; done<pipe1

Socket files : Kini ang mga file nga naghatag og paagi sa inter-process nga komunikasyon, apan mahimo silang magbalhin sa data ug impormasyon tali sa proseso nga nagdagan sa lain-laing mga palibot.

Kini nagpasabot nga ang mga socket naghatag og data ug impormasyon sa pagbalhin tali sa proseso nga nagdagan sa lain-laing mga makina sa usa ka network.

Usa ka pananglitan aron ipakita ang trabaho sa mga socket mahimong usa ka web browser nga naghimo og koneksyon sa usa ka web server.

# ls -l /dev/ | grep "^s"
srw-rw-rw-  1 root root             0 May 18 10:26 log

Kini usa ka pananglitan sa usa ka socket nga gihimo sa C pinaagi sa paggamit sa socket() system call.

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

Sa ibabaw:

  1. AF_INET mao ang pamilya sa adres(IPv4)
  2. SOCK_STREAM mao ang tipo (koneksyon kay TCP protocol oriented)
  3. 0 mao ang protocol(IP Protocol)

Para i-refer ang socket file, gamita ang socket_desc, nga parehas sa file descriptor, ug gamita ang read() ug write() sistema sa mga tawag sa pagbasa ug pagsulat gikan sa socket sa tinagsa.

Espesyal kini nga mga payl nga nagtipig sa ordinaryo ug uban pang espesyal nga mga payl ug kini giorganisar sa Linux file system sa usa ka hierarchy sugod sa root (/) directory.

Paglista sa mga socket sa usa ka direktoryo:

# ls -l / | grep "^d" 
drwxr-xr-x   2 root root  4096 May  5 15:49 bin
drwxr-xr-x   4 root root  4096 May  5 15:58 boot
drwxr-xr-x   2 root root  4096 Apr 11  2015 cdrom
drwxr-xr-x  17 root root  4400 May 18 10:27 dev
drwxr-xr-x 168 root root 12288 May 18 10:28 etc
drwxr-xr-x   3 root root  4096 Apr 11  2015 home
drwxr-xr-x  25 root root  4096 May  5 15:44 lib
drwxr-xr-x   2 root root  4096 May  5 15:44 lib64
drwx------   2 root root 16384 Apr 11  2015 lost+found
drwxr-xr-x   3 root root  4096 Apr 10  2015 media
drwxr-xr-x   3 root root  4096 Feb 23 17:54 mnt
drwxr-xr-x  16 root root  4096 Apr 30 16:01 opt
dr-xr-xr-x 223 root root     0 May 18 15:54 proc
drwx------  19 root root  4096 Apr  9 11:12 root
drwxr-xr-x  27 root root   920 May 18 10:54 run
drwxr-xr-x   2 root root 12288 May  5 15:57 sbin
drwxr-xr-x   2 root root  4096 Dec  1  2014 srv
dr-xr-xr-x  13 root root     0 May 18 15:54 sys
drwxrwxrwt  13 root root  4096 May 18 17:55 tmp
drwxr-xr-x  11 root root  4096 Mar 31 16:00 usr
drwxr-xr-x  12 root root  4096 Nov 12  2015 var

Makahimo ka og direktoryo gamit ang mkdir command.

# mkdir -m 1666 linux-console.net
# mkdir -m 1666 news.linux-console.net
# mkdir -m 1775 linuxsay.com

Summary

Kinahanglan nga adunay ka klaro nga pagsabut kung ngano nga ang tanan sa Linux usa ka file ug ang lainlaing mga lahi sa mga file nga mahimong mogawas sa imong sistema sa Linux.

Mahimo nimong idugang ang dugang niini pinaagi sa pagbasa og dugang bahin sa indibidwal nga mga tipo sa file ug kini gimugna. Nanghinaut ko nga makatabang kini nga giya ug alang sa bisan unsang mga pangutana ug dugang nga kasayuran nga gusto nimong ipaambit, palihug pagbilin usa ka komento ug maghisgot pa kami.