linux數據類型
『壹』 linux C - C基礎篇(一)
1) 最高位是符號位,0表示正數,1表示負數。
2) 如果是正數,正常表示(即原碼),如果是負數,先求反碼,再求補碼(補碼為反碼加1)即為他的二進製表示。例如char型的1,用二進製表示為00000001;char型的-1用二進製表示為11111111。
常量,就是在程序運行過程中值無法被改變;變數,就是在程序運行過程中內部存儲的值隨時可以被改變。變數是「可讀、可寫」,而常量,是「只讀」的。
整形常量:12、浮點型常量:12.35、實數型常量:1.3e-5、字元型常量:'a'、字元串型常量:"abc"、標識符常量:#define LEN 10。
變數一般存放在內存中:棧區, 靜態數據區,全局變數區, 堆區。函數中定義的變數,如果不加特殊修飾,都是保存在棧區,函數調用結束,棧空間被自動釋放。
定義變數:
<存儲類型> <數據類型> <變數名>
static/auto/... int/char a
例如:static int a;char c;
存儲類型:
自動類型轉換
將一種類型的數據賦值給另外一種類型的變數時就會發生自動類型轉換,例如:float a = 10;10是int類型的數據,需要先轉換成float類型然後再賦值給變數a。
在不同類型的混合運算中,編譯器也會自動地轉換數據類型,將參與運算的所有數據先轉換為同一種類型,然後再進行計算。轉換的規則如下:
強制類型轉換
自動類型轉換是編譯器根據代碼自己判斷的,有時候我們需要手動的進行數據類型轉換,稱之為強制類型轉換,例如:
(int)(a+b); //將a + b 求得結果的數據類型強制轉換為int型。
運算符的優先順序
特殊運算符>單目運算符>雙目運算符>三目運算>賦值運算>逗號運算
『貳』 Linux下LPCWSTR與BSTR區別
字元串轉換_BSTR/LPSTR/LPWSTR/Char
一、BSTR、LPSTR和LPWSTR
在Visual C++.NET的所有編程方式中,我們常常要用到這樣的一些基本字元串類型,如BSTR、LPSTR和LPWSTR等。之所以出現類似上述的這些數據類型,是因為不同編程語言之間的數據交換以及對ANSI、Unicode和多位元組字元集(MBCS)的支持。
那麼什麼是BSTR、LPSTR以及LPWSTR呢?
BSTR(Basic STRing,Basic字元串)是一個OLECHAR*類型的Unicode字元串。它被描述成一個與自動化相兼容的類型。由於操作系統提供相應的API函數(如SysAllocString)來管理它以及一些默認的調度代碼,因此BSTR實際上就是一個COM字元串,但它卻在自動化技術以外的多種場合下得到廣泛使用。圖1描述了BSTR的結構,其中DWORD值是字元串中實際所佔用的位元組數,且它的值是字元串中Unicode字元的兩倍。
LPSTR和LPWSTR是Win32和VC++所使用的一種字元串數據類型。LPSTR被定義成是一個指向以NULL(『\0』)結尾的8位ANSI字元數組指針,而LPWSTR是一個指向以NULL結尾的16位雙位元組字元數組指針。在VC++中,還有類似的字元串類型,如LPTSTR、LPCTSTR等
『叄』 linux常見的文件類型
在Linux操作系統里有Ext2、Ext3、Linux swap和VFAT四種格式
Ext2:
Ext2是GNU/Linux系統中標準的文件系統。這是Linux中使用最多的一種文件系統,它是專門為Linux設計的,擁有極快的速度和極小的CPU佔用率。Ext2既可以用於標準的塊設備(如硬碟),也被應用在軟盤等移動存儲設備上。
Ext3:
Ext3是Ext2的下一代,也就是保有Ext2的格式之下再加上日誌功能。Ext3是一種日誌式文件系統(Journal File System),最大的特點是:它會將整個磁碟的寫入動作完整的記錄在磁碟的某個區域上,以便有需要時回溯追蹤。當在某個過程中斷時,系統可以根據這些記錄直接回溯並重整被中斷的部分,重整速度相當快。該分區格式被廣泛應用在Linux系統中。
Linux swap:
它是Linux中一種專門用於交換分區的swap文件系統。Linux是使用這一整個分區作為交換空間。一般這個swap格式的交換分區是主內存的2倍。在內存不夠時,Linux會將部分數據寫到交換分區上。
VFAT:
VFAT叫長文件名系統,這是一個與Windows系統兼容的Linux文件系統,支持長文件名,可以作為Windows與Linux交換文件的分區。
『肆』 linux文件系統基礎知識
linux文件系統基礎知識匯總
1、linux文件系統分配策略
塊分配( block allocation ) 和 擴展分配 ( extent allocation )
塊分配:磁碟上的文件塊根據需要分配給文件,避免了存儲空間的浪費。但當文件擴充時,會造成文件中文件塊的不連續,從而導致過多的磁碟尋道時間。
每一次文件擴展時,塊分配演算法就需要寫入文件塊的結構信息,也就是 meta-dada 。meta-data總是與文件一起寫入存儲設備,改變文件的操作要等到所有meta-data的操作都完成後才能進行,
因此,meta-data的操作會明顯降低整個文件系統的性能。
擴展分配: 文件創建時,一次性分配一連串連續的塊,當文件擴展時,也一次分配很多塊。meta-data在文件創建時寫入,當文件大小沒有超過所有已分配文件塊大小時,就不用寫入meta-data,直到需要再分配文件塊的時候。
擴展分配採用成組分配塊的方式,減少了SCSI設備寫數據的時間,在讀取順序文件時具有良好的性能,但隨機讀取文件時,就和塊分配類似了。
文件塊的組或塊簇 ( block cluster) 的大小是在編譯時確定的。簇的大小對文件系統的性能有很大的影響。
註: meta-data 元信息:和文件有關的信息,比如許可權、所有者以及創建、訪問或更改時間等。
2、文件的記錄形式
linux文家系統使用索引節點(inode)來記錄文件信息。索引節點是一種數據結構,它包含了一個文件的長度、創建及修改時間、許可權、所屬關系、磁碟中的位置等信息。
一個文件系統維護了一個索引節點的數組,每個文件或目錄都與索引節點數組中的唯一的元素對應。每個索引節點在數組中的索引號,稱為索引節點號。
linux文件系統將文件索引節點號和文件名同時保存在目錄中,所以,目錄只是將文件的名稱和它的索引節點號結合在一起的一張表,目錄中每一對文件名稱和索引節點號稱為一個連接。
對於一個文件來說,有一個索引節點號與之對應;而對於一個索引節點號,卻可以對應多個文件名。
連接分為軟連接和硬連接,其中軟連接又叫符號連接。
硬連接: 原文件名和連接文件名都指向相同的物理地址。目錄不能有硬連接;硬連接不能跨文件系統(不能跨越不同的分區),文件在磁碟中只有一個拷貝。
由於刪除文件要在同一個索引節點屬於唯一的連接時才能成功,因此硬連接可以防止不必要的誤刪除。
軟連接: 用 ln -s 命令建立文件的符號連接。符號連接是linux特殊文件的.一種,作為一個文件,它的數據是它所連接的文件的路徑名。沒有防止誤刪除的功能。
3、文件系統類型:
ext2 : 早期linux中常用的文件系統
ext3 : ext2的升級版,帶日誌功能
RAMFS : 內存文件系統,速度很快
NFS : 網路文件系統,由SUN發明,主要用於遠程文件共享
MS-DOS : MS-DOS文件系統
VFAT : Windows 95/98 操作系統採用的文件系統
FAT : Windows XP 操作系統採用的文件系統
NTFS : Windows NT/XP 操作系統採用的文件系統
HPFS : OS/2 操作系統採用的文件系統
PROC : 虛擬的進程文件系統
ISO9660 : 大部分光碟所採用的文件系統
ufsSun : OS 所採用的文件系統
NCPFS : Novell 伺服器所採用的文件系統
SMBFS : Samba 的共享文件系統
XFS : 由SGI開發的先進的日誌文件系統,支持超大容量文件
JFS :IBM的AIX使用的日誌文件系統
ReiserFS : 基於平衡樹結構的文件系統
udf: 可擦寫的數據光碟文件系統
4、虛擬文件系統VFS
linux支持的所有文件系統稱為邏輯文件系統,而linux在傳統的邏輯文件系統的基礎上增加料一個蓄念文件系統( Vitual File System ,VFS) 的介面層。
虛擬文件系統(VFS) 位於文件系統的最上層,管理各種邏輯文件系統,並可以屏蔽各種邏輯文件系統之間的差異,提供統一文件和設備的訪問介面。
5、文件的邏輯結構
文件的邏輯結構可分為兩大類: 位元組流式的無結構文件 和 記錄式的有結構文件。
由位元組流(位元組序列)組成的文件是一種無結構文件或流式文件 ,不考慮文件內部的邏輯結構,只是簡單地看作是一系列位元組的序列,便於在文件的任意位置添加內容。
由記錄組成的文件稱為記錄式文件 ,記錄是這種文件類型的基本信息單位,記錄式文件通用於信息管理。
6、文件類型
普通文件 : 通常是流式文件
目錄文件 : 用於表示和管理系統中的全部文件
連接文件 : 用於不同目錄下文件的共享
設備文件 : 包括塊設備文件和字元設備文件,塊設備文件表示磁碟文件、光碟等,字元設備文件按照字元操作終端、鍵盤等設備。
管道(FIFO)文件 : 提供進程建通信的一種方式
套接字(socket) 文件: 該文件類型與網路通信有關
7、文件結構: 包括索引節點和數據
索引節點 : 又稱 I 節點,在文件系統結構中,包含有關相應文件的信息的一個記錄,這些信息包括文件許可權、文件名、文件大小、存放位置、建立日期等。文件系統中所有文件的索引節點保存在索引節點表中。
數據 : 文件的實際內容。可以是空的,也可以非常大,並且擁有自己的結構。
8、ext2文件系統
ext2文件系統的數據塊大小一般為 1024B、2048B 或 4096B
ext2文件系統採用的索引節點(inode):
索引節點採用了多重索引結構,主要體現在直接指針和3個間接指針。直接指針包含12個直接指針塊,它們直接指向包含文件數據的數據塊,緊接在後面的3個間接指針是為了適應文件的大小變化而設計的。
e.g: 假設數據塊大小為1024B ,利用12個直接指針,可以保存最大為12KB的文件,當文件超過12KB時,則要利用單級間接指針,該指針指向的數據塊保存有一組數據塊指針,這些指針依次指向包含有實際數據的數據塊,
假如每個指針佔用4B,則每個單級指針數據塊可保存 1024/4=256 個數據指針,因此利用直接指針和單級間接指針可保存 1024*12+1024*256=268 KB的文件。當文件超過268KB時,再利用二級間接指針,直到使用三級間接指針。
利用直接指針、單級間接指針、二級間接指針、三級間接指針可保存的最大文件大小為:
1024*12+1024*256+1024*256*256+1024*256*256*256=16843020 KB,約 16GB
若數據塊大小為2048B,指針佔4B,則最大文件大小為: 2048*12+2048*512+2048*512*512+2048*512*512*512=268,960,792 KB 約 268GB
若數據塊大小為4096B,指針佔4B,則最大文件大小為: 4096*12+4096*1024+4096*1024*1024+4096*1024*1024*1024=4,299,165,744 KB ,約 4TB
註: 命令 tune2fs -l /dev/sda5 可查看文件系統
ext2文件系統最大文件名長度: 255個字元
ext2文件系統的缺點:
ext2在寫入文件內容的同時並沒有同時寫入文件meta-data, 其工作順序是先寫入文件的內容,然後等空閑時候才寫入文件的meta-data。若發生意外,則文件系統就會處於不一致狀態。
在重新啟動系統的時候,linux會啟動 fsk ( file system check) 的程序,掃描整個文件系統並試圖修復,但不提供保證。
9、ext3文件系統:
ext3基於ext2的代碼,所以磁碟格式與ext2相同,使用相同的元數據。
ext2文件系統無損轉化為ext3文件系統: tune2fs -j /dev/sda6
日誌塊設備( Journaling block device layer,JBD)完成ext3文件系統日誌功能。JBD不是ext3文件系統所特有的,它的設計目標是為了向一個塊設備添加日誌功能。
當一個文件修改執行時,ext3文件系統代碼將通知JBD,稱為一個事務(transaction)。發生意外時,日誌功能具有的重放功能,能重新執行中斷的事務。
日誌中的3種數據模式:
1)、data=writeback :不處理任何形式的日誌數據,給用戶整體上的最高性能
2)、data=odered :只記錄元數據日誌,但將元數據和數據組成一個單元稱為事務(transaction) 。此模式保持所句句的可靠性與文件系統的一致性,性能遠低於data=writeback模式,但比data=journal模式快
3)、data=journal :提供完整的數據及元數據日誌,所有新數據首先被寫入日誌,然後才被定位。意外發生過後,日誌可以被重放,將數據與元數據帶回一致狀態。這種模式整體性能最慢,但數據需要從磁碟讀取和寫入磁碟時卻是3種模式中最快的。
ext3文件系統最大文件名長度: 255個字元
ext3文件系統的優點:可用性、數據完整性、速度、兼容性
10、ReiserFS文件系統
ReiserFS文件系統是由Hans Reiser和他領導的開發小組共同開發的,整個文件系統完全是從頭設計的,是一個非常優秀的文件系統。也是最早用於Linux的日誌文件系統之一。
ReiserFS的特點
先進的日誌機制
ReiserFS有先進的日誌(Journaling/logging)功能 機制。日誌機制保證了在每個實際數據修改之前,相應的日誌已經寫入硬碟。文件與數據的安全性有了很大提高。
高效的磁碟空間利用
Reiserfs對一些小文件不分配inode。而是將這些文件打包,存放在同一個磁碟分塊中。而其它文件系統則為每個小文件分別放置到一個磁碟分塊中。
獨特的搜尋方式
ReiserFS基於快速平衡樹(balanced tree)搜索,平衡樹在性能上非常卓越,這是一種非常高效的演算法。ReiserFS搜索大量文件時,搜索速度要比ext2快得多。Reiserfs文件 系統使用B*Tree存儲文件,而其它文件系統使用B+Tree樹。B*Tree查詢速度比B+Tree要快很多。Reiserfs在文件定位上速度非常 快。
在實際運用中,ReiserFS 在處理小於 4k 的文件時,比ext2 快 5 倍;帶尾文件壓縮功能(默認)的ReiserFS 比ext2文件系統多存儲6%的數據。
支持海量磁碟
ReiserFS是一個非常優秀的文件系統,一直被用在高端UNIX系統上,可輕松管理上百G的文件系統,ReiserFS文件系統最大支持的文件系統尺寸為16TB。這非常適合企業級應用中。
優異的性能
由於它的高效存儲和快速小文件I/O特點,使用ReiserFs文件系統的PC,在啟動X窗口系統時,所花的時間要比在同一台機器上使用ext2文 件系統少1/3。另外,ReiserFS文件系統支持單個文件尺寸為4G的文件,這為大型資料庫系統在linux上的應用提供了更好的選擇。
;『伍』 如何查找Linux中一些特殊數據類型定義,比如pid_t和uid_t
在sys/types.h頭文件中搜索pid_t,可以找到下面的語句: #ifndef __pid_t_defined typedef __pid_t pid_t; # define __pid_t_defined #endif 可以看到pid_t類型其實就是__pid_t類型,但是在sys/types.h在頭文件中沒有找到__pid_t這個類型,這個時候應該怎麼辦呢?看sys/types.h中包含的頭文件,即include語句,從這些語句中選擇bits/types.h這個頭文件,至於為什麼這就牽涉到內核的一些類型定義的規則或者叫規律,但是一般按照先sys目錄然後再bits目錄都沒有錯。在bits/types.h頭文件中可以找到下面的語句: __STD_TYPE __PID_T_TYPE __pid_t; 也就是說__pid_t其實是__PID_T_TYPE類型,而這個類型在哪定義呢?也是先看include語句,選擇bits/typesizes.h頭文件,也是經驗,從這個頭文件中就可以找到下面的語句: #define __PID_T_TYPE __S32_TYPE 也就是說__PID_T_TYPE其實是__S32_TYPE類型,如果單從字面意思看的話這應該是一個32位的整形或者其他類型,但是千萬不要這么早下結論。而這個類型在bits/typesize.h中找不到,而且這個頭文件中也沒有include語句,這個時候怎麼辦呢?還去bits/types.h中找,可以找到下面的語句: #define __S32_TYPE int 至此,終於找到了,pid_t其實就是int類型。在32位機下pid_t是32位的整數,在64位機下pid_t是64位整數,所以看到__S32_TYPE這樣的類型千萬不要過早地下結論是32位或64位。總結一下,找一個類型,一般的過程就是(比如從xxx.h開始): xxx.h----->sys/xxx.h----->bits/xxx.h----->bits/types.h和bits/typesize.h 或者有時還要去asm目錄和asm-generic目錄中的頭文件中找。還有一種方式就是在linux內核源碼中找,但是可能某些同學感覺不爽,哈哈!
『陸』 linux下的 資料庫 有哪些
你要的全在下面:資料庫已經有4代了產品很多。
DBA課程更新內容大綱:
序章 DBA職業體系與資料庫產品趨勢
What is DBA?
DBA成長體系與職業方向(0-30W-50W-100W-???)
資料庫發展歷史,產品迭代趨勢與職業學習方向
MySQL基礎入門
MySQL資料庫簡介
什麼是資料庫?什麼是OLTP?
為什麼學習MySQL?MySQL產品迭代
一二線大廠MySQL主流版本功能使用與特性介紹(5.1,5.6,5.7,8.0)**獨家**
MySQL部署與管理體系
5.7,8.0版本企業規范部署,啟動
MySQL管理體系講解
MySQL產品架構分析與基礎管理
MySQL基礎架構解析(一條SQL是如何執行的)
MySQL啟動過程
MySQL連接的生命與使命
MySQL表結構實現原理
MySQL開發應用(約1.5天)
MySQL SQL基礎應用
聲明式式語言與SQL語言
SQL語言應用場景與sqlmode
MySQL開發工具選擇與使用
MySQL字元串類型與字元集
MySQL語句類型介紹(DDL,DCL,DML,DQL)
SQL之查詢基礎
SQL之聚合與排序
SQL之數據更新
SQL之復雜查詢
SQL之集合運算
MySQL SQL高級處理與開發
函數開發與應用
存儲過程,觸發器,事件
表分區管理及企業級應用場景
Online DDL解析與開源生態OPS
窗口函數講解及應用場景
MySQL JSON開發及應用
一二線大廠MySQL企業級開發規范詳解**獨家**
MySQL核心技術
MySQL InnoDB索引實現原理及執行計劃分析(約0.5天)
索引介紹
MySQL索引介紹
InnoDB索引B+ tree的索引設計
聚簇索引與二級索引
InnDB索引插入過程
數據類型對索引應用的使用影響
執行計劃介紹及結果剖析
索引優化基礎實戰演練
企業級索引優化實戰案例(億萬級QPS的索引優化與索引上線)**獨家**
MySQL InnoDB存儲引擎技術內幕與深入講解(約1天)
Mysql存儲引擎介紹與功能特性
InnoDB引擎源代碼目錄結構與存儲引擎文件組織
InnoDB存儲引擎核心架構介紹及解析
InnoDB數據存儲結構
InnoDB事務詳解及ACID特性解析
InnoDB 日誌管理機制Undo與Redo
InnoDB事務與隔離級別
InnoDB MVCC及鎖機制
MySQL日誌管理與實戰(0.5)
General log詳解
Error log詳解
企業級Binary log with Data pipeline **獨家**
企業級Slowlog場景應用**獨家**
MySQL備份恢復與遷移(0.5)
備份工具介紹與使用場景解析
一二線大廠過萬數據節點備份策略**獨家**
一二線大廠Mysqlmp核心原理與企業級實戰演練**獨家**
一二線大廠Xtrabackup核心原理與企業級實戰演練**獨家**
Enterprise Backup企業級生態工具介紹與應用
MySQL主從復制深入(約1天)
主從復制簡介與簡單搭建
主從復制工作原理解析
主從數據一致性方案講解(半同步,全同步)
MySQL主從復制實戰
MySQL GTID復制
企業級主從復制故障分析與處理方案
億級QPS MySQL節點故障轉移實戰案例**獨家**
MySQL高可用架構(1天)
一二線大廠過萬集群規模高可用架構MHA+BLB企業級實戰**獨家**
Mycat,DBLE企業級實戰
MySQL企業級優化與實戰(約1天)
打造高性能MySQL
企業級MySQL參數優化實戰**獨家**
企業級T0級別故障案例解析**獨家**
阿里雲資料庫產品(RDS與PolarDB)(選修二選一) (1天)
企業級RDS介紹,使用與故障案例(網路雲RDS 運維DBA分享或交流)**獨家**
企業級PolarDB業務場景解析(阿里團隊PolarDB P7交付架構師分享或交流)**獨家**
Redis核心技術(2天)
Redis產品介紹與應用場景簡析
Redis安裝,部署,使用
Redis數據類型詳解與應用
Redis集群架構講解與實戰(哨兵,cluster)
千億級Redis集群參數優化實戰**獨家**
千億級企業級Redis核心案例講解與業務場景解析**獨家**
MongoDB核心技術(2天)
MongoDB產品介紹與應用場景簡析
MongoDB安裝,部署及架構解析
MongoDB數據類型與運維管理
MongoDB集群架構講解與實戰
企業級MongoDB參數優化實戰**獨家**
BAT千萬元級別故障案例分享**獨家**
ES核心技術(2天)
ES產品介紹與應用場景簡析
ES安裝,部署及架構解析
ES日常運維管理
NewSQL-TiDB(僅學此一個+MySQL至少20K起步) TUG核心成員-PingCAP官方認證講師 **獨家**
TiDB產品介紹與分布式資料庫技術應用講解
TiDB集群部署與日常管理
TiDB集群監控詳解與指標應用
TiDB核心架構深入講解與Raft協議深入淺出**獨家*
企業級TiDB-DM理解與應用**獨家*
TiDB企業級業務開發最佳實踐**獨家**
TiFllash核心架構講解與實戰**獨家**
TiDB打造HTAP實時數倉平台架構設計**獨家**
Cloud TiDB(K8S上雲實戰)**獨家**
TiDB4.0熱升級5.0集群(簡介:我司與Pingcap官方{開發30人,交付專家7人,項目經理4人}封閉測試與在線升級全案例解析6.23日項目完結,官方認證業界目前第一的業務場景與投入)
NewSQL-TDengine(1天 選修)
TDengine產品介紹
TDengine單機版與集群部署與管理
TDengine架構體系詳解
TDengine企業級參數優化與實戰
TDengine業務開發規范與業務場景實戰
數據運維產品架構設計思路(0.5天)
什麼是數據運維平台
企業級數據運維平台架構解析
數據運維平台企業級原型設計實戰(0.5天)
資料庫運維自動化工具開發(Shell,Python)(2天5選2,下期輪換)
MySQL億萬級流量運維平台開發
Redis億萬級流量運維平台開發
ES億萬級流量運維平台開發
MongoDB億萬級流量運維平台開發
TiDB億萬級流量運維平台開發
第一部分 OLTP資料庫-Mysql(約1天)
1. 索引的由來
2. 表和索引結構
3. 表聚簇與索引行
4. 錶行與索引組織表
1. 延時復制
2. 過濾復制
3. 多源復制
第二部分 NoSQL
第三部分 NewSQL(4天)
1. 58同城億級流量Mysql熱遷移TiDB**獨家**
2. DM集群多源同步復制場景最佳實踐(官方認證,業界唯二)**獨家**
第四部分 企業級大規模資料庫集群運維開發實戰(35W+年薪提升)**獨家**
『柒』 linux下 DWORD,USHORT等數據類型聲明包含在那個頭文件中
包含在types.h這個頭文件中。
包含方法:#include <sys/types.h>
當#include使用相對路徑的時候,gcc最終會根據包含路徑,來最終構建出頭文件的位置。如上面的包含方法就是包含文件/usr/include/sys/types.h
『捌』 linux源代碼中的數據類型unsigned int和unsigned long在內存中的位元組數是多少
unsigned int 4個位元組
unsigned long 4個位元組
『玖』 Linux中32位和64位數據類型長度有哪些不同
基本數據類型
可以指定int的長度:
類似的,還有uint32_t和uint64_t
其它數據類型
1,size_t:跟機器字長一樣;
2,off_t:32位機器下默認是32位長,這時無法對大於4G的文件偏移操作,這時off_t = __off_t;如果想進行大於4G的文件偏移操作,可以在程序中加入頭文件之前定義
這時off_t = __off64_t,具體定義在unistd.h中;對於64位機,默認就是64位長。
#define _FILE_OFFSET_BITS 64
3,ino_t:跟機器字長一樣。
『拾』 Linux有什麼文件類型
Linux有以下文件類型:
1、普通文件(regular file):就是一般存取的文件,由ls -al顯示出來的屬性中,第一個屬性為 [-],例如 [-rwxrwxrwx]。另外,依照文件的內容,又大致可以分為:
2、純文本文件(ASCII):這是Unix系統中最多的一種文件類型,之所以稱為純文本文件,是因為內容可以直接讀到的數據,例如數字、字母等等。設 置文件幾乎都屬於這種文件類型。舉例來說,使用命令「cat ~/.bashrc」就可以看到該文件的內容(cat是將文件內容讀出來)。
3、二進制文件(binary):系統其實僅認識且可以執行二進制文件(binary file)。Linux中的可執行文件(腳本,文本方式的批處理文件不算)就是這種格式的。舉例來說,命令cat就是一個二進制文件。
4、數據格式的文件(data):有些程序在運行過程中,會讀取某些特定格式的文件,那些特定格式的文件可以稱為數據文件(data file)。舉例來說,Linux在用戶登入時,都會將登錄數據記錄在 /var/log/wtmp文件內,該文件是一個數據文件,它能通過last命令讀出來。但使用cat時,會讀出亂碼。因為它是屬於一種特殊格式的文件。
目錄文件(directory):就是目錄,第一個屬性為 [d],例如 [drwxrwxrwx]。
連接文件(link):類似Windows下面的快捷方式。第一個屬性為 [l],例如 [lrwxrwxrwx]。
設備與設備文件(device):與系統外設及存儲等相關的一些文件,通常都集中在 /dev目錄。通常又分為兩種:
塊設備文件:就是存儲數據以供系統存取的介面設備,簡單而言就是硬碟。例如一號硬碟的代碼是 /dev/hda1等文件。第一個屬性為 [b]。
字元設備文件:即串列埠的介面設備,例如鍵盤、滑鼠等等。第一個屬性為 [c]。
套接字(sockets):這類文件通常用在網路數據連接。可以啟動一個程序來監聽客戶端的要求,客戶端就可以通過套接字來進行數據通信。第一個屬性為 [s],最常在 /var/run目錄中看到這種文件類型。
管道(FIFO,pipe):FIFO也是一種特殊的文件類型,它主要的目的是,解決多個程序同時存取一個文件所造成的錯誤。FIFO是first-in-first-out(先進先出)的縮寫。第一個屬性為 [p]。