文件系統結構元素
創建和查看文件 複製、轉移和刪除文件
首先簡要介紹一下 文件系統與目錄結構
根目錄爲一級目錄 /
根目錄下有bin boot dev etc home root run sbin tmp usr var 這些爲二級目錄
home下 有 Alice bob eve 而usr 下 有bin local sbin tmp 和var下的tmp這些爲三級目錄
文件和目錄被組織成一個單根倒置樹結構
文件系統從根目錄下開始,用“/”表示 根文件系統(rootfs):root filesystem
以.開頭的文件爲隱藏文件 路徑分隔的 /
文件有兩類數據: 元數據:metadata 數據:data 文件系統分層結構:LSB Linux Standard Base FHS: (Filesystem Hierarchy Standard)
文件顏色可分爲五類 分別爲
藍色-->目錄 綠色-->可執行文件 紅色-->壓縮文 件 淺藍色-->鏈接文件 灰色-->其他文件
除了斜槓和NUL,所有字符都有效.但使用特殊字符的目錄名和 文件不推薦使用,有些字符需要用引號來引用它們。
標準Linux文件系統(如ext4),文件名稱大小寫敏感。例如 :MAIL, Mail, mail, mAiL
下面介紹一下 各級目錄的具體作用 和所存儲的文件
/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, shar
/var: variable data files cache: 應用程序緩存數據目錄
lib: 應用程序狀態信息數據 local:專用於爲/usr/local下的應用程序存儲可變數據;
lock: 鎖文件 log: 日誌目錄及文件 opt: 專用於爲/opt下的應用程序存儲可變數據;
run: 運行中的進程相關數據;通常用於存儲進程pid文件 spool: 應用程序數據池
tmp: 保存系統兩次重啓之間產生的臨時數據
/proc: 用於輸出內核與進程信息相關的虛擬文件系統
/sys:用於輸出當前系統上硬件設備相關信息虛擬文件系統
/selinux: security enhanced Linux,selinux相關的安全策 略等信息的存儲位置
Linux上的應用程序的組成部分
主要分爲 二進制程序 庫文件 配置文件 和 幫助文件
二進制程序:/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
linux 的 文件類型 大致有下面幾項
-:普通文件 d: 目錄文件 b: 塊設備 c: 字符設備 l: 符號鏈接文件 p: 管道文件pipe s: 套接字文件socket
當然目錄的絕對路徑 有時是有變化的 特別是在 centos6.8 和7之間的區別
例如
/bin 和 /usr/bin /sbin 和 /usr/sbin /lib 和/usr/lib /lib64 和 /usr/lib64
還有一些 顯示當前 路徑的寫法 命令行
每個shell和系統進程都有一個當前的工作目錄 CWD:current work directory 顯示當前shell CWD的絕對路徑 #pwd: printing working directory
例如 絕對路徑 和相對路徑的 區別 和用法
絕對路徑 以正斜槓開始 完整的文件的位置路徑 可用於任何想指定一個文件名的時候 相對路徑名 不以斜線開始 指定相對於當前工作目錄或某目錄的位置 可以作爲一個簡短的形式指定一個文件名
cd 改變目錄 爲絕對或相對路徑: cd /home/joshua/work cd project/docs 到上一級目錄: cd .. 爲了你的主目錄: cd 到以前的工作目錄: cd 相關的環境變量: PWD:保存了當前目錄路徑 OLDPWD:上一次所在目錄路徑
列出當前目錄的內容或指定目錄 用法: ls [options] [files_or_dirs] Example: ls -a 包含隱藏文件 ls -l 顯示額外的信息 ls -R 目錄遞歸通過 ls -ld 目錄和符號鏈接信息 ls -1 文件分行顯示 ls –S 按從大到小排序 ls –u 配合-t選項,顯示並按atime從新到舊排序 ls –U 不排序按目錄存放順序顯示
文件通配符的使用
* 匹配零個或多個字符
? 匹配任何單個字符
~ 當前用戶家目錄
~username 用戶家目錄
~+ 當前工作目錄
~- 前一個工作目錄
[0-9] 匹配一個數字範圍
[a-z]:大寫和小寫字母
[A-Z]:大寫字母
[wxc] 匹配列表中的任何的一個字符
[^wxc] 匹配列表中的所有字符以外的字符
預定義的字符類:#man 7 glob
[:digit:]:任意數字,相當於0-9
[:lower:]:任意小寫字母
[:upper:]: 任意大寫字母
[:alpha:]: 任意大小寫字母
[:alnum:]:任意數字或字母
[:space:]:空格
[:punct:]:標點符號
文件的 複製 移動 刪除 創建 空文件夾 和tree命令的用法
cp常用選項
-i:交互式
-r, -R: 遞歸複製目錄及內部的所有內容;
-a: 歸檔,相當於-dR --preserv=all
-d:--no-dereference --preserv=links 不復制原文件,只複製鏈接名
--preserv[=ATTR_LIST] mode: 權限 ownership: 屬主屬組 timestamp: links xattr context all
-p: 等同--preserv=mode,ownership,timestamp
移動和重命名文件
mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]...
-t DIRECTORY SOURCE... 常用選項:
-i: 交互式 -
f: 強制
刪除的用法
rm [OPTION]... FILE... 常用選項:
-i: 交互式
-f: 強制刪除
-r: 遞歸
--no-preserve-root
例: #rm -rf /
目錄操作tree的 用法
tree 顯示目錄樹
-d: 只顯示目錄
-L level:指定顯示的層級數目
-P pattern: 只顯示由指定pattern匹配到的路徑
mkdir 創建目錄
-p: 存在於不報錯,且可自動創建所需的各目錄;
-v: 顯示詳細信息 -m MODE: 創建目錄時直接指定權限;
rmdir 刪除空目錄
-p: 遞歸刪除父空目錄
-v: 顯示詳細信息
rm -
r 遞歸刪除目錄樹
最後還有 命名別名
編輯配置給出的新配置不會立即生效;
bash進程重新讀取配置文件:
source /path/to/config_file . /path/to/config_file
撤消別名:unalias unalias [-a] name [name ...] 如果別名同原命令同名,如果要執行原命令,可使用 “\COMMAND” ’COMMAND’ /PATH/COMMAND:外部命令