linux中的檔案

2021-08-30 17:34:08 字數 3749 閱讀 4569

unix認為一切都是檔案。

linux做了修改,認為一切都是位元組流。

最常用的的命令是

ls -lt
linux中顯示的檔案大小都是以位元組為單位,資料夾的大小是4kb。linux也支援隱藏檔案,以.開頭。如果要檢視隱藏檔案,**上-a選項。

##第乙個字母p表示這是乙個命名管道

prw-r--r-- 1 jboss5 jboss 0 9月 17 10:20 pipe_test

另乙個常用的命令是lsof

[root@h3715217148-1 umelog]# lsof -p 63409

command pid user fd type device size/off node name

a.out 63409 umelog cwd dir 253,4 39 2312707 /home/umelog/gdl_ctest

a.out 63409 umelog rtd dir 253,0 268 64 /

a.out 63409 umelog txt reg 253,4 8608 2312708 /home/umelog/gdl_ctest/a.out

a.out 63409 umelog mem reg 253,0 2118128 4213141 /usr/lib64/libc-2.17.so

a.out 63409 umelog mem reg 253,0 155456 4213134 /usr/lib64/ld-2.17.so

a.out 63409 umelog 0u chr 136,0 0t0 3 /dev/pts/0

a.out 63409 umelog 1u chr 136,0 0t0 3 /dev/pts/0

a.out 63409 umelog 2u chr 136,0 0t0 3 /dev/pts/0

其中,最後三行是標準輸入,標準輸出和標準錯誤輸出。u表示讀寫,r代表讀,w代表寫。

command   pid   user   fd   type device size/off    node name

a.out 22306 umelog cwd dir 253,4 39 2312707 /home/umelog/gdl_ctest

a.out 22306 umelog rtd dir 253,0 268 64 /

a.out 22306 umelog txt reg 253,4 8768 2312708 /home/umelog/gdl_ctest/a.out

a.out 22306 umelog mem reg 253,0 2118128 4213141 /usr/lib64/libc-2.17.so

a.out 22306 umelog mem reg 253,0 155456 4213134 /usr/lib64/ld-2.17.so

a.out 22306 umelog 0u chr 136,0 0t0 3 /dev/pts/0

a.out 22306 umelog 1u chr 136,0 0t0 3 /dev/pts/0

a.out 22306 umelog 2u chr 136,0 0t0 3 /dev/pts/0

[root@h3715217148-1 gdl_ctest]# lsof -p 22307

command pid user fd type device size/off node name

a.out 22307 umelog cwd dir 253,4 39 2312707 /home/umelog/gdl_ctest

a.out 22307 umelog rtd dir 253,0 268 64 /

a.out 22307 umelog txt reg 253,4 8768 2312708 /home/umelog/gdl_ctest/a.out

a.out 22307 umelog mem reg 253,0 2118128 4213141 /usr/lib64/libc-2.17.so

a.out 22307 umelog mem reg 253,0 155456 4213134 /usr/lib64/ld-2.17.so

a.out 22307 umelog 0u chr 136,0 0t0 3 /dev/pts/0

a.out 22307 umelog 1u chr 136,0 0t0 3 /dev/pts/0

a.out 22307 umelog 2u chr 136,0 0t0 3 /dev/pts/0

可以看到,子程序會獲取父程序所有開啟的檔案表。

這個命令各個顯示項的含義是

除了檢視乙個程序開啟了多少檔案,我們也可以檢視檔案被多少個程序開啟

lsof /pwd/other.log
## 查詢某個inode編號的檔案

inode 號僅在各檔案系統下是唯一的。言外之意,當 linux 掛載多個檔案系統後將出現 inode 號重複的現象。檔案系統所能提供的inode是有限的。言外之意你可能回遇到inode耗盡的錯誤。

linux中的檔案只有以下七種

普通檔案(-表示,可用ls -l檢視)

目錄(d)[在linux中,任何東西都被看成檔案,外裝置也看成檔案,注意是任何東西]、

字元裝置檔案(c)

塊裝置檔案(b)

套介面檔案(s)[如我們開啟mysql服務後,在/var/lib/mysql/下生成的mysql.sock檔案,關閉mysql服務後,這個檔案就消失了]

管道(p)[管道在linux/unix中式非常有用的東西,必須掌握哈]

符號鏈結檔案(l)[有點兒像win下的快捷方式]

邏輯上,socket = ipaddress + tcp/udp + port。

link oldfile newfile
另外,硬連線計算乙個引用數。

軟鏈結與硬鏈結不同,若檔案使用者資料塊中存放的內容是另一檔案的路徑名的指向,則該檔案就是軟連線。軟鏈結就是乙個普通檔案,只是資料塊內容有點特殊(儲存的是路徑)。你只要建立的檔案是同名同目錄的,軟鏈結並不介意。

linux 中的裝置檔案

裝置檔案的理解 1.裝置檔案讓程式能夠同系統的硬體和外圍裝置進行通訊,在配置核心時候,那些知道怎樣同系統的每個裝置進行通訊的模組被鏈入核心 2.用於某個特定裝置的模組叫做裝置驅動程式 3.裝置驅動程式提供了乙個標準的通訊介面,該介面看起來就好像乙個普通檔案 4.當核心接到乙個對為字元或塊裝置檔案的請...

Linux中的檔案讀寫

1 分類 根據參考資料 6 7 的描述可知,c語言讀寫檔案主要有兩種方式 a ascii方式 b 二進位制方式,關鍵在於使用fopen 函式開啟檔案時使用帶b的引數還是不帶b的引數 int fp1 fopen test1.txt wb 以二進位制方式開啟檔案test1.txt int fp2 fop...

linux 中的檔案鎖

linux執行多個程序同時對一檔案進行讀寫,雖然每乙個read和write都是原子操作,但核心並沒有在兩個讀寫操作之間加以同步。因此,當乙個程序多次呼叫read讀檔案時,就有可能在某兩次讀之間被另一程序所寫,因此,讀的的值將發生錯誤,造成了檔案資料的隨機性衝突,為解決此類併發程序對共享檔案的訪問控制...