Linux目錄和檔案管理
linux目錄結構:
FHS(filesystem hierachy standard 目標層次標準)定義了兩層規範:
第一層是“/”目錄下的各個目錄應該放什麼資料檔案。
第二層是針對/usr和/var這兩個目錄的子目錄來定義。
根目錄:
所有分割槽,目錄,檔案等的位置起點
整個樹形目錄結構中,使用獨立的一個''/"表示
常見子目錄及作用:
/root:系統管理員root的宿主目錄 (預設情況下只有root使用者的宿主目錄在根目錄下而不是在“/home”目錄下)
/bin:所有使用者可執行的命令 (絕對不可以單獨劃分一個分割槽掛載到它下面去)
/boot:系統核心,啟動檔案 (存放的是和系統啟動相關的檔案,可以劃分單獨的一個分割槽,也可以不單獨劃分。/boot不能出現在lvm邏輯卷分割槽裡)
/dev:裝置檔案 (不可單獨劃分一個分割槽)
/etc:配置檔案 (絕對不可以單獨劃分一個分割槽)
/home:普通使用者的宿主目錄 (用來儲存家目錄的目錄,不是家目錄)
/var:日誌檔案等 (存放資料庫和日誌檔案,以及一些快取檔案,存放都是經常變化型的檔案)
/usr:應用程式 (可以單獨劃分一個分割槽)
/sbin:管理員可執行的管理命令 (不可以單獨劃分一個分割槽)
檢視檔案內容cat命令
拓展:> 為覆蓋寫入 >>為追加寫入 皆為重定向符號
cat命令用途:顯示檔案內容
more命令用途:全屏方式分頁顯示檔案內容
more 【選項】 檔名..
less命令用途:與more命令相同,但是擴充套件功能更多
less 【選項】 檔名...
head命令用途:檢視檔案開頭的一部分內容(前10行)
tail命令用途:檢視檔案末尾的一部分內容(後10行)
cat 一次性顯示所以的內容 -n檔名 顯示檔案行數
more 分頁顯示
less 分頁顯示,但是有查詢功能
head 只顯示前幾行內容 預設是前10行
tail 只顯示檔案末尾的內容 預設是末尾10行 -f 跟蹤檔案尾部內容的動態更新
wc命令用途:統計檔案中的單詞數量等資訊
wc [選項]... 目標檔案... -l 統計行數 -c 統計位元組數 -w統計單詞個數
grep命令用途:在檔案中查詢並顯示包含指定字串的行
grep [選項]... 查詢條件 目標檔案 -i 查詢時忽略大小寫 -v反轉查詢,輸出與查詢條件不相符的行
“^...”開頭 “...$”結尾 ^$表示空行
gzip命令 bzip2命令用途:製作壓縮檔案,解開壓縮檔案
常用命令:-9 最大級別 -d解壓縮
gzip -9 檔名...
bzip2 -9 檔名...
gzip -d 目錄.gz
bzip2 -d 目錄 .bzip2
example:
find / -uid 101 -exec rm -rf {} \;
檢視系統裡面uid為1001的檔案,並執行下面操作:全部刪除
-exec:執行下面操作;
{}:前面命令的結果值;
"\;" :結尾固定命令格式
example2:
find / uid 1001 -exec mv {} /opt \;
將查詢到的內容全部全部移到opt
tar命令用途:製作歸檔檔案,釋放歸檔檔案 / 製作壓縮包檔案,解壓壓縮包檔案
tar 【選項】... 歸檔檔名 原始檔或目錄(製作壓縮包檔案的命令)
tar【選項】...歸檔檔名 【-C目錄目標】(解壓壓縮包檔案的命令)
選項:
c:建立.tar格式的包檔案 (壓縮)
x:解開.tar.格式的包檔案(解壓縮)
t:列表檢視包內的檔案(檢視壓縮後)
z:呼叫gzip程式進行壓縮或解壓
j:呼叫bzip2程式進行壓縮或解壓
v:輸出詳細資訊
f:表示使用歸檔檔案
P:打包時保留原始檔案及目錄的許可權
C:解包時指定釋放的目標資料夾
注:固定引數是vf
czvf為歸檔gzip檔案
cjvf為歸檔bzip2檔案
tjvf檢視bzip2格式檔案
tzvf檢視gzip格式檔案
xf 檔名.bz2 -C /目錄 解壓bzip2檔案
xf 檔名.gz -C /目錄 解壓gzip檔案
文字編輯器vi命令的作用:
建立或修改文字檔案
維護linux系統中的各種配置檔案
vi:類unix作業系統的預設文字表機器
vim:vim是vi文字編輯器(一般簡稱為vi編輯器)的增強版本
vi編輯器的三種工作模式:
命令模式,輸入模式,末行模式
不同模式的切換:
vi 檔名:命令模式
i,a,o Esc:輸入模式
:和Esc:末行模式
命令模式進入到輸入模式:
a:在游標後輸入內容
A:在當前行的末尾輸入內容
o:在當前行的下面輸入內容
O:在當前行的上面輸入內容
i:在游標處輸入內容
I(大寫i):在當前行的行首輸入內容
命令模式下的跳轉命令:
G(shift+g):跳到檔案的最後一行
gg/1G:回到檔案的第一行行首;example:10gg(調到檔案的第10行)
H:跳到當前螢幕的第一行
M:跳到當前螢幕的中間
L:跳到當前螢幕的最後一行
w:一個單詞一個單詞的向右跳
b:一個單詞一個單詞的向左跳
命令模式下的複製和貼上命令:
yy:複製當前行 example:10yy:從當前行開始向下複製十行
p:將緩衝區中的內容貼上到游標位置處之後
P:貼上到游標位置之前
命令模式下刪除\撤銷\替換命令:
dd:刪除當前行 example:10dd:從當前開始向下刪除10行
x/del:刪除游標處的一個字元
u:撤銷上一步
U:用於取消對當前所做的所有編輯
ZZ:儲存當前的檔案內容並退出vi編輯器
ctrl+r:反撤消
r b:把游標所在處的字元替換成b;r n:把游標處的字元替換成n
R:從游標處連續向右替換直到按esc鍵停止 (游標處開始替換模式)
命令模式下檔案內容查詢:
/word:從上而下在檔案中查詢字串“word”
?word:從下而上在檔案中查詢字串“word”
n:定位下一個匹配的被查詢的字串
N:定位上一個匹配的被查詢的字串
輸入模式
就是寫入文字內容
末行模式儲存和退出:
w:儲存
w aa.log:把當前檔案另存為aa.log 放到當前目錄
w /tmp/ab.log:把當前檔案另存為ab.log放到/tmp目錄
q:退出
wq:儲存後退出 和x一樣
q!:不儲存退出
1090,1096 w 1090.log :把當前檔案的1090行到1096行,另存到當前目錄的1090.log中
1085,1088s /^/#/g:在1085行到1088行的行首輸入#
%s /^/#/g:所有行的行首輸入#
1085,1088s /^#//g:在1085行到1088行的行首去掉#
:set nu:顯示行號 (臨時顯示)
:set nonu:不顯示行號
開啟新檔案或讀入其他檔案內容
e /home/a.txt:在當前檔案下,開啟新的檔案進行編輯;
q!:兩個檔案都退出來了
:r aa.log:把當前目錄下的aa.log檔案讀取到當前檔案中,起到檔案合併的效果
:w 目錄:儲存
cat /目錄 /目錄 >> / 目錄 儲存
檔案內容替換
s /old/new:將當前行中查詢到的第一個字串“old”替換為“new”
s /old/new/g:將當前行中查詢到的所有字串“old”替換為“new”
#,# s/old/new/g:在行號"#,#"範圍內替換所有的字串“old”為“new”
% s/old/new/g:在整個檔案範圍內替換所有的字串“old”為“new”
%s /^c/C/g:把當前文件中所有以c開頭的內容替換成C
s /old/new/c:在替換命令末尾加入c命令,將對每個替換動作提示使用者進行確認