文件系統分層結構:LSB Linux Standard Base
文件和目錄被組織成一個單根倒置樹結構
文件系統從根目錄下開始,用「/」表示
文件名稱區分大小寫
路徑分隔的 /
目錄名或文件名的長度不能超過 255 個字符
包括路徑在內文件名稱最長4095個字節
藍色-->目錄 綠色-->可執行文件 紅色-->壓縮文件 淺藍色-->連接文 件 灰色-->其餘文件
除了斜槓和NUL,全部字符都有效.但使用特殊字符的目錄名和文件不推薦使用, 有些字符須要用引號來引用它們 node
用途 git
/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:臨時文件存儲位置
/proc: 用於輸出內核與進程信息相關的虛擬文件系統
/sys:用於輸出當前系統上硬件設備相關信息虛擬文件系統
/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: 保存系統兩次重啓之間產生的臨時數據 express
(1)stat filename 查看文件狀態
元數據包括:文件類型,權限,UID,GID , 連接數(指向這個文件名路徑名稱個數), 該文件的大小和不一樣的時間戳 , 指向磁盤上文件的數據塊指針 , 有關文件的其餘數據 vim
(2)使用touch命令刷新時間戳,時間戳有3種,Access:訪問時間 Modify:修改時間 Change:改變時間 centos
touch -a 改變access time 和change time touch -m 改變modification time touch -t 指定access time 和modification time,格式爲 [YYMMDDhhmm] touch -d 後面能夠接日期,也可使用 --date="日期或時間"
區別:api
ls 列出文件或者目錄緩存
用法:ls [options] [ files_or_dirs ] bash
ls -a 包含隱藏文件 ls -l 顯示額外的信息 ls -C 多列顯示文件 ls -R 目錄遞歸 ls -ld 目錄和符號連接信息 ls -1 文件分行顯示 ,單列顯示 ls -m 以,分隔文件和文件夾 ls –S 按從大到小排序 ls -t 按mtime排序 ls -u 配合-t選項,顯示並按atime重新到舊排序 ls -U 按目錄存放順序顯 ls -X 按文件後綴排序 ls - F 在輸出項後追加文件的類型標識符
示例:[root@centos7 data]#ls -a /data/ 查看/data下的文件,包括隱藏文件
. .. access_log add a.txt .bash_history .bash_logout .bash_profile .bashrc
[root@centos7 data]#ls -l /data/ 長格式顯示/data下內容
total 8896
-rw-r--r-- 1 root root 9080283 Nov 26 21:43 access_log
-rw-r--r-- 1 root root 117 Dec 2 01:34 add
-rw-r--r-- 1 root root 6 Dec 2 22:32 a.txt[root@centos7 data]#ls -lh /data/ 人易讀方式查看文件
total 8.7M
-rw-r--r-- 1 root root 8.7M Nov 26 21:43 access_log
-rw-r--r-- 1 root root 117 Dec 2 01:34 add
-rw-r--r-- 1 root root 6 Dec 2 22:32 a.txt[root@centos7 data]#ls -i /data/ 查看/data下文件的inode號
73 access_log 75 a.txt 113 git 72 lsl 79 profile [root@centos7 data]#ls -R /data 遞歸查看/data下的文件及文件夾
/data:
access_log add a.txt b.txt git goole.txt lsl profil profile project scripts43 varnish wang yinglianjie
/data/git:
/data/scripts43:
arg.sh backup.sh diskcheck.sh hello.sh rm2.sh rm.sh scp10.sh systeminfo.sh useradd.sh user.sh[root@centos7 data]#ls -1F /data/ 顯示不一樣文件的類型且添加對應標識
架構
b.txt
scripts43/ide
ls -l --time=atime /data 查看讀時間 ls -l --time=ctime /data 查看文件狀態時間 ls -l --time=mtime /date 查看文件的修改時間
stat 查看文件狀態
stat /data/pro `[root@centos7 data]#stat /data/pro` File: ‘/data/pro’ Size: 1825 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 87 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2019-12-05 01:36:07.488832542 +0800 Modify: 2019-12-05 01:36:07.488832542 +0800 Change: 2019-12-05 01:38:15.188840247 +0800 Birth: -
file 查看文件狀態
touch 建立文件,默認狀況下touch會建立文件大小爲0的空文件,若是文件存在,則將更改文件的ctime、atime、mtime
格式:touch [OPTION]... FILE...
經常使用選項:
-a 僅改變 atime和ctime -m 僅改變 mtime和ctime -t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的時間戳 -c 若是文件不存在,則不予建立
cp複製文件和目錄
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE…
cp SRC DEST
若是目標不存在:新建DEST,並將SRC中內容填充至DEST中;
若是目標存在:若是DEST是文件:將SRC中的內容覆蓋至DEST中;
若是DEST是目錄:在DEST下新建與原文件同名的文件,並將SRC中內容 填充至新文件中.
p經常使用選項:
-i 覆蓋前提示 -n 不覆蓋,注意二者順序 -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 -v --verbose 示命令執行過程 -f --force 強制覆蓋,不做覆蓋提醒; -u --update 只複製源比目標更新文件或目標不存在的文件 -b 目標存在,覆蓋前先備份,形式爲 filename~ --backup=numbered 目標存在,覆蓋前先備份加數字後綴 -S 執行備份文件的後綴,默認爲~
示例:
[root@centos7 data]#cp /data/dir2 /tmp/bak 不能直接進行目錄複製
cp: omitting directory ‘/data/dir2’
[root@centos7 data]#cp -r /data/dir2 /tmp/bak 複製目錄須要加-r
[root@centos7 data]#cp -i /data/dir2/filee /tmp/bak/dir2/ 目標文件存在,覆蓋前提示
cp: overwrite ‘/tmp/bak/dir2/filee’? y
[root@centos7 data]#cp -bi /data/dir2/filef /tmp/bak/dir2/ 覆蓋前將文件進行備份
cp: overwrite ‘/tmp/bak/dir2/filef’? y
[root@centos7 data]#ll /tmp/bak/dir2/filef
-rw-r--r-- 1 root root 0 Dec 5 10:53 /tmp/bak/dir2/filef
-rw-r--r-- 1 root root 0 Dec 5 10:52 /tmp/bak/dir2/filef~
[root@centos7 data]#cp -a /data/dir1 /tmp/ 歸檔目錄dir1,文件屬性不變
[root@centos7 data]#ll /data/dir1 /tmp/dir1
/data/dir1:
total 0
-rw-r--r-- 1 root root 0 Dec 5 10:43 filea
-rw-r--r-- 1 root root 0 Dec 5 10:43 fileb
-rw-r--r-- 1 root root 0 Dec 5 10:51 filec
-rw-r--r-- 1 root root 0 Dec 5 10:51 filed
/tmp/dir1:
total 0
-rw-r--r-- 1 root root 0 Dec 5 10:43 filea
-rw-r--r-- 1 root root 0 Dec 5 10:43 fileb
-rw-r--r-- 1 root root 0 Dec 5 10:51 filec
-rw-r--r-- 1 root root 0 Dec 5 10:51 filed
[root@centos7 ~]#cp -S .bak /data/dir1/filea /tmp/dir1/ 指定備份文件的後綴爲.bak
cp: overwrite ‘/tmp/dir1/filea’? Y
[root@centos7 ~]#ll /tmp/dir1/filea
-rw-r--r-- 1 root root 0 Dec 5 11:02 /tmp/dir1/filea
-rw-r--r-- 1 root root 0 Dec 5 10:43 /tmp/dir1/filea.bak
mv 移動文件或目錄
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
經常使用選項:
-i --interactive 交互式,覆蓋前先詢問用戶確認 -f --force 強制覆蓋重複文件或目錄 -b 目標存在,覆蓋前先備份 -u --update當源文件比目標文件新或者目標文件不存在時才執行 -v, --verbose 列出操做過程
示例:
使用mv對文件重命名:
[root@centos7 data]#mv /data/f2 /data/f2.bak
[root@centos7 data]#ll /data/f2.bak
-rw-r--r-- 1 root root 9 Dec 2 10:55 /data/f2.bak
移動文件
[root@centos7 data]#mv /data/f3 /tmp/bak
[root@centos7 data]#ll /tmp/bak/f3
-rw-r--r-- 1 root root 9 Dec 2 10:55 /tmp/bak/f3
rename 批量重命名
用法:rename [options] expression replacement file...
示例
[root@centos7 data]#rename -v .txt .exe *.txt
a.txt -> a.exe
b.txt -> b.exe
goole.txt ->goole.exe
rm 刪除文件或者目錄
用法:rm [OPTION]... FILE...
經常使用選項:
-i 交互式 -f 強制刪除 -r, -R 遞歸 -d 刪除空目錄文件,非空目錄不能刪除 -v 顯示詳細過程 --no-preserve-root 刪除/ --preserve-root 不遞歸刪除/
示例:
[root@centos7 data]#rm -i dir1 默認不能刪除目錄
rm: cannot remove ‘dir1’: Is a directory
[root@centos7 data]#rm -ir dir1 刪除前確認
rm: remove directory ‘dir1’? y
[root@centos7 data]#rm -vr dir2 遞歸刪除文件夾,並顯示被刪除的內容
rm: remove directory ‘dir2’? y
removed directory: ‘dir2’
[root@centos7 data]#rm -rf dir3 強制遞歸刪除目錄dir3
[root@centos7 data]#touch /data/dir4/dir4.txt
[root@centos7 data]#rm -d /data/dir4 -d不能刪除不爲空的目錄
rm: cannot remove ‘/data/dir4’: Directory not empty
[root@centos7 data]#rm -rf /data/dir
[root@centos7 data]#ls -d dir*
dir5
[root@centos7 data]#rm -- -wang 刪除以-開通的文件
rm: remove regular empty file ‘-wang’? y
[root@centos7 data]#ll ./-wang
ls: cannot access ./-wang: No such file or directory
在擴展命令模式中輸入:%s/^[[:space:]]\+//
set tabstop=4 一、在vim ~/.vimrc 中設置,對該用戶的全部vim編輯生效 二、在某個vim編輯的擴展命令模式中輸入:set tabstop=4,對單個vim臨時生效;
架構班做業看這裏:
一、編譯安裝tengine,配置虛擬主機,實現api.x.com代理9001端口。(x.com爲本身定義的域名)
二、配置haproxy,實現7層代理,/a 路徑代理轉發到a集羣, /b 路徑代理轉發到b集羣!