一、Linux目錄樹
Filesystem Hierarchy Standard(文件系統(tǒng)層次化標(biāo)準(zhǔn))
/boot: 系統(tǒng)啟動相關(guān)的文件,如內(nèi)核遇汞、initrd软驰,以及grub(bootloader)
/dev: 設(shè)備文件
/etc:配置文件
/home:用戶的家目錄,每一個用戶的家目錄通常默認(rèn)為/home/USERNAME
/root:管理員的家目錄
/lib:庫文件
/media:掛載點目錄请唱,移動設(shè)備
/mnt:掛載點目錄弥咪,額外的臨時文件系統(tǒng)
/opt:可選目錄,第三方程序的安裝目錄
/proc:偽文件系統(tǒng)十绑,內(nèi)核映射文件
/sys:偽文件系統(tǒng)聚至,跟硬件設(shè)備相關(guān)的屬性映射文件
/tmp:臨時文件, /var/tmp
/var:可變化的文件,數(shù)據(jù)日志等
/bin: 可執(zhí)行文件, 用戶命令
/sbin:管理命令
二、Linux命令
Linux分為內(nèi)部命令和外部命令
#內(nèi)部命令
type cd
#結(jié)果 cd is a shell builtin
#外部命令
type ifconfig
#結(jié)果 ifconfig is /sbin/ifconfig
內(nèi)部命令用help去查看本橙,外部命令可以用man學(xué)習(xí)
yum install man man-pages
man ifconfig
whereis 定位外部命令在哪
whereis ifconfig
file 查看文件信息
file /sbin/ifconfig
#結(jié)果 /sbin/ifconfig: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
#ELF是二進(jìn)制編碼可執(zhí)行程序
取環(huán)境變量PATH值,使用$
echo $PATH #大小寫敏感
#結(jié)果 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
#冒號分割每個路徑
三扳躬、文件操作命令
df 顯示磁盤使用情況
df -h
#h 顯示文件大小單位為M
du 顯示文件系統(tǒng)使用情況
du -sh ./*
#查看這個目錄下所有元素占比
ls 顯示目錄
ls -l
-rw-------. 1 root root 900 Nov 18 21:33 anaconda-ks.cfg
-rw-r--r--. 1 root root 8815 Nov 18 21:33 install.log
-rw-r--r--. 1 root root 3384 Nov 18 21:32 install.log.syslog
-rw-r--r- 第一位代表文件類型 rw- 用戶權(quán)限 -r-組權(quán)限 -r-其他人權(quán)限
文件類型:- 表示普通文件 d表示目錄 b或c表示設(shè)備文件(字節(jié)型設(shè)備/字符型設(shè)備)
1表示硬鏈接數(shù)量 root用戶 root用戶組
cd 切換工作目錄
cd /etc 跳轉(zhuǎn)到指定文件夾
cd 回用戶自己的家
cd - 退回
cd ~god 回到普通用戶的家(root才有這個權(quán)限)
pwd 顯示當(dāng)前工作目錄
pwd 當(dāng)前路徑
mkdir 創(chuàng)建目錄
mkdir abc
mkdir -p ./a/b/c 深度創(chuàng)建目錄
mkdir ./abc/{x,y,z}dir 水平創(chuàng)建目錄
rm 刪除
rm xxxx 需要輸入yes刪除
rm -f xxxx 強(qiáng)制刪除,不需確認(rèn)
rm -r a 遞歸刪除,直接刪除目錄會報錯
rm -rf a 強(qiáng)制遞歸刪除,不需確認(rèn)
cp 拷貝
cp install.log /tmp
cp -r a temp 遞歸拷貝
mv 移動
mv anaconda-ks.cfg /tmp 剪切
mv install.log ooxx 重命名
ln 鏈接
ln 快捷方式/鏈接勋功,修改一個另一個會變化
# -rw-------. 1 root root 900 Nov 18 21:33 anaconda-ks.cfg 里面數(shù)字描述 硬鏈接數(shù)量
ln install.log ooxx.txt
#硬鏈接 類似java兩個引用指向一個對象坦报,刪除時只會刪除引用方式,底層物理文件不會變化
ln -s sxt.txt bjsxt.log
#軟鏈接 類似于windows里的快捷方式
stat 元數(shù)據(jù)
stat profile #查看文件元數(shù)據(jù)
File: `profile'
Size: 1796 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 9961475 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-11-19 18:26:35.653171729 +0800
Modify: 2019-11-19 18:26:35.653171729 +0800
Change: 2019-11-19 18:26:35.654171903 +0800
Change描述文件元數(shù)據(jù)發(fā)生變化時間
Modify記錄內(nèi)容被修改時間
Access記錄訪問時間
touch
touch 一個文件會把元數(shù)據(jù)觸摸為新的時間點
touch bluaa.txt 會新建一個空的文本文件
四狂鞋、文本操作命令
0.文本模式:
編輯模式:按鍵具有編輯文本功能:默認(rèn)打開進(jìn)入編輯模式
輸入模式:按鍵本身意義
末行模式:接受用戶命令輸入
編輯 --> 輸入:
i: 在當(dāng)前光標(biāo)所在字符的前面片择,轉(zhuǎn)為輸入模式;
I:在當(dāng)前光標(biāo)所在行的行首骚揍,轉(zhuǎn)換為輸入模式
a: 在當(dāng)前光標(biāo)所在字符的后面字管,轉(zhuǎn)為輸入模式;
A:在當(dāng)前光標(biāo)所在行的行尾信不,轉(zhuǎn)換為輸入模式
o: 在當(dāng)前光標(biāo)所在行的下方嘲叔,新建一行,并轉(zhuǎn)為輸入模式抽活;
O:在當(dāng)前光標(biāo)所在行的上方硫戈,新建一行,并轉(zhuǎn)為輸入模式下硕;
輸入 --> 編輯:
ESC
編輯 --> 末行:
:
末行 --> 編輯:
ESC, ESC
1.查看文本命令
#讀文件
cat /etc/profile
#先顯示一屏丁逝,按回車多顯示下一行,按空格往下翻梭姓,按b往回翻霜幼,翻到最后退出
more /etc/profile
#先顯示一屏,按回車多顯示下一行誉尖,按空格往下翻罪既,按b往回翻,翻到最后不退出,按q退出
less /etc/profile
#顯示頭部10行
head /etc/profile
#顯示頭部2行
head -2 /etc/profile
#顯示尾部10行
tail /etc/profile
#顯示尾部2行
tail -2 /etc/profile
#實時查看
tail -f /etc/profile
管道 |
#只顯示第四行
head -4 /etc/profile | tail -1
ls -l /ect | more
echo "/" | xargs ls -l
#xargs從標(biāo)準(zhǔn)輸入得到內(nèi)容琢感,給后面命令作為參數(shù)丢间,執(zhí)行后面命令
xargs:
命令
1.在標(biāo)準(zhǔn)輸入中讀取到的內(nèi)容!
2.自己的參數(shù)理解為一個字符串驹针,模仿shell千劈,做blank切分,第一個子字符串為命令
3.將步驟1的內(nèi)容做為步驟2的命令的選項參數(shù)拼接起來
4.執(zhí)行得到的結(jié)果
2.編輯文本命令 vi
打開文件
#打開文件
vi /etc/profile
#打開后光標(biāo)直接定位到了22行
vi +22 /etc/profile #:set nu 查看行
#打開文件牌捷,定位至最后一行
vi + /etc/profile
#打開文件墙牌,定位至第一次被pattern匹配到的行的行首
vi +/pattern /etc/profile
關(guān)閉文件
編輯模式:按Shift+zz 保存并退出,不需要冒號暗甥。
末行模式:
:q 退出 沒有動過文件
:wq 保存并退出 動過了喜滨,不后悔
:q! 不保存并退出 動過了,后悔了
:w 保存
:w! 強(qiáng)行保存
:wq --> :x
編輯模式鍵盤功能
光標(biāo)移動 h: 左撤防;j: 下虽风;k: 上;l: 右
單詞
w: 移至下一個單詞的詞首
e: 跳至當(dāng)前或下一個單詞的詞尾
b: 跳至當(dāng)前或前一個單詞的詞首
行內(nèi)
0: 絕對行首
^: 行首的第一個非空白字符
$: 絕對行尾
行間
G:文件最后一行
3G:第3行
gg:文件開頭
翻屏
ctrl:f寄月,b
刪除&替換 單個字符
x:刪除光標(biāo)位置字符
3x:刪除光標(biāo)開始3個字符
r:替換光標(biāo)位置字符
刪除命令 : d
dw 刪單詞
2dw 刪n個單次
dd 刪行
2dd 刪n行
復(fù)制粘貼&剪切
yw 復(fù)制單詞
2yw 復(fù)制n個單詞
yy 復(fù)制1行
2yy 復(fù)制n行
p 向下粘貼
P 向上粘貼
撤銷&重做
u 撤銷
ctrl+r 重做 撤銷的操作
末行模式操作(Shift+:)
:set nu
:set nonu
:set readonly
查找
:/ooxx
n向下找辜膝,N向上找
s查找并替換
s/str1/str2/gi
#2到末行 替換after
:2,$s/after/before/gi
#/:臨近s命令的第一個字符為邊界字符:/,@漾肮,#
#g:一行內(nèi)全部替換
#i:忽略大小寫
#范圍
#n:行號
#.:當(dāng)前光標(biāo)行
#+n:偏移n行
#$:末尾行厂抖,$-3
#%:全文
鍵盤功能配合查找功能
:1,$y 復(fù)制第1行到最后一行
:2,.y 復(fù)制第2行到當(dāng)前光標(biāo)行
:2,.d 刪除第2行到當(dāng)前光標(biāo)行