1. 程式人生 > >08-Linux基礎入門(六)-文件和目錄的屬性及權限之文件類型、文件擴展名及文件權限基礎

08-Linux基礎入門(六)-文件和目錄的屬性及權限之文件類型、文件擴展名及文件權限基礎

ins tmp first 串口 .py 都是 公眾平臺 cond .com

一、Linux中的文件類型
在Linux系統中,可以說一切(包括目錄、普通文件、設備文件等)皆為文件。文件類型包含有普通文件、目錄、字符設備文件、設備文件、符號鏈接文件、管道文件等等,當執行ls -l 或ls - al命令後可顯示當前目錄下的所有文件及文件夾:

    [root@centos ~]# ls -l
    總用量 40
    -rw-------. 1 root root  1140 2月   5 04:28 anaconda-ks.cfg
    -rw-r--r--. 1 root root 21736 2月   5 04:28 install.log
    -rw-r--r--. 1 root root  5890 2月   5 04:25 install.log.syslog

其中,第一列的第一個字符就是用來區分文件類型的,常見的文件類型如下表所示:

d(directory)    表示這是一個目錄,在ext2fs中,目錄是一個特殊文件。
-(regular file) 表示這是一個普通的文件。
l(link) 表示這是一個符號鏈接文件,實際上它指向另一個文件。
b(bock) 表示塊設備和其他的外圍設備,是特殊類型的文件。
c(character)    表示字符設備文件。
s(socket)   表示socket文件。
p(name pipe)    表示管道文件。

二、文件類型分別介紹
1、普通文件(regular file)
在Linux中,以-開頭的文件就表示普通文件。這些文件一般是用相關的應用程序或系統命令創建,比如touch、cp、tar、echo、cat等。普通文件的刪除方式可以使用rm命令。

普通文件大略還可以分為:
①純文本文件(ascll):文件內容可以直接讀到數據,例如:字母、數字、特殊符號等。可以用cat命令讀文件,比如配置文件幾乎都是這種類型的。
②二進制文件(binary):Linux中的命令文件就屬於這個格式。例如cat命令就是一個二進制文件。
③數據格式文件(data):有些程序在運行的過程中會讀取某些特定格式的文件,那些特定格式的文件可以被稱為數據文件。例如:Linux在用戶登錄時,都會將登錄的數據記錄在/var/log/wtmp(last命令的數據庫文件)那個文件內,該文件時一個數據文件。通過last命令讀出來,cat命令會讀出亂碼,因為他書序一種特殊格式文件。lastlog(/var/log/lastlog)
補充:通過file命令可以查看文件類型
[root@centos ~]# file /bin/cat
/bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
2、目錄文件(directory)
在Linux中,以d字符開頭的文件就表示目錄。創建目錄的命令可以用mkdir命令或cp命令(帶-r或-a參數),cp可以把一個目錄復制為另一個目錄。刪除目錄用rm -r或rmdir(刪除空目錄才可以)命令。
3、字符設備或塊設備文件
若第一個字符為c,則代表字符設備文件,例如貓等串口設備;若第一個字符是b,則表示塊設備,例如硬盤、光驅等都屬於塊設備。我們可以用find /dev -type b |xargs ls -l查看塊設備,用find /dev -type c |xargs ls -l查看字符設備。
4、套接字(socket)文件
在Linux中,以.socket為後綴的文件表示套接字文件,一般用於網絡通信。
5、符號鏈接文件
符號鏈接文件也被稱之為軟鏈接文件,可以理解為Windows中的快捷方式。
6、管道文件(FIFO.pipe)
在Linux中,若第一個字符為p則代表管道文件。FIFO(fifo-first-in first-out)是一個特殊的文件類型,主要是解決多個程序同時訪問一個文件所造成的錯誤。


三、Linux下常用的擴展名的作用
一般來說,Linux是不區分擴展名的。但是擴展名也代表一定的意義,例如:
①.tar(.tar.gz、.tgz、.zip、.tar.bz)表示壓縮文件,創建命令一般為tar、gzip、unzip等。
②.sh表示shell腳本文件,通過shell語言開發的程序。
③.pl表示perl語言文件,通過perl語言開發的程序。
④.py表示python語言文件,通過python語言開發的程序。
⑤.html(.htm)、.php、.jsp、.do表示網頁語言的文件。
⑥.conf表示系統的配置文件。
⑦.rpm表示rpm安裝包文件。


四、文件權限基礎
技術分享圖片
在Linux文件權限中,總共有十位,第0位表示文件類型,後9位表示文件權限。
1、關於每部分權限的解釋:
第一部分(第1-3位):屬主權限位(user權限位),供主人(自己)使用。
第二部分(第4-6位):屬組權限位(group權限位),供小組(你親近的人)使用。
第三部分(第7-9位): 其它用戶權限位,供其他人使用。


2、關於權限掩碼的解釋:

r(read) 讀   4
w(write)    寫   2
x (execute) 執行  1
-   沒有權限    0

3、關於權限掩碼的計算:
將三部分權限相加,若完全權限為4+2+1=7,若只需要讀寫權限為4+2+0=6,若只需要讀和執行權限為4+0+1=5。
上圖的權限為755,分解計算如下算式所示:
7(=4+2+1)5(=4+0+1)5(=4+0+1)


歡迎關註
新浪微博:https://weibo.com/yougazhang0506
微信公眾平臺:張雨嘉
技術分享圖片
我的網站:http://www.zhangyujia.cn
51CTO博客:http://blog.51cto.com/11099293
CSDN博客:http://blog.csdn.net/u013260195
GitHub:https://github.com/zhangyujia0506/

08-Linux基礎入門(六)-文件和目錄的屬性及權限之文件類型、文件擴展名及文件權限基礎