01終端命令格式
command [-options] [parameter]
? [] 代表可選
說(shuō)明:
-
command
:命令名,相應(yīng)功能的英文單詞或單詞縮寫 -
[-options]
:選項(xiàng),可用來(lái)對(duì)命令進(jìn)行控制,也可以省略 -
[parameter]
:傳給命令參數(shù),可以是零個(gè)、一個(gè)或者多個(gè),可省略
02查閱命令幫助信息
command --help
:顯示命令的幫助信息
man command
:查閱command命令的使用手冊(cè)
03終端命令界面解釋
使用命令 hostname
可查看主機(jī)名
04linux常用命令
ls
:查看文件信息
參數(shù):
- -a:顯示指定目錄下的所有子目錄與文件,包括隱藏文件
- -l:以列表的方式顯示文件的詳細(xì)信息
- -h:配合-l以人性化的方式顯示文件信息
注:
ls -l
可以簡(jiǎn)寫為ll
linux中,一個(gè)點(diǎn)“.”表示當(dāng)前目錄,連個(gè)點(diǎn)“..”表示上一級(jí)目錄
-
對(duì)于顯示的文件詳細(xì)信息的解釋:image-20210112170818266.png
綠色部分:第一位文件類型,d表示文件夾,-表示文件, l表示連接文件,后面9位表示文件的存取控制(權(quán)限),三位一組,分別表示創(chuàng)建文件的用戶、用戶所在組、其他用戶對(duì)該文件的權(quán)限
通配符
* | 文件代表文件名中所有字符 |
ls te* | 查找以te開(kāi)頭的文件 |
ls *html | 查找以html結(jié)尾的文件 |
? | 代表文件名中的任意一個(gè)字符 |
ls ?.c | 查找第一個(gè)字符任意,后綴為.c的文件 |
ls a.? | 查找前兩個(gè)字符為a.,最后一個(gè)字符任意的文件 |
[] | []將字符組括起來(lái),表示可以匹配字符組中的任意一個(gè)。“-”用于表示字符范圍 |
[abc] | 匹配a、b、c中的任意一個(gè) |
[a-f] | 匹配從a到f中的任意一個(gè) |
ls [a-f]* | 查找文件名為第一個(gè)字符為a-f中的任意一個(gè)的文件 |
ls a-f | 查找文件名為a-f的文件,注意:當(dāng)-處于方括號(hào)[]之外時(shí),失去通配符的作用 |
ls *a | 查找文件名以a結(jié)尾的文件 |
clear
:清屏
清除終端上的顯示,快捷鍵為ctrl+l
cd
:切換工作目錄
cd后可跟絕對(duì)路徑,也可跟相對(duì)路徑
cd | 切換到當(dāng)前用戶的主目錄(/home/用戶目錄),用戶登陸的時(shí)候,默認(rèn)的目錄就是用戶的主目錄。 |
cd ~ | 切換到當(dāng)前用戶的主目錄(/home/用戶目錄) |
cd . | 切換到當(dāng)前目錄 |
cd .. | 切換到上級(jí)目錄 |
cd - | 進(jìn)入上次所在目錄 |
pwd
:顯示當(dāng)前路徑
mkdir
:創(chuàng)建目錄
參數(shù):
-
-p
:image-20210112195455246.png
touch
:創(chuàng)建文件
在當(dāng)前文件夾下創(chuàng)建空文檔
touch test.txt
注:linux系統(tǒng)無(wú)嚴(yán)格后綴,創(chuàng)建時(shí)可任意命名
rm
:刪除文件
remove縮寫,刪除文件或文件夾,不加參數(shù)只能刪除文件
參數(shù):
- -i:以交互方式進(jìn)行,因?yàn)閯h除文件后不能恢復(fù),可通過(guò)交互模式,用戶確認(rèn)后再刪除
- -f:強(qiáng)制刪除,忽略不存在的文件,無(wú)需提示
- -r:遞歸的刪除目錄下的內(nèi)容,刪除文件夾時(shí)必須加此參數(shù)
cp
:拷貝
cp [options] 源文件 目標(biāo)位置
參數(shù):
- -f:若目標(biāo)文件已經(jīng)存在,不提示
- -i:交互式復(fù)制,在覆蓋目標(biāo)文件前,會(huì)給出提示要求用戶確認(rèn)
- -r:若源文件是目錄文件,則將遞歸復(fù)制該目錄下的所有內(nèi)容,目標(biāo)文件必須為一個(gè)目錄名
- -v:顯示拷貝進(jìn)度
mv
:移動(dòng)、重命名
mv [options] 源文件 目標(biāo)位置
參數(shù):
- -f:禁止交互式操作,如有覆蓋也不會(huì)給出提示
- -i:確認(rèn)交互式操作,如果mv操作將導(dǎo)致已存在的目標(biāo)文件覆蓋,系統(tǒng)會(huì)詢問(wèn)是否重寫,要求用戶回答以避免覆蓋文件
- -v:顯示移動(dòng)進(jìn)度
tree
:查看文件結(jié)構(gòu)
history
:查看歷史命令
對(duì)于復(fù)用率較高的命令,可使用歷史命令中對(duì)應(yīng)的編號(hào)對(duì)其進(jìn)行調(diào)用,格式如下:
!編號(hào)
輸出重定向命令:>
command > 目標(biāo)文件
將命令執(zhí)行結(jié)果定向到一個(gè)文件,執(zhí)行結(jié)果不再終端顯示,而是保存到指定文件中
注意:>若目標(biāo)文件存在會(huì)覆蓋原來(lái)的內(nèi)容,>>則會(huì)追加到文件尾部
cat
:查看或合并文件內(nèi)容
cat 目標(biāo)文件
合并操作:
more
:分屏顯示
more 目標(biāo)文件
文件過(guò)長(zhǎng)時(shí),可使用more每次顯示一頁(yè)
操作:
- enter鍵:顯示下一行
- 空格鍵:顯示下一頁(yè)
-
q鍵:退出
image-20210112205735038.png
管道
command [options] [parameter] | command
一個(gè)命令的輸出通過(guò)管道作為另一個(gè)命令的輸入,左邊命令的執(zhí)行結(jié)果會(huì)作為右側(cè)命令的輸入
建立鏈接文件:ln
硬鏈接:ln 源文件 鏈接文件 軟連接:
ln -s 源文件 鏈接文件`
軟連接:軟鏈接不占用磁盤空間,源文件刪除則軟鏈接失效。
硬鏈接:硬鏈接只能鏈接普通文件,不能鏈接目錄。
區(qū)分:
軟連接文件通過(guò)源文件,指向文件地址,硬鏈接直接指向文件地址,這三者任意修改其中一個(gè)文件另外兩個(gè)文件的內(nèi)容也會(huì)隨之變化,但當(dāng)刪除源文件時(shí),軟連接會(huì)失效,但硬鏈接文件依然存在。
grep
:文本搜索
對(duì)文本進(jìn)行模式查找
grep [options] 搜索內(nèi)容字符串 文件名
注意:字符串需要使用雙引號(hào)
參數(shù):
- -v:顯示不包含匹配的所有行(相當(dāng)于求反)
- -n:顯示匹配行及行號(hào)
- -i:忽略大小寫
grep搜索內(nèi)容可使用正則表達(dá)式,grep常用正則表達(dá)式如下:
^a | 尋找以a開(kāi)頭的行 |
ke$ | 尋找以ke結(jié)尾的行 |
[Ss]igna[Ll] | 匹配[]中一系列字符中的一個(gè),即尋找包含單詞signal,Signal,signaL,SignaL的行 |
. | 匹配一個(gè)非換行符的字符,例如:grep -n 'e.e' 1.txt 匹配 e 和 e 之間有任意一個(gè)字符,可以匹配 eee,eaed,eve,但是不匹配 ee,eaae |
find
:查找文件
通常用來(lái)在特定目錄下搜索符合條件的文件
find ./ -name test.sh | 查找當(dāng)前目錄下名為test.sh的文件 |
find ./ -name '*.sh' | 查找當(dāng)前目錄下后綴為.sh的文件 |
find ./ -name '[A-Z]*' | 查找當(dāng)前目錄下所有以大寫字母開(kāi)頭的文件 |
find /tmp -szie 2M | 查找tmp目錄下大小為2M的文件 |
find /tmp -size -2M | 查找tmp目錄下小于2M的文件 |
find /tmp -size +2M | 查找tmp目錄下大于為2M的文件 |
find /tmp -size +2M -size -5M | 查找tmp目錄下大于為2M且小于5M的文件 |
find ./ -perm 777 | 查找當(dāng)前目錄下權(quán)限為777的目錄或文件夾 |
文件壓縮與解壓縮:zip
unzip
壓縮文件:zip [-r] 目標(biāo)文件 源文件
注意:通過(guò)zip壓縮文件的目標(biāo)文件不需要指定擴(kuò)展名,默認(rèn)擴(kuò)展名為zip
解壓文件:unzip -d 解壓后目錄文件 壓縮文件
chmod
:修改文件權(quán)限
chmod 777 filename
說(shuō)明:
- r:讀取權(quán)限(read),數(shù)字代號(hào)為4
- w:寫入權(quán)限(write),數(shù)字代號(hào)為2
- x:執(zhí)行權(quán)限(execute),數(shù)字代號(hào)為1
- -:不具任何權(quán)限,數(shù)字代號(hào)為0
例:chmod 751 file:rwxr-x--x
? 文件所有者:讀寫執(zhí)行權(quán)限
? 同組用戶:讀、執(zhí)行權(quán)限
? 其他用戶:執(zhí)行權(quán)限
注意:如果要遞歸所有目錄加上相同權(quán)限,需要加上參數(shù)-R,如:chmod -R 777 test/
image-20210113090602416.png
Vim的基本使用
進(jìn)入vim模式:vi 文件名
01命令模式
打開(kāi)文件,首先進(jìn)入的就是命令模式,該模式通過(guò)命令的方式對(duì)文件進(jìn)行編輯
快捷命令:
- dd:刪除
- yy:復(fù)制
- p:粘貼
- u:撤銷
- gg:移到文檔頭部
- G:移到文檔尾部
- /**:表示搜索**內(nèi)容,n下一個(gè),N上一個(gè)
02 插入模式,編輯模式
在命令模式中,按i
或者a
進(jìn)入插入模式,可對(duì)文件內(nèi)容進(jìn)行編輯
按esc
退出編輯模式,進(jìn)入命令模式
末行模式
命令模式按:進(jìn)入末行模式,末行模式可在末行輸入命令來(lái)管理文件,如保存和退出等
命令:
- :w:保存文件,或快捷鍵ctrl+z
- :q:退出vim模式
- :wq:保存退出
- :q!:不保存退出
- :25:定位到第25行
- :set number/nonumber:顯示行號(hào)/隱藏行號(hào)
hive命令以及hadoop命令
任意位置輸入hive
即可進(jìn)入hive數(shù)據(jù)庫(kù)
查看dhfs文件系統(tǒng)的目錄結(jié)構(gòu)
shell腳本的使用
shell腳本就是將linux代碼放到一起執(zhí)行,達(dá)到實(shí)現(xiàn)一些自動(dòng)化的目的
shell腳本也是一種代碼,有自己的語(yǔ)法。
shell腳本語(yǔ)法
nohup命令的使用
用途:不掛斷的使用命令
語(yǔ)法:nohup command [options][parameter] [ &]
例:nohup sh runshell.sh > runshell.log 2>&1 &
操作系統(tǒng)中三個(gè)常用流:
- 0:標(biāo)準(zhǔn)輸出流 stdin
- 1:標(biāo)準(zhǔn)輸入流 stdout
- 2:標(biāo)準(zhǔn)錯(cuò)誤流 stderr
解釋:帶&的命令,即使terminal關(guān)閉后,或者電腦死機(jī),程序依然可以在服務(wù)器后臺(tái)運(yùn)行
2>&1的意思:
這個(gè)意思是把標(biāo)準(zhǔn)錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出中,而標(biāo)準(zhǔn)輸出是導(dǎo)出到 runshell.log 里面,所以結(jié)果是標(biāo)準(zhǔn)錯(cuò)誤和標(biāo)準(zhǔn)輸出都導(dǎo)入文件output里面了。 至于為什么需要將標(biāo)準(zhǔn)錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出的原因,那就歸結(jié)為標(biāo)準(zhǔn)錯(cuò)誤沒(méi)有緩沖區(qū),而stdout有。這就會(huì)導(dǎo)致 >runshell.log 2>runshell.log 文件runshell.log被兩次打開(kāi),而stdout和stderr將會(huì)競(jìng)爭(zhēng)覆蓋,這肯定不是我們想要的.
這就是為什么有人會(huì)寫成: nohup ./command.sh >command.log 2>command.log出錯(cuò)的原因了