01終端命令格式
command [-options] [parameter]
? [] 代表可選
說明:
-
command
:命令名彪薛,相應功能的英文單詞或單詞縮寫 -
[-options]
:選項,可用來對命令進行控制,也可以省略 -
[parameter]
:傳給命令參數(shù),可以是零個、一個或者多個,可省略
02查閱命令幫助信息
command --help
:顯示命令的幫助信息
man command
:查閱command命令的使用手冊
03終端命令界面解釋
使用命令 hostname
可查看主機名
04linux常用命令
ls
:查看文件信息
參數(shù):
- -a:顯示指定目錄下的所有子目錄與文件,包括隱藏文件
- -l:以列表的方式顯示文件的詳細信息
- -h:配合-l以人性化的方式顯示文件信息
注:
ls -l
可以簡寫為ll
linux中,一個點“.”表示當前目錄骂际,連個點“..”表示上一級目錄
-
對于顯示的文件詳細信息的解釋:
綠色部分:第一位文件類型,d表示文件夾冈欢,-表示文件歉铝, l表示連接文件,后面9位表示文件的存取控制(權限)凑耻,三位一組太示,分別表示創(chuàng)建文件的用戶柠贤、用戶所在組、其他用戶對該文件的權限
通配符
* | 文件代表文件名中所有字符 |
ls te* | 查找以te開頭的文件 |
ls *html | 查找以html結尾的文件 |
先匪? | 代表文件名中的任意一個字符 |
ls ?.c | 查找第一個字符任意种吸,后綴為.c的文件 |
ls a.? | 查找前兩個字符為a.,最后一個字符任意的文件 |
[] | []將字符組括起來呀非,表示可以匹配字符組中的任意一個坚俗。“-”用于表示字符范圍 |
[abc] | 匹配a岸裙、b猖败、c中的任意一個 |
[a-f] | 匹配從a到f中的任意一個 |
ls [a-f]* | 查找文件名為第一個字符為a-f中的任意一個的文件 |
ls a-f | 查找文件名為a-f的文件,注意:當-處于方括號[]之外時降允,失去通配符的作用 |
ls *a | 查找文件名以a結尾的文件 |
clear
:清屏
清除終端上的顯示恩闻,快捷鍵為ctrl+l
cd
:切換工作目錄
cd后可跟絕對路徑,也可跟相對路徑
cd | 切換到當前用戶的主目錄(/home/用戶目錄)剧董,用戶登陸的時候幢尚,默認的目錄就是用戶的主目錄。 |
cd ~ | 切換到當前用戶的主目錄(/home/用戶目錄) |
cd . | 切換到當前目錄 |
cd .. | 切換到上級目錄 |
cd - | 進入上次所在目錄 |
pwd
:顯示當前路徑
mkdir
:創(chuàng)建目錄
參數(shù):
-
-p
:
touch
:創(chuàng)建文件
在當前文件夾下創(chuàng)建空文檔
touch test.txt
注:linux系統(tǒng)無嚴格后綴翅楼,創(chuàng)建時可任意命名
rm
:刪除文件
remove縮寫尉剩,刪除文件或文件夾,不加參數(shù)只能刪除文件
參數(shù):
- -i:以交互方式進行毅臊,因為刪除文件后不能恢復理茎,可通過交互模式,用戶確認后再刪除
- -f:強制刪除管嬉,忽略不存在的文件皂林,無需提示
- -r:遞歸的刪除目錄下的內(nèi)容,刪除文件夾時必須加此參數(shù)
cp
:拷貝
cp [options] 源文件 目標位置
參數(shù):
- -f:若目標文件已經(jīng)存在蚯撩,不提示
- -i:交互式復制础倍,在覆蓋目標文件前,會給出提示要求用戶確認
- -r:若源文件是目錄文件求厕,則將遞歸復制該目錄下的所有內(nèi)容著隆,目標文件必須為一個目錄名
- -v:顯示拷貝進度
mv
:移動、重命名
mv [options] 源文件 目標位置
參數(shù):
- -f:禁止交互式操作呀癣,如有覆蓋也不會給出提示
- -i:確認交互式操作,如果mv操作將導致已存在的目標文件覆蓋弦赖,系統(tǒng)會詢問是否重寫项栏,要求用戶回答以避免覆蓋文件
- -v:顯示移動進度
tree
:查看文件結構
history
:查看歷史命令
對于復用率較高的命令,可使用歷史命令中對應的編號對其進行調(diào)用蹬竖,格式如下:
沼沈!編號
輸出重定向命令:>
command > 目標文件
將命令執(zhí)行結果定向到一個文件流酬,執(zhí)行結果不再終端顯示,而是保存到指定文件中
注意:>若目標文件存在會覆蓋原來的內(nèi)容列另,>>則會追加到文件尾部
cat
:查看或合并文件內(nèi)容
cat 目標文件
合并操作:
more
:分屏顯示
more 目標文件
文件過長時芽腾,可使用more每次顯示一頁
操作:
- enter鍵:顯示下一行
- 空格鍵:顯示下一頁
-
q鍵:退出
管道
command [options] [parameter] | command
一個命令的輸出通過管道作為另一個命令的輸入,左邊命令的執(zhí)行結果會作為右側(cè)命令的輸入
建立鏈接文件:ln
硬鏈接:ln 源文件 鏈接文件 軟連接:
ln -s 源文件 鏈接文件`
軟連接:軟鏈接不占用磁盤空間,源文件刪除則軟鏈接失效页衙。
硬鏈接:硬鏈接只能鏈接普通文件摊滔,不能鏈接目錄。
區(qū)分:
軟連接文件通過源文件店乐,指向文件地址艰躺,硬鏈接直接指向文件地址,這三者任意修改其中一個文件另外兩個文件的內(nèi)容也會隨之變化眨八,但當刪除源文件時腺兴,軟連接會失效,但硬鏈接文件依然存在廉侧。
grep
:文本搜索
對文本進行模式查找
grep [options] 搜索內(nèi)容字符串 文件名
注意:字符串需要使用雙引號
參數(shù):
- -v:顯示不包含匹配的所有行(相當于求反)
- -n:顯示匹配行及行號
- -i:忽略大小寫
grep搜索內(nèi)容可使用正則表達式页响,grep常用正則表達式如下:
^a | 尋找以a開頭的行 |
ke$ | 尋找以ke結尾的行 |
[Ss]igna[Ll] | 匹配[]中一系列字符中的一個,即尋找包含單詞signal段誊,Signal闰蚕,signaL,SignaL的行 |
. | 匹配一個非換行符的字符,例如:grep -n 'e.e' 1.txt 匹配 e 和 e 之間有任意一個字符枕扫,可以匹配 eee陪腌,eaed,eve烟瞧,但是不匹配 ee诗鸭,eaae |
find
:查找文件
通常用來在特定目錄下搜索符合條件的文件
find ./ -name test.sh | 查找當前目錄下名為test.sh的文件 |
find ./ -name '*.sh' | 查找當前目錄下后綴為.sh的文件 |
find ./ -name '[A-Z]*' | 查找當前目錄下所有以大寫字母開頭的文件 |
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 | 查找當前目錄下權限為777的目錄或文件夾 |
文件壓縮與解壓縮:zip
unzip
壓縮文件:zip [-r] 目標文件 源文件
注意:通過zip壓縮文件的目標文件不需要指定擴展名,默認擴展名為zip
解壓文件:unzip -d 解壓后目錄文件 壓縮文件
chmod
:修改文件權限
chmod 777 filename
說明:
- r:讀取權限(read)参滴,數(shù)字代號為4
- w:寫入權限(write)强岸,數(shù)字代號為2
- x:執(zhí)行權限(execute),數(shù)字代號為1
- -:不具任何權限砾赔,數(shù)字代號為0
例:chmod 751 file:rwxr-x--x
? 文件所有者:讀寫執(zhí)行權限
? 同組用戶:讀蝌箍、執(zhí)行權限
? 其他用戶:執(zhí)行權限
注意:如果要遞歸所有目錄加上相同權限,需要加上參數(shù)-R暴心,如:chmod -R 777 test/
Vim的基本使用
進入vim模式:vi 文件名
01命令模式
打開文件妓盲,首先進入的就是命令模式,該模式通過命令的方式對文件進行編輯
快捷命令:
- dd:刪除
- yy:復制
- p:粘貼
- u:撤銷
- gg:移到文檔頭部
- G:移到文檔尾部
- /**:表示搜索**內(nèi)容,n下一個专普,N上一個
02 插入模式悯衬,編輯模式
在命令模式中,按i
或者a
進入插入模式檀夹,可對文件內(nèi)容進行編輯
按esc
退出編輯模式筋粗,進入命令模式
末行模式
命令模式按:進入末行模式策橘,末行模式可在末行輸入命令來管理文件,如保存和退出等
命令:
- :w:保存文件娜亿,或快捷鍵ctrl+z
- :q:退出vim模式
- :wq:保存退出
- :q!:不保存退出
- :25:定位到第25行
- :set number/nonumber:顯示行號/隱藏行號
hive命令以及hadoop命令
任意位置輸入hive
即可進入hive數(shù)據(jù)庫
查看dhfs文件系統(tǒng)的目錄結構
shell腳本的使用
shell腳本就是將linux代碼放到一起執(zhí)行丽已,達到實現(xiàn)一些自動化的目的
shell腳本也是一種代碼,有自己的語法买决。
shell腳本語法
nohup命令的使用
用途:不掛斷的使用命令
語法:nohup command [options][parameter] [ &]
例:nohup sh runshell.sh > runshell.log 2>&1 &
操作系統(tǒng)中三個常用流:
- 0:標準輸出流 stdin
- 1:標準輸入流 stdout
- 2:標準錯誤流 stderr
解釋:帶&的命令沛婴,即使terminal關閉后,或者電腦死機策州,程序依然可以在服務器后臺運行
2>&1的意思:
這個意思是把標準錯誤重定向到標準輸出中瘸味,而標準輸出是導出到 runshell.log 里面,所以結果是標準錯誤和標準輸出都導入文件output里面了够挂。 至于為什么需要將標準錯誤重定向到標準輸出的原因旁仿,那就歸結為標準錯誤沒有緩沖區(qū),而stdout有孽糖。這就會導致 >runshell.log 2>runshell.log 文件runshell.log被兩次打開枯冈,而stdout和stderr將會競爭覆蓋,這肯定不是我們想要的.
這就是為什么有人會寫成: nohup ./command.sh >command.log 2>command.log出錯的原因了