Linux是嚴(yán)格區(qū)分大小寫(xiě)的,如果沒(méi)有特別的說(shuō)明,保持小寫(xiě)
Linux所有的內(nèi)容都是以文件形式保存,不靠擴(kuò)展名區(qū)分文件類(lèi)型
命令之間都是有空格的,不要向英文字母一樣,全部擠在一起
系統(tǒng)命令
- 登錄基本信息:當(dāng)前登錄用戶(hù)名、主機(jī)名、當(dāng)前目錄
- (# 管理員用戶(hù)提示符,$ 普通用戶(hù)提示符)
- who:查看登入的用戶(hù)
- whoami:確認(rèn)自己的身份
- su + 用戶(hù)名:切換用戶(hù)
- history :查看當(dāng)前用戶(hù)運(yùn)行命令的歷史
- ipconfig :查看IP地址
- ping + 網(wǎng)址 :檢查網(wǎng)絡(luò)是否通暢(ping www.baidu.com)
目錄操作命令
- pwd:顯示當(dāng)前路徑 (print working director
-
cd :切換目錄 (change directory)
1, cd .\ 當(dāng)前目錄
2,cd .. 切換到上級(jí)目錄
3,cd \ 切換到根目錄
4,cd ~ (或只有 cd) 切換到當(dāng)前用戶(hù)主目錄(home下以用戶(hù)名命名的文件夾)
5,cd \user\ -> cd bin 和 cd \user\ -> cd \bin 的區(qū)別
(cd bin 是從user下查找 bin文件;cd \bin 是從根目錄下查找bin文件) -
創(chuàng)建/刪除目錄
mkdir + 目錄名 :創(chuàng)建目錄 (make dirctory)
mkdir -p dir1/dir12/dir13 dir2/dir23 dir3 :一次創(chuàng)建多個(gè)帶層級(jí)的目錄
rmdir + 目錄名: 刪除空目錄 (remove dictory)
rm -r + 目錄名:刪除帶有文件的目錄
rm -rf + 目錄名/文件名:強(qiáng)制刪除目錄或文件
文件操作命令(重點(diǎn))
touch:創(chuàng)建文件
touch [路徑]file :創(chuàng)建一個(gè)文件名為file的文件,可以加后綴(路徑必須存在)
touch dir1/file1 file2 file3 :一次創(chuàng)建多個(gè)文件vim [路徑]文件名,再按 i 鍵進(jìn)入編輯狀態(tài)
esc鍵:退出編輯狀態(tài),再按shift+:,輸入以下命令:
wq (保存退出);q (退出不保存);q! (強(qiáng)制退出,不保存);write filename (內(nèi)容保存到新建文件中)
進(jìn)入文件后一些邊便捷方法:(按非編輯魔術(shù)下按shfit+:才能輸入)
1,輸入 /lemon:從光標(biāo)開(kāi)始處,向文件末尾搜索 lemon
2,輸入 ?lemon:從光標(biāo)開(kāi)始處,向文件首搜索 lemon
3,輸入 :set nu :顯示每一行的行數(shù)
4,按大寫(xiě)的 G,光標(biāo)定位到末尾;按小寫(xiě)的 g,定位到首行(非編輯模式下)ls :查看目錄及文件
1,Is [選項(xiàng)] 路徑,若沒(méi)有路徑則顯示當(dāng)前目錄的內(nèi)容
2,- a 顯示所有文件,包括隱藏文件
3,- l 顯示文件屬性
4,ls -a -l ./Linux/test1 :查看test1目錄下的所有文件并顯示屬性,包括隱藏文件cp :復(fù)制命令(copy)
1,基本用法:cp [選項(xiàng)] [路徑]文件名/目錄 目標(biāo)地址
2,- R 拷貝目錄和目錄下所有的目錄和文件
3,cp a.txt b.txt ,將a文件復(fù)制,且命名為b文件(目錄名)
4,cp dir1/dir11/file1 dir2/file2:將file1復(fù)制到dir2下,命名為file2
5,cp -R dir1/dir11 dir2/dir22:將dir11目錄及下面的文件復(fù)制到dir22目錄下,目錄名不變mv 移動(dòng)命令
1,move 文件名或目錄 目標(biāo)目錄
2,mv a.txt ../ 將a文件移動(dòng)到上級(jí)目錄(將文件移動(dòng)到另一個(gè)目錄沒(méi)有重命名)
3,mv a.txt ../b.txt 將a文件移動(dòng)到上級(jí)目錄并改名為b文件(將文件移動(dòng)到另一個(gè)目錄并且重命名)
4,mv dir1/dir12 dir2/dir22:將目錄dir12及下面的文件移動(dòng)到目錄dir22下rm 刪除文件或目錄
1,rm -f 強(qiáng)制刪除文件
2,rm -r 刪除目錄
3,rm -rf 強(qiáng)制刪除文件或目錄 (慎用)-
find 查找文件
1,用法:find [路徑] [選項(xiàng)] 查找內(nèi)容
2,常用選項(xiàng)有:- find . -name '*.log' 在當(dāng)前目錄查找以 .log 結(jié)尾的文件
- find ./dir -name '* test *' 在當(dāng)前目錄的dir目錄下查找文件名包含test的文件
- find / -name log 在根目錄查找 log 命令的目錄
grep 字符串 [路徑]文件名1 文件名2 :在指定文件中查找字符(串)并打印該行
grep 'hello word' test1/file1 file2 file3 在file1 file2 file3文件中串查找hello word 并打印所在行
經(jīng)常和管道符|一起使用,|grep 字符串cat 命令:顯示文件內(nèi)容
1,cat [路徑]文件名:顯示文本文件內(nèi)容
2,cat -n ./Linux/test1/file1 : 查看file1文件內(nèi)容,對(duì)所有行(包括空白行)進(jìn)行編號(hào),從1開(kāi)始
3, cat -b ./Linux/test1/file1 : 查看file1文件內(nèi)容,對(duì)所有非空白行進(jìn)行編號(hào)
4,cat -s ./Linux/test1/file1:查看file1文件內(nèi)容,有多行空行的只顯示一行空行
5,cat -e ./Linux/test1/file1 : 查看file1文件內(nèi)容,并且在每行的結(jié)尾處附加$符號(hào),包括空白行
6,cat -n file>file1,對(duì)file文件中每一行加上行號(hào)后然后寫(xiě)入到file1中,會(huì)覆蓋原來(lái)的內(nèi)容,文件不存在則創(chuàng)建它。
7,cat -n file>>file2,對(duì)file1文件中每一行加上行號(hào)后然后追加到file2中去,不會(huì)覆蓋原來(lái)的內(nèi)容,文件不存在則創(chuàng)建它。head :查看前幾行(不帶參數(shù)默認(rèn)獲取前10行)
heah file1 :查看file1文件的前10行
head -n 20 file1:查看file1的前20行tail :查看后幾行(不帶參數(shù)默認(rèn)獲取倒數(shù)10行)
tail file1 :查看file文件的倒數(shù)10行內(nèi)容
tail -n 20 file1:查看file文件的倒數(shù)20行內(nèi)容
tail -f error.log 不斷刷新,看到最新內(nèi)容,一般用于查看日志
tail -500f error.log :查看最新500條數(shù)據(jù)sed -n "開(kāi)始行,結(jié)束行p" [路徑]文件名:查看開(kāi)始行到結(jié)束行的內(nèi)容
sed -n 5p file1 :輸出第5行
sed -n '5p;8p;10,20p' file1 :輸出第5行,第8行,第10到20行的內(nèi)容
sed -n '15,20p' file1: 輸出file1文件的15-20行的內(nèi)容(等同于 head -n 20 file4 |tail -n 5 )more/less:
cat error.log|grep 'https'|more : 分頁(yè)查看更多內(nèi)容sed命令下批量替換文件內(nèi)容
格式: sed -i "s/查找字段/替換字段/g" 'grep 查找字段 -rl 路徑`文件名
(實(shí)操失敗,會(huì)進(jìn)入quote>。grep前后的點(diǎn)是esc下面那個(gè)鍵上的點(diǎn))vim狀態(tài)下文件內(nèi)容替換(只能操作一個(gè)文件)
先vim file1,再shift+:,輸入以下命令
注釋?zhuān)?s表示替換文件全部,s表示替換光標(biāo)所在行,g表示替換所有,不寫(xiě)g表示替換第一個(gè),分隔符/ 也可以使用#,此時(shí)/不會(huì)當(dāng)作分隔符,以下是部分示例
1,%s/hello word/hello baby/g:把文件中所有的hello word替換為hello baby
2,%s#/usr/bin#/bin#g :把文件中所有的路徑/usr/bin替換為/bin
3,s/hello word/hello baby:把當(dāng)前行的第一個(gè)hello word替換為hello babyperl 命令直接替換文件中的字符串(不用打開(kāi)文件,可以批量替換多個(gè)文件)
示例:
1,perl -p -i.txt -e"s/hello word/hello baby/g" ./dir1/file1 ./file2
將dir1目錄下的file1和當(dāng)前目錄下的file2文件中的所有hello word替換hello baby,舊文件備份為file1.txt 和file2.txt
2,perl -p -i.bak -e 's/\bfoo\b/bar/g' *.c
將所有C程序中的foo替換成bar,舊文件備份成.bak
參數(shù)詳解:
-p 自動(dòng)循環(huán)+自動(dòng)輸出,相當(dāng)于 while(<>) { 腳本; print; }
-n 自動(dòng)循環(huán),相當(dāng)于 while(<>) { 腳本; }(實(shí)際操作會(huì)清空文件內(nèi)容)
-i<擴(kuò)展名> 原地替換文件,并將舊文件用指定的擴(kuò)展名備份。不指定擴(kuò)展名則不備份
-e 執(zhí)行指定的腳本
-a 自動(dòng)分隔模式,用空格分隔$_并保存到@F中。相當(dāng)于@F = split ”。分隔符可以使用-F參數(shù)指定
-F 指定-a的分隔符,可以使用正則表達(dá)式
-l 對(duì)輸入內(nèi)容自動(dòng)chomp,對(duì)輸出內(nèi)容自動(dòng)添加換行