linux的基本思想之一是:一切都是檔案。
系統中的所有都被視為乙個檔案,包括命令、硬體和軟體裝置、作業系統、程序等等對於作業系統核心而言,都被視為擁有各自特性或型別的檔案。
為了統一linux各分支(distributions)的目錄結構,引入了檔案目錄配置標準(file hierarchy system,fhs)
linux的目錄是以目錄樹的結構組織的,所有目錄都在根目錄下(/), 其它所有的目錄、檔案、裝置都在/之下.
從根目錄開始的檔案路徑稱為絕對路徑,同一系統下的每個檔案的絕對路徑是唯一的
.
表示工作目錄(如./file),..
表示上一層目錄,-
代表上乙個工作目錄,~
代表當前使用者的home目錄,~使用者名稱
代表相應使用者的home目錄
根目錄下第一層目錄為:
儲存器儲存的資料檔案,由ls -l命令將這類檔案的型別標記為[-].
可以大致分為:
二進位制檔案是否可執行不由字尾名而由是否擁有x許可權來確定.
檔名由主檔名和字尾名兩部分組成,以'.'開始檔案為隱藏檔案.ls命令不顯示隱藏檔案,需要使用ls -a引數顯示隱藏檔案.
linux下的字尾名只提醒檔案型別,不具有檔案關聯. 現在很多linux桌面環境都提供了根據字尾名呼叫相應程式讀取檔案的功能.
目錄,型別顯示為[d].
類似windows下的快捷方式,型別顯示為[l].
系統外設在linux下被認為是乙個檔案, 分為:
-塊裝置檔案
提供隨機訪問的裝置,如硬碟。型別標為[b].
串列埠的介面裝置,只能進行順序讀取。例如鍵盤、滑鼠等等。型別標為 [c].
網路通訊套接字(socket),型別標記為[s]
解決多程序併發讀寫同乙個檔案的特殊型別,型別標記為[p].
ls命令可以顯示檔案的屬性和許可權,
$ls -al
-rwxr-xr-- 1 root root 42304 sep 4 18:26 install.log
第乙個字元代表檔案的型別, [-]代表檔案,[d]代表目錄,[l]代表鏈結檔案, [b]塊裝置檔案,[c]字元裝置檔案
後面的九個字元分為三組,每組字元依次代表檔案所有者(user),使用者組(group),他人(others)的許可權. 超級使用者(root)對檔案的訪問是不受限制的.
每組由r,w,x三個字元組成,[r]代表可讀(read),[w]代表可寫(write),[x]代表可執行(execute)。三個字元的位置不會改變,如果沒有該許可權相應位置將出現[-].
對檔案而言,r代表讀取檔案內容的許可權,w代表修改檔案的許可權但沒有刪除檔案的許可權,x代表執行許可權。
windows系統下的檔案可否執行由字尾名決定,linux作業系統下檔案能否執行取決於有無可執行許可權,當然執行不可執行的檔案系統將報錯。
對目錄而言,r代表讀取目錄內容的許可權,使用者可以用ls命令檢視目錄下的內容; 目錄的可執行許可權代表能否使用cd命令將該目錄變成工作目錄,如果無法轉換成工作目錄那麼使用者也無法執行該目錄下的命令。
對目錄的可寫許可權[w]代表可以對目錄下的檔案和子目錄進行刪除(即使對該檔案/目錄本身沒有任何許可權),重新命名,移動,複製,新建等所有許可權。但是,擁有該許可權不能對目錄本身進行上述操作,那是它父目錄的許可權。
第二列的數字表示有多少檔名鏈結此節點(inode), 檔案系統通過inode記錄檔案的許可權和屬性.
第三列表示檔案所有者,第四列表示所屬使用者組.
第五列表示檔案大小單位為位元組, 第六列表示最後修改日期.
最後一列是檔名, 以"."開頭的檔名表示為隱藏檔案.
linux的檔案包括修改時間(modification time,mtime); 狀態改變時間(status time, ctime);讀取時間(access time, atime).
當檔案被讀取時atime將會更新,當屬性或許可權改變時將會更新ctime但不會更新mtime,後者只會在檔案內容被改變時更新。通常使用ls命令檢視時顯示的是檔案的mtime.
** 改變檔案所有者 **
chown [-r] [user] [file]
r代表遞迴(recursive)即應用到所有子目錄和子資料夾
user引數可以同時修改所有者和使用者組, 中間用":"或"."分隔, 如chmod user.grp file
也可以只修改檔案使用者組,chmod .grp file
** 修改檔案使用者組 **
chgrp [-r] [grp] [file]
用法類似chown, 但只能修改使用者組
** 改變檔案許可權 **
chmod [-r] [expr] [file]
-r選項代表遞迴, expr為許可權表示式有數字式或符號式兩種.
數字式的每一位由1,2,4分別代表x,w,r三種許可權, 0代表無許可權. 三者之和為某一身份使用者的所有許可權如7代表所有許可權, 5代表rx許可權.
數字式由三位數字組成,分別代表owner, group和other的許可權, 如chmod 777 file
代表所有人都有rwx許可權,chmod 740
代表owner有rwx, group有r許可權,其它人無許可權.
符號式用u,g,o代表所有者, 使用者組和其它使用者, a代表所有使用者. r,w,x代表讀,寫,執行許可權三者可以以任意順序組合.
"="代表指定使用者許可權, 如chmod a=rxw
給予所有使用者所有許可權,chmod g=rx,o=r
給予使用者組rx許可權無w許可權, 其他人r許可權無wx許可權.
"+"代表新增許可權,若使用者已擁有新增的許可權則不起作用, 'chmod a+r'所有人新增r許可權
"-"代表移除許可權, 若使用者本無此許可權則不起作用,chmod o-x
移除other的x許可權.
umask [-s] [expr]
umask用於設定許可權掩碼, 掩碼是預設不給與使用者的檔案許可權.
在沒給出掩碼引數時該命令將顯示當前掩碼.顯示掩碼時,使用-s
引數將顯示符號式預設許可權.
$ umask
0002
$ umask -s
u=rwx,g=rwx,o=rx
設定掩碼時只能採用數字式, 後三位的含義與chmod的數字式表達相同, 第一位代表特殊檔案許可權.
umask中的第一位代表特殊檔案許可權suid,sgid,sbit.
suid(set uid)僅對二進位制可執行檔案有效,且使用者必須擁有其執行許可權。suid屬性的檔案在其執行期間(run tiime),執行者擁有和檔案所有者相同的許可權。
sgid(set gid)與suid類似,只是執行者只擁有使用者組許可權.
當檔案被設定了suid或sgid許可權時,使用ls命令查詢許可權時所有者或使用者組的執行許可權位置會顯示s而非x
sbit(sticky bit)僅對目錄有效,當使用者對目錄擁有w、x許可權時,其在其下建立的檔案或目錄只有自己或著root可以刪除。設定了sbit許可權後,others執行許可權位置將顯示t.
這裡只列出指令常用操作, 更詳細的操作請使用man
或--help
等幫助系統和文件.
cd [path]
切換工作目錄
pwd
顯示工作目錄(print working director).
在使用鏈結檔案作為工作目錄時:
ls [dir]
選項:複製檔案或目錄
cp [src] [dest]
選項:--i
(--interactive
)覆蓋檔案之前先詢問使用者
cp的原始檔可以是單個或多個,當原始檔是多個時目標檔案必須是目錄.
cp產生的目標檔案許可權通常是命令操作者,若要保留原許可權需要使用p引數.
移除檔案或目錄
rm [file/dir]
選項:引數也可以是正規表示式
mv [src] [dest]
移動或重新命名檔案(目錄)
選項:mkdir [dir]
建立空目錄
選項:rmdir [dir]
刪除空目錄
cat [file]
檢視文字檔案
選項:touch [file]
修改檔案時間,當檔案不存在時建立空檔案。
-a 僅修改atime
-c 僅修改ctime
-d 不使用系統日期,而使用給定日期
-m 僅修改mtime
-t 不使用系統時間,而使用給定時間
就是以行為單位反向檢視,與cat正好相反(連名字也是~)
head [file]
或
顯示檔案開頭或結尾
-c k 顯示開頭(結尾)的k個字元。head中-k 表示除最後k個字元外均顯示,tail中+k表示除開頭k個字元外均顯示。
-n k 顯示開頭(結尾)的k行。head中-k 表示除最後k行外均顯示,tail中+k表示除開頭k行外均顯示。
預設顯示前(末)10行,可以通過選項來調整。
less [file]
可以上下翻頁,操作和man page相同提供翻頁,查詢等操作。
more [file]
可以實現翻頁檢視,只能向下查詢。:f可以顯示檔名和行數
顯示行號的輸出,可以進行更多個性化設定
更多操作參見linux幫助系統
linux 檔案操作
1 cat 開啟檔案 cat name.txt 開啟檔案name.txt cat 1.txt 2.txt 開啟2個檔案 cat n name.txt 開啟檔案後顯示行號 2 vi 輸出,刪除,查詢,替換,塊操作 等文字操作 vi 的三種基本工作模式 命令列模式,文字輸入模式,末行模式 命令列模式 不...
Linux 檔案操作
1,查詢檔案 find name 名稱 ls find atime 10 記著有乙個點號 兩邊都有空格,代表當前目錄,如果希望顯示系統的所有大於10天的檔案 可以將 換成 代表根目錄 find mtime n print n天前那天改過的檔案 find mtime n print n天以前改過的檔案...
linux檔案操作
unix檔案操作 讀寫操作 標c檔案讀寫 file 代表乙個開啟的檔案 unix linux的檔案讀寫函式 linux系統中 幾乎一切都是檔案,記憶體 目錄 硬體裝置都可以看成檔案。比如 記憶體 對應目錄 proc pid 目錄 可以用 vi 檢視,也是檔案 裝置 dev tty 鍵盤 顯示器 de...