文件系統基礎node
操做系統用於明確存儲設備或分區上文件的存儲結構,在存儲設備上組織文件的方式,它主要負責爲用戶建立文件、存入、讀出、修改、刪除、複製、剪切等來控制文件。
linux
Linux文件系統結構:一個倒立的樹狀結構,層級,有索引git
/:原始起點
shell
/dev/pts/2:
bash
最左側/:爲根目錄
ide
其它/:爲路徑分隔符
spa
文件路徑表示:操作系統
絕對路徑:以根目錄爲起點的路徑
命令行
相對路徑:以指定目錄爲起點的路徑
文件命名法則:
1.不能超過255個字符
2.嚴格區分大小寫
3.同一級目錄下,不可出現兩個文件名同名
4.可使用/之外的全部字符
文件系統結構:
/boot:存放開機啓動文件,內核文件,Bootloader引導程序
/etc:存放配置文件
/dev:存放特殊文件
b:block設備,隨機訪問,以塊爲單位
c:character設備,線性訪問,以字符爲單位
/home:存放普通用戶的家目錄
/bin:存放基本用戶命令,普通用戶可執行
/sbin:存放管理命令,只有管理員纔有權限執行
/usr:存放共享文件以及二進制文件
/var:常常可變化的文件
/lib:存放程序所依賴的庫文件
/lib64:存放用於x86_64系統上的庫文件
/root:管理員家目錄
/opt:第三方程序文件
/mnt:默認文件系統掛載點
/media:默認光盤掛載點
/tmp:存放臨時文件
/srv:系統上運行的服務用到的數據
/proc:用於輸出內核與進程相關信息的僞文件系統
/sys:用於輸出當前系統上硬件相關信息的僞文件系統
linux上的程序組成:
1.二進制文件:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
2.庫文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
3.幫助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc
4.配置文件:/etc, /etc/DIRECTORY, /etc/local/etc
linux下文件類型:
-:普通文件
d:目錄文件
l:連接文件
b:塊設備文件
c:字符設備文件
p:管道文件
s:套接字文件
基礎命令
cd命令:切換當前用戶的工做目錄
cd [OPTIONS...] DIORECTORY
cd /PATH:切換至指定工做目錄
cd ~:切換至用戶家目錄
cd ~USERNAME:切換指定用戶的家目錄
cd -:與上一次所在工做目錄之間來回切換
cd ..:切換之上一級目錄
ls命令:顯示當前目錄或指定目錄下的文件列表
ls [OPTIONS...] DIRECTORY
-d:只顯示目錄文件自己
-i:顯示每一個文件的inode號
-h:對文件大小作單位換算,通常和-l選項結合用
-R:遞歸顯示目錄下全部文件以及子目錄下的文件
-r:逆序顯示文件列表
-a:顯示目錄下全部文件,包括以.開頭的文件
-A:除了.和..之外,其他都顯示
-S:文件以大到小排序顯示
-Sr:文件從小到大顯示
文件通配符:
*:匹配任意字符任意次
?:匹配任意單個字符
[]:匹配指定範圍內任意單個字符
[^]:匹配指定範圍外任意單個字符
[0-9]:匹配數字範圍
[a-z]:匹配字母範圍
[abc123]:範圍內任意一個字符
預約義的字符類:#man 7 glob 可查看幫助
[:digit:]:匹配任意單個數字
[:alpha:]:匹配任意單個大小寫字母
[:space:]:匹配空白字符
[:punct:]:匹配任意特殊字符
[:upper:]:匹配大寫字母
[:lower:]:匹配小寫字母
[:alnum:]:匹配字母或數字
pwd命令:顯示當前用戶所在工做目錄
當前工做目錄環境變量$PWD
上一次所在目錄環境變量$OLDPWD
stat命令:查看文件元數據,包括文件時間戳,權限,大小,屬主屬組,連接數等
文件三個時間戳:
Access time:訪問時間,讀取文件內容時將改變此時間戳
Modify time:修改時間,修改文件內容時將改變此時間戳
Change time:改變時間,文件元數據發生變更時,將改變此此時間戳
touch命令:修改文件時間戳或建立空文件
touch [OPTIONS...] FILE...
-a:更新文件的訪問時間戳
-m:更新文件的修改時間戳
-c:刷新文件的全部時間戳,若是文件不存在,則不予建立
-t DATE:明確指定文件時間戳
YYmmddHHMM.S
touch FILE:建立空文件
cp命令:複製文件或目錄
cp [OPTIONS...] SOURCE DEST
cp SRC DEST:單源複製
若是DEST存在,且爲文件,把SRC文件內容覆蓋至DEST
若是DEST不存,則建立,並把文件內容覆蓋至DEST
若是DEST存在,且爲目錄,在DEST目錄下建立一個與SRC同名的文件,並把內容填充至此
cp SRC... DEST:多源複製
若是DEST不存在,則報錯
若是DEST存在,且爲目錄,則將SRC...複製到DEST目錄下
若是DEST存在,且爲文件,報錯
cp SRC DEST:單源複製,源爲目錄,須要加-r選項
若是DEST存在,且爲目錄,將SRC目錄複製到DEST目錄下
若是DEST存在,則爲文件,報錯
若是DEST不存在,則建立DEST目錄,並把SRC目錄下全部文件複製到DEST目錄
-r:複製目錄文件,默認只能複製文件
-f:強制
-i:交互式
-p:保留原文件的ownership,mode,timestamp屬性
-a:歸檔
-v:顯示詳細過程
--preserv=
mode:權限
ownership:屬主屬組
timestamp:時間戳
link:連接屬性
all:全部
命令別名:定義別名能夠簡化操做,提升命令執行效率
alias:顯示當前shell進程所定義的別名
定義別名:
alias NAME='COMMAND'
撤銷別名:
unalias NAME
執行原始命令:
\COMMAND
'COMMAND'
/PATH/TO/COMMAND
在命令行定義別名只對當前shell進程有效,若是想永久有效,則須要定義在配置文件當中
/etc/bashrc:全局配置,全部用戶都生效
~/.bashrc:只對當前用戶生效
練習:
一、定義別名命令baketc,天天將/etc/目錄下全部文件,備份到/testdir獨立的子目錄下,並要求子目錄格式爲backupYYYY-mm-dd,備份過程可見
二、建立/testdir/rootdir目錄並複製/root全部下文件到該目錄內,要求保留原有權限
mv:移動或重命名文件或目錄
工做機制與cp命令一致
mv [OPTIONS...] SRC DEST
-i:交互式
-f:強制
重命名文件名:mv NAME NEWNAME
rm:刪除文件或目錄
rm [OPTIONS...] FILE...
-r:遞歸刪除
-f:強制刪除
-i:交互式
注意:危險操做 rm -rf /*
tree命令:以樹狀格式查看目錄結構
-L:查看目錄級別
-d:只顯示目錄
mkdir命令:建立目錄
-p:遞歸建立
-v:顯示詳細信息
-m MODE:建立目錄時,指定權限
rmdir命令:刪除空目錄
-p:遞歸刪除空目錄
-v:顯示過程
file命令:查看文件內容類型
file [OPTIONS...] FILE...
-b:列出命令結果,不顯示文件名
-c:顯示命令執行過程
-f:列出指定文件中的文件的類型
-L:查看軟連接文件對應的文件類型
-F:使用指定分隔符號替換輸出文件名後默認的」:」分隔符
-i:輸出mime類型的字符串
-z:嘗試去解讀壓縮文件的內容