1、Linux發行版本的系統目錄名稱命名規則以及用途
1)系統目錄簡介
linux各種發行版本都遵循LSB(Linux Stadards Base)規則,使用一致的相關的基礎目錄名稱,使用根目錄系統結構(root filesystem),使用FHS(Files Hierarchy Standard)層次結構。
文件和目錄被組織成一個單根倒置樹結構,文件系統從根目錄下開始,用“/”表示,根文件系統(rootfs):root fileystem,文件名稱區分大小寫,以.開頭的文件爲隱藏文件,路徑分割的/,文件有兩類數據:
元數據:metadata
數據:data
文件系統分層結構:LSB
2)文件名規則
文件名最長255個字節,包括路徑在內文件名稱最長4095個字節,藍色->目錄 綠色-->可執行文件 紅色-->壓縮文件 淺藍色-->鏈接文件 灰色-->其他文件,處理斜槓和NULL,所有字符都有效,但使用特殊字符的目錄名和文件不推薦使用,有些字符需要用引號來引用它們,標準Linux文件系統(如而系統),文件名稱大小寫敏感例如:MAIL,Mail,mail等
3)文件系統結構
/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader,grub)都存放
於此目錄
/bin:所有用戶使用的基本命令;不能關聯至獨立分區,OS啓動即會用到的程序
/sbin:管理類的基本命令;不能關聯至獨立分區,OS啓動即會用到的程序
/lib啓動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules)
/lib64:專用於x86_64系統上的輔助共享庫文件存放位置
/etc:配置文件目錄
/home/USERNAME:普通用戶家目錄
/root:管理員的家目錄
/media:便捷式移動設備掛載點
/mnt:臨時文件系統掛載點
/dev:設備文件及特殊文件存儲位置
b:block device,隨機訪問
c:character device,線性訪問
/opt:第三方應用程序的安裝位置
/srv:系統上運行的服務用到的數據
/tmp:臨時文件存儲位置
/usr:universal shared,read-only data
bin:保證系統擁有完整功能而提供的應用程序
sbin:
lib:32位使用
lib64:只存在64位系統
include:C程序的頭文件(header files)
share結構化獨立的數據,列如doc,man等
local:第三方應用程序的安裝位置
bin,sbin,lib,lib64,etc,share
/var:variable data files
cache:應用程序緩存數據目錄
lib應用程序狀態信息數據
local:專用於爲/usr/local下的應用程序存儲可變數據
lock:鎖文件
log:日誌目錄及文件
opt:專用於爲/opt下的應用程序存儲可變數據
run:運行中的進程相關數據,通常用於存儲進程pid文件
spool:應用程序數據池
tmp:保存系統兩次重啓之間產生的臨時數據
/proc:用於輸出內核與進程信息相關的虛擬文件系統
/sys:用於輸出當前系統上硬件設備相關信息虛擬文件系統
/selinux:security enhanced Linux,selinux相關的安全策略等信息的存儲位置
4)Linux上的應用程序的組成部分
二進制程序:/bin,/sbin,/usr/sbin,/usr/bin,/usr/local/bin,/usr/local/sbin
庫文件:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
配置文件:/etc,/etc/DIRECTORY,/usr/local/etc
幫助文件:/usr/share/man,/usr/share/doc,/usr/local/share/man,/usr/local/share/doc
5)Linux下的文件類型
-普通文件
d目錄文件
b塊設備
c字符設備
l符號鏈接文件
p管道文件pipe
s套接字文件socket
2、文件的元數據信息
1)顯示當前工作目錄
pwd:顯示當前shell的絕對路徑
2)絕對路徑和相對路徑
絕對路徑:以正斜槓開始,完整的文件的位置路徑,可用於任何想指定一個文件名的時候
相對路基:不以斜線開始,指定相對於當前工作目錄或某目錄的位置,可以作爲一個簡短的形式指定一個文件名。
cd切換目錄
3)列出目錄內容
列出當前目錄的內容或指定目錄
ls -a包含隱藏文件
ls -l顯示額外的信息
ls -R目錄遞歸
ls -ld目錄和符號鏈接信息
ls-1文件分行顯示
ls -S按從大到小排序
ls -t按mtime排序
ls -u 配合-t選項,顯示並按atime從新到舊排序
ls -U按目錄存放順序顯示
ls -X按文件後綴排序
4)查看文件狀態
文件的元數據有 文件的屬性 大小 創建時間 訪問時間,屬主屬組等信息
stat:
三個時間戳:
access time 訪問時間,atime,讀取文件內容
modify time 修改時間,mtime,改變文件內容(數據)
change time 改變時間,ctime,元數據發生改變
修改文件時間戳touch
touch命令
格式:touch 選項...文件名
-a僅改變atime和ctime
-m僅僅改變mtime和ctime
-t[[CC]YY]MMDDhhmm[.ss]指定atime和mtime的時間戳
-c如果文件不存在,則不予創建
3、軟鏈接和硬鏈接
硬鏈接:本質是同一個文件的多個名字、不能跨分區、跨設備、也不能針對文件夾使用(可能產生死循環)
eg:ln a1 al.link
軟鏈接:稱爲符號鏈接 ln -s 文件(相對於軟鏈接的路徑) 快捷方式、和windows的硬鏈接很相似、可以跨設備、不關心文件、只關心文件名、相對於軟連接的地址而不是當前位置的地址(在創建軟連接的時候,如果原始文件要寫相對路徑,一定是相對於軟連接的路徑)
eg:ln -s ../f1 /data/d1/f1.link
rm -rf d1.link 刪除軟鏈接 rm -rf d1.link/刪除文件
二者不同之處
1、本質:硬鏈接:同一個文件多個名字,軟鏈接不同文件
2、跨分區:硬鏈接不能跨分區、軟鏈接可以
3、目錄:硬鏈接不能用於目錄、軟鏈接可以
4、相互關係:硬鏈接沒有依賴關係、刪除不影響;軟鏈接有依賴關係
5、inode編號:硬鏈接相同、軟鏈接不同
6、路徑問題:原始文件路徑
7、鏈接數:硬鏈接會增加鏈接數、軟鏈接不會增加鏈接數
8、文件類型
9、顏色不一樣
10、命令不同 ln -s
4、Linux上的文件管理類常用命令
1)cp複製
-i 覆蓋前提示
-n 不覆蓋,注意兩者順序
-r,-R 遞歸複製目錄及內部的所有內容
-a 歸檔,相當於-dR --preserv=all
-d --no-dereference --preserv=liinks 不復制原文件,只複製鏈接名
--preserv[=ATTR_LIST]
-p 等同--preserv=mode,ownership,timestamp
-v --verbose
-f --force
-u --update只複製源比目標更新文件或目錄不存在的文件
-b 目錄存在,覆蓋前先備份,形式爲filename~
--backup=numbered目標存在,覆蓋前先備份加數字
4)移動和重命名文件mv
常用選項:
-i 交互式
-f 強制
-b目標存在,覆蓋前先備份
5)刪除rm
常用選項:
-i 交互式
-f 強制刪除
-r 遞歸
--no-preserve-root 刪除/
6)目錄操作
tree顯示目錄樹
-d:只顯示目錄
-L level:指定顯示的層級數目
-P pattern:只顯示指定pattern匹配到的路徑
mkdir 創建目錄
-p:存在於不報錯,且可自動創建所需的各目錄
-v:顯示詳細信息
-m MODE:創建目錄時直接指定權限
rmdir刪除空目錄
-p遞歸刪除父空目錄
-v:顯示詳細信息
rm -r 遞歸刪除目錄樹
5、複製/etc/profile至/tmp/目錄,用查找替換命令刪除/tmp/profile文件中的行首的空白字符
cp /etc/profile /tmp/後在vim中使用替換:格式:s/要查找的內容/替換爲的內容/修飾符
//如果要替換全局的要%s/要查找的內容/替換爲的內容/g
6、在vim中設置tab縮進爲4個字符
1)打開終端vim /etc/vim/vimrc
2)輸入set tabstop= 4,保存後退出即可(注意:在設置時候set tabtop=4的=和4之間有空格)