linux運維基礎文件管理
linux文件系統
文件和目錄被組織成一個單根倒置樹結構
文件系統從根目錄下開始,用“/”表示
根文件系統(rootfs):root filesystem
文件名稱區分大小寫
以.開頭的文件為隱藏文件
路徑分隔的?/
文件有兩類數據:
元數據:metadata
數據:data
文件系統分層結構:LSB Linux Standard Base
FHS: (Filesystem Hierarchy Standard)
1文件名規則
文件名最長255個字節
包括路徑在內文件名稱最長4095個字節
藍色-->目錄?? 綠色-->可執行文件??? 紅色-->壓縮文件?? 淺藍色-->鏈接文件? 灰色-->其他文件
標準Linux文件系統(如ext4),文件名稱大小寫敏感。例如:MAIL,?Mail,?mail, mAiL
2文件系統結構
/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放於此目錄
/bin:供所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序
/sbin:管理類的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序
/lib:啟動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules)
/lib64:專用於x86_64系統上的輔助共享庫文件存放位置
/home/USERNAME:普通用戶家目錄
/root:管理員的家目錄
/media:便攜式移動設備掛載點
/mnt:臨時文件系統掛載點
/dev:設備文件及特殊文件存儲位置
/opt:第三方應用程序的安裝位置
/srv:系統上運行的服務用到的數據
/tmp:臨時文件存儲位置
/usr: universal shared, read-only data
/var: variable data files
/proc: 用於輸出內核與進程信息相關的虛擬文件系統
/sys:用於輸出當前系統上硬件設備相關信息虛擬文件系統
/selinux: security enhanced Linux,selinux相關的安全策略等信息的存儲位置
二進制程序:/bin, /sbin, /usr/bin, /usr/sbin, /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
1.4 Linux下的文件類型
-:普通文件
d: 目錄文件
b: 塊設備
c: 字符設備
l: 符號鏈接文件
p: 管道文件pipe
s: 套接字文件socket
1.5 絕對和相對路徑
絕對路徑
以正斜杠開始
完整的文件的位置路徑
可用於任何想指定一個文件名的時候
相對路徑名
不以斜線開始
指定相對於當前工作目錄或某目錄的位置
可以作為一個簡短的形式指定一個文件名
基名:basename
目錄名:dirname
1.6更改目錄
cd 改變目錄
使用絕對或相對路徑:
cd?/home/wang/
cd?home/wang
切換至父目錄: cd?..
切換至當前用戶主目錄: cd
切換至以前的工作目錄: cd?-
選項:-P
相關的環境變量:
PWD:當前目錄路徑
OLDPWD:上一次目錄路徑
1.7列出目錄內容
列出當前目錄的內容或指定目錄
用法:ls [options] [files_or_dirs]
示例:
ls -a?包含隱藏文件
ls -l 顯示額外的信息
ls -R? 目錄遞歸通過
ls -ld? 目錄和符號鏈接信息
ls -1 文件分行顯示
ls –S 按從大到小排序
ls –t 按mtime排序
ls –u 配合-t選項,顯示並按atime從新到舊排序
ls –U 按目錄存放順序顯示
ls –X 按文件後綴排序
1.8查看文件狀態
stat
文件:metadata, data
三個時間戳:
access time:訪問時間,atime,讀取文件內容
modify time: 修改時間, mtime,改變文件內容(數據)
change time: 改變時間, ctime,元數據發生改變
1.9文件通配符
*?匹配零個或多個字符
??匹配任何單個字符
~ 當前用戶家目錄
~mage 用戶mage家目錄
~+ 當前工作目錄
~- 前一個工作目錄
[0-9]? 匹配數字範圍
[a-z]:字母
[A-Z]:字母
[wang]? 匹配列表中的任何的一個字符
[^wang]?匹配列表中的所有字符以外的字符
1.10復制文件和目錄cp
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
SRC是文件:
如果目標不存在:新建DEST,並將SRC中內容填充至DEST中
如果目標存在:
如果DEST是文件:將SRC中的內容覆蓋至DEST中
基於安全,建議為cp命令使用-i選項
如果DEST是目錄:在DEST下新建與原文件同名的文件,並將SRC中內容填充至新文件中
1.11移動和重命名文件
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用選項:
-i: 交互式
-f: 強制
1.12刪除
rm [OPTION]... FILE...
常用選項:
-i: 交互式
-f: 強制刪除
-r: 遞歸
--no-preserve-root
1.13目錄操作
tree 顯示目錄樹
-d: 只顯示目錄
-L level:指定顯示的層級數目
-P pattern: 只顯示由指定pattern匹配到的路徑
mkdir?創建目錄
-p: 存在於不報錯,且可自動創建所需的各目錄
-v: 顯示詳細信息
-m MODE: 創建目錄時直接指定權限
rmdir?刪除空目錄
-p: 遞歸刪除父空目錄
-v: 顯示詳細信息
rm -r?遞歸刪除目錄樹
1.14?inode
?inode(index node)表中包含文件系統所有文件列表
2.1標準輸入和輸出
程序:指令+數據
讀入數據:Input
輸出數據:Output
打開的文件都有一個fd: file descriptor (文件描述符)
Linux給程序提供三種I/O設備
標準輸入(STDIN)-0 默認接受來自鍵盤的輸入
標準輸出(STDOUT)-1 默認輸出到終端窗口
標準錯誤(STDERR)-2 默認輸出到終端窗口
I/O重定向:改變默認位置
3管道
管道(使用符號“|”表示)用來連接命令
命令1 | 命令2 | 命令3 | …
將命令1的STDOUT發送給命令2的STDIN,命令2的STDOUT發送到命令3的STDIN
STDERR默認不能通過管道轉發,可利用2>&1 或 |& 實現
最後一個命令會在當前shell進程的子shell進程中執行用來
組合多種工具的功能
ls | tr ‘a-z‘ ‘A-Z‘
less :一頁一頁地查看輸入
ls?-l?/etc?|?less
mail: 通過電子郵件發送輸入
echo?"test?email"?|?mail? -s "test"[email protected]
lpr:把輸入發送給打印機
echo?"test?print"?|?lpr?-P?printer_name
linux運維基礎文件管理