linux每日命令(25):Linux文件類型與擴展名

Linux文件類型和Linux文件的文件名所表明的意義是兩個不一樣的概念。咱們經過通常應用程序而建立的好比file.txt、file.tar.gz ,這些文件雖然要用不一樣的程序來打開,但放在Linux文件類型中衡量的話,大可能是常規文件(也被稱爲普通文件)。php

一. 文件類型

Linux文件類型常見的有:普通文件、目錄文件、字符設備文件和塊設備文件、符號連接文件等,如今咱們進行一個簡要的說明。html

1.普通文件

咱們用 ls -l 來查看某個文件的屬性,能夠看到有相似-rwxrwxrwx,值得注意的是第一個符號是 - ,這樣的文件在Linux中就是普通文件。這些文件通常是用一些相關的應用程序建立,好比圖像工具、文檔工具、歸檔工具... .... 或 cp工具等。這類文件的刪除方式是用rm 命令。 另外,依照文件的內容,又大略能夠分爲:node

1.1 純文本檔(ASCII)

這是Linux系統中最多的一種文件類型,稱爲純文本檔是由於內容爲咱們人類能夠直接讀到的數據,例如數字、字母等等。 幾乎只要咱們能夠用來作爲設定的文件都屬於這一種文件類型。 舉例來講,你能夠用命令: cat ~/.bashrc 來看到該文件的內容。 (cat 是將一個文件內容讀出來的指令).mysql

1.2 二進制文件(binary)

Linux系統其實僅認識且能夠執行二進制文件(binary file)。Linux當中的可執行文件(scripts, 文字型批處理文件不算)就是這種格式的文件。 剛剛使用的命令cat就是一個binary file。linux

1.3 數據格式文件(data)

有些程序在運做的過程中會讀取某些特定格式的文件,那些特定格式的文件能夠被稱爲數據文件 (data file)。舉例來講,咱們的Linux在使用者登陸時,都會將登陸的數據記錄在 /var/log/wtmp那個文件內,該文件是一個data file,他可以透過last這個指令讀出來! 可是使用cat時,會讀出亂碼,由於他是屬於一種特殊格式的文件sql

last命令用來顯示用戶登陸信息shell

2.目錄文件

當咱們在某個目錄下執行,看到有相似 drwxr-xr-x ,這樣的文件就是目錄,目錄在Linux是一個比較特殊的文件。注意它的第一個字符是d。建立目錄的命令能夠用 mkdir 命令,或cp命令,cp能夠把一個目錄複製爲另外一個目錄。刪除用rm 或rmdir命令。瀏覽器

3.字符設備或塊設備文件

若是你進入/dev目錄,列一下文件,會看到相似以下的:bash

[root@localhost log]# ls -al /dev/tty
crw-rw-rw-. 1 root tty 5, 0 Nov 20 18:25 /dev/tty
[root@localhost log]# ls -al /dev/sda1 
brw-rw----. 1 root disk 8, 1 Nov 20 18:25 /dev/sda1

咱們看到/dev/tty的屬性是 crw-rw-rw- ,注意前面第一個字符是 c ,這表示字符設備文件。好比貓等串口設備。咱們看到 /dev/sda1 的屬性是 brw-rw---- ,注意前面的第一個字符是 b,這表示塊設備,好比硬盤,光驅等設備。服務器

這個種類的文件,是用mknode來建立,用rm來刪除。目前在最新的Linux發行版本中,咱們通常不用本身來建立設備文件。由於這些文件是和內核相關聯的。

與系統周邊及儲存等相關的一些文件, 一般都集中在/dev這個目錄之下!一般又分爲兩種:

區塊(block)設備檔 :

就是一些儲存數據, 以提供系統隨機存取的接口設備,舉例來講,硬盤與軟盤等就是啦! 你能夠隨機的在硬盤的不一樣區塊讀寫,這種裝置就是成組設備!你能夠自行查一下/dev/sda看看, 會發現第一個屬性爲 b

字符(character)設備文件:

亦便是一些串行端口的接口設備, 例如鍵盤、鼠標等等!這些設備的特點就是一次性讀取的,不可以截斷輸出。 舉例來講,你不可能讓鼠標跳到另外一個畫面,而是滑動到另外一個地方!第一個屬性爲 c

4.數據接口文件(sockets):

數據接口文件(或者:套接口文件),這種類型的文件一般被用在網絡上的數據承接了。咱們能夠啓動一個程序來監聽客戶端的要求, 而客戶端就能夠透過這個socket來進行數據的溝通了。第一個屬性爲 s , 最常在/var/run這個目錄中看到這種文件類型了。

例如:當咱們啓動MySQL服務器時,會產生一個mysql.sock的文件。

[root@localhost ~]# ls -l /var/lib/mysql/mysql.sock 

srwxrwxrwx 1 mysql mysql 0 Nov 20 18:25 /var/lib/mysql/mysql.sock

注意這個文件的屬性的第一個字符是 s。

5.符號連接文件:

當咱們查看文件屬性時,會看到有相似 lrwxrwxrwx,注意第一個字符是l,這類文件是連接文件。是經過ln -s 源文件名 新文件名 。下面是一個例子,表示log1.link是log1的軟連接文件。怎麼理解呢?這和Windows操做系統中的快捷方式有點類似。

符號連接文件的建立方法舉例:

[root@localhost test]# touch log1
[root@localhost test]# ls
dir1  log1
[root@localhost test]# ln -s log1 log1.link
[root@localhost test]# ll
total 0
drwxr-xr-x. 4 root root 159 Nov 20 19:24 dir1
-rw-r--r--. 1 root root   0 Nov 22 03:54 log1
lrwxrwxrwx. 1 root root   4 Nov 22 03:54 log1.link -> log1

6.數據輸送文件(FIFO,pipe):

FIFO也是一種特殊的文件類型,他主要的目的在解決多個程序同時存取一個文件所形成的錯誤問題。 FIFO是first-in-first-out的縮寫。第一個屬性爲 p 。

二. Linux文件擴展名

1.擴展名類型

基本上,Linux的文件是沒有所謂的擴展名的,一個Linux文件能不能被執行,與他的第一欄的十個屬性有關, 與檔名根本一點關係也沒有。這個觀念跟Windows的狀況不相同喔!在Windows底下, 能被執行的文件擴展名一般是 .com .exe .bat等等,而在Linux底下,只要你的權限當中具備x的話,例如[ -rwx-r-xr-x ] 即表明這個文件能夠被執行。

不過,能夠被執行跟能夠執行成功是不同的~舉例來講,在root家目錄下的install.log 是一個純文本檔,若是經由修改權限成爲 -rwxrwxrwx 後,這個文件可以真的執行成功嗎? 固然不行~由於他的內容根本就沒有能夠執行的數據。因此說,這個x表明這個文件具備可執行的能力, 可是能不能執行成功,固然就得要看該文件的內容.

雖然如此,不過咱們仍然但願能夠藉由擴展名來了解該文件是什麼東西,因此,一般咱們仍是會以適當的擴展名來表示該文件是什麼種類的。底下有數種經常使用的擴展名:

擴展名 含義
*.sh 腳本或批處理文件 (scripts),由於批處理文件爲使用shell寫成的,因此擴展名就編成 .sh
*Z, *.tar, *.tar.gz, *.zip, *.tgz 通過打包的壓縮文件。這是由於壓縮軟件分別爲 gunzip, tar 等等的,因爲不一樣的壓縮軟件,而取其相關的擴展名
*.html, *.php 網頁相關文件,分別表明 HTML 語法與 PHP 語法的網頁文件。 .html 的文件可以使用網頁瀏覽器來直接開啓,至於 .php 的文件, 則能夠透過 client 端的瀏覽器來 server 端瀏覽,以獲得運算後的網頁結果。

基本上,Linux系統上的文件名真的只是讓你瞭解該文件可能的用途而已,真正的執行與否仍然須要權限的規範才行。例如雖然有一個文件爲可執行文件,如常見的/bin/ls這個顯示文件屬性的指令,不過,若是這個文件的權限被修改爲沒法執行時,那麼ls就變成不能執行。

上述的這種問題最常發生在文件傳送的過程當中。例如你在網絡上下載一個可執行文件,可是恰恰在你的 Linux系統中就是沒法執行!呵呵!那麼就是可能文件的屬性被改變了。不要懷疑,從網絡上傳送到你的 Linux系統中,文件的屬性與權限確實是會被改變的。

2.Linux文件名長度限制

在Linux底下,使用預設的Ext2/Ext3文件系統時,針對文件名長度限制爲:

單一文件或目錄的最大允許文件名爲 255 個字符

包含完整路徑名稱及目錄 (/) 之完整檔名爲 4096 個字符

是至關長的檔名!咱們但願Linux的文件名能夠一看就知道該文件在幹嗎的, 因此檔名一般是很長很長。

3.Linux文件名的字符的限制

因爲Linux在文字接口下的一些指令操做關係,通常來講,你在設定Linux底下的文件名時, 最好能夠避免一些特殊字符比較好!例如底下這些:

* ? > < ; & ! [ ] | \ ' " ` ( ) { }

由於這些符號在文字接口下,是有特殊意義的。另外,文件名的開頭爲小數點「.」時, 表明這個文件爲隱藏文件!同時,因爲指令下達當中,經常會使用到 -option 之類的選項, 因此你最好也避免將文件檔名的開頭以 - 或 + 來命名。

相關文章
相關標籤/搜索