【云小課】基礎服務第79課 網(wǎng)絡域富媒體全景圖
979
2025-03-31
主要學習執(zhí)行效率較高的Linux命令操作,包括Shell的啟動、命令格式及Shell的高級應用,以及vi編輯器的使用
課程學習通過華為云服務器使用CloudShell登錄
1Shell命令概述
1.1shell簡介
shell是Linux的一個特殊程序,是內核與用戶的接口,它是命令語言、命令解釋程序及程序設計語言的統(tǒng)稱。Shell是一個命令語言解釋器,它擁有自己內建的Shell命令集,Shell也能被系統(tǒng)中其他應用程序所調用。
當用戶成功登錄Linux系統(tǒng)后,即開始了與Shell的對話交互過程,此時,不論何時鍵入一個命令,都被Shell解釋執(zhí)行。有一些命令,比如改變工作目錄命令cd,是包含在Shell內部的,只要處在Shell命令行下就可以執(zhí)行。還有一些命令,例如復制命令cp和移動命令mv,是獨立的應用程序,必須存在于文件系統(tǒng)中某個目錄下才能執(zhí)行。對用戶而言,不必關心一個命令是建立在Shell內部還是一個單獨的程序。
1.2Linux命令行的格式
Linux命令的通用命令格式
命令字 [選項] [參數(shù)]
選項及參數(shù)的含義
選項:用于調節(jié)命令的具體功能
以“-”引導短格式選項(單個字符),例如“-l"
以“--”引導長格式選項(多個字符),例如“--color"
多個短格式選項可以寫在一起,只用一個“-”引導,例如“-al"
參數(shù):命令操作的對象,如文件、目錄名等
Linux命令行的格式
命令行編輯的幾個輔助操作
Tab鍵:自動補齊
反斜杠 “\”:強制換行
快捷鍵 Ctrl+U:清空至行首
快捷鍵 Ctrl+K:清空至行尾
快捷鍵 Ctrl+L:清屏
快捷鍵 Ctrl+C:取消本次命令編輯
Home:跳到行首
End:跳到行尾
1.3獲得命令幫助
內部命令help
查看Bash內部命令的幫助信息
命令的“--help”選項
適用于大多數(shù)外部命令
使用man命令閱讀手冊頁
man -k [關鍵字]
使用"↑"、"↓"鍵滾動文本
使用Page Up和Page Down鍵翻頁
按Q或q鍵退出閱讀環(huán)境、按"/ ”鍵后查找內容
1.4文件和目錄管理
目錄操作命令pwd、cd、s、 mkdir
文件操作命令 touch、cp、rm、mv、find
文件內容操作命令cat、less、grep
歸檔及壓縮命令?tar
1.5目錄操作命令-pwd、cd、ls、mkdir
pwd命令——用途:查看工作目錄
cd命令——用途:切換工作目錄? ? 格式:cd [目錄位置]
mkdir命令——用途:創(chuàng)建新的目錄? ?格式:mkdir [-p] [/路徑/]目錄名
1.6文件操作命令-ls、touch、cp、rm、mv、find
ls命令
用途:列表(List)顯示目錄內容
格式:ls[選項].…[目錄或文件名]
常用命令選項
-l:以長格式顯示
-a:顯示所有子目錄和文件的信息,包括隱藏文件
-d:顯示目錄本身的屬性
-lh:大小以k為單位顯示
--color:以顏色來區(qū)分不同類型文件
touch命令
用途:新建空文件,或更新文件時間標記
格式:touch 文件名...
cp命令
用途:復制(Copy)文件或目錄
格式:cp [選項]... 源文件或目錄... 目標文件或目錄
常用命令選項
-r:遞歸復制整個目錄樹
rm命令
用途:刪除(Remove)文件或目錄
格式:rm [選項]... 文件或目錄
常用命令選項
-r:遞歸刪除整個目錄樹
-f:強制刪除,不進行提示
rmdir命令
用途:刪除(directory)目錄
mv命令
用途:移動(Move)文件或目錄,若如果目標位置與源位置相同,則相當于改名
格式:mv [選項]... 源文件或目錄.. 目標文件或目錄
find命令
用途:用于查找文件或目錄
格式:find [查找范圍] [查找條件]
常用查找條件
name:按文件名稱查找
user:按文件屬主查找
type:按文件類型查找
f? ? 查找文件
d? ?查找目錄
l? ? 鏈接
p? ?管道
-size:按大小查找
1.7文件內容操作命令-cat、less、grep
cat命令
用途:顯示出文件的全部內容
格式:cat目標文件
less命令
用途:全屏方式分頁顯示文件內容
交互操作方法:
按Enter鍵向下逐行滾動
按空格鍵向下翻一屏、按b鍵向上翻一屏
按q鍵退出
grep命令
用途:在文件中查找并顯示包含指定字符串的行
格式:grep [選項] 查找條件 目標文件
常用命令選項
-i:查找時忽略大小寫
-V:反轉查找,輸出與查找條件不相符的行
查找條件設置
要查找的字符串以雙引號括起來
“^……”表示……開頭,“……$”表示以……結尾
“^$”表示空行
1.8歸檔及壓縮命令 -tar
tar命令
用途:制作歸檔文件、釋放歸檔文件
格式:tar [選項]... 歸檔文件名 源文件或目錄
tar [選項]... 歸檔文件名 [-C 目標目錄]
常用命令
打包:
tar-czvf[存放路徑]歸檔文件名tar.gz源文件或目錄
或tar-cjvf[存放路徑]歸檔文件名tar.bz2源文件或目錄
或 tar cJvf[存放路徑]歸檔文件名tar.xz源文件或目錄
解包:
tar-xzvf[存放路徑]歸檔文件名tar.gz[-C解壓目錄]
或tar-xjvf[存放路徑]歸檔文件名tar.bz2[-C解壓目錄]
或 tar xJvf[存放路徑]歸檔文件名tar.xz[-C解壓目錄]
2Bash的應用
2.1Bash的命令歷史
命令歷史-保存用戶曾經(jīng)執(zhí)行過的命令操作
查看歷史命令-使用↑、↓按鍵逐條翻看,允許編輯并重復執(zhí)行、執(zhí)行: history
清除歷史命令-執(zhí)行: history -c
調用歷史命令-!n:執(zhí)行歷史記錄中的第n條命令
2.2Bash的命令別名
命令別名-為使用頻率較高的復雜命令行設置簡短的調用名稱
查看命令別名-? 格式: alias [別名]
設置命令別名-? 執(zhí)行: alias 別名='實際執(zhí)行的命令'
取消已設置的命令別名-? 格式:unalias別名、unalias -a
使別名永久生效- 將設置命令保存到~/.bashrc文件中
2.3重定向
重定向:將命令的執(zhí)行結果輸出到指定的文件中,而不是直接顯示在屏幕上
重定向標準輸出
>將命令的執(zhí)行結果輸出到指定的文件中,而不是直接顯示在屏幕上
>>將命令執(zhí)行的結果追加輸出到指定文件
重定向標準錯誤
2>清空指定文件的內容,并將標準錯誤信息保存到該文件中
2>>將標準錯誤信息追加輸出到指定的文件中
重定向標準輸出和標準錯誤
&>將標準輸出、標準錯誤的內容全部保存到指定的文件中,而不是直接顯示在屏幕上
2.4輸出重定向實例
將命令輸出重定向到文件
將標準輸出重定向到文件
$ ls /etc/ > etcdir
將標準輸出重定向追加到文件
$ 1s /etc/sysconfig/ >> etcdir
將錯誤輸出重定向到文件
$ nocmd 2> errfile
將標準輸出和錯誤輸出重定向到文件
$ ls afile bfile &> errfile
3程序編輯器vim
3.1vim文本編輯器
文本編輯器的作用
維護 Linux系統(tǒng)中的各種配置文件
編寫 shell腳本
3.2vim編輯器的工作模式
三種工作模式
命令模式、輸入模式、末行模式
不同模式之間的切換
3.3命令模式的基本操作
控制光標移動,對文本進行復制、粘貼、刪除等工作
用戶剛剛啟動 vi/vim,便進入了命令模式。此狀態(tài)下敲擊鍵盤動作會被Vim識別為命令,而非輸入字符
強調一下:這些快捷鍵必須在命令模式下使用
光標移動
復制、粘貼、刪除
查找匹配字符串
撤銷編輯及保存退出
3.4末行模式中的基本操作
保存文件及退出vi編輯器
打開新文件或讀入其他文件內容
文件內容替換
4Shell腳本
4.1shell腳本的概念
Shell腳本
用途:完成特定的、較復雜的系統(tǒng)管理任務
格式:集中保存多條 Linux命令,普通文本文件
執(zhí)行方式:按照預設的順序依次解釋執(zhí)行
4.2編寫可執(zhí)行的shell腳本
在腳本文件的各組成部分中,只有可執(zhí)行語句是必不可少的(否則就不叫程序了)
當缺省運行環(huán)境設置時,會自動由當前加載該腳本的 Shell解釋器負責解釋執(zhí)行
Shell腳本文件的擴展名并無嚴格的約束,不一定非得是".sh"結尾的
4.3運行shell的腳本程序
直接執(zhí)行具有"x"權限的腳本文件
例如:./repboot.sh
使用指定的解釋器程序執(zhí)行腳本內容
例如: bash repboot.sh、 sh repboot.sh
通過 source命令(或.)讀取腳本內容執(zhí)行
例如: soucre repboot.sh或 ./hello.sh
4.4shell腳本
#!”是一個約定的標記,它告訴系統(tǒng)這個腳本需要什么解釋器來執(zhí)行,即使用哪一種 Shell
echo命令用于向窗口輸出文本。
#!/bin/bash
echo "hello, world!!"
4.5shell腳本應用示例
如果/boot分區(qū)的空間使用超過80%,輸出報警信息
#!/bin/bash RATE=`df -hT | grep "/boot" | awk '{print $6}' | cut -d "%" -f1 ` if [ $RATE -gt 80 ] then echo "Warning, DISK is full !" fi
批量添加20個系統(tǒng)用戶賬號,用戶名依次為“stu1”、“stu2”、......、“stu20”
#!/bin/bash i=1 while [ $i -le 20 ] do useradd stu$i echo "123456" | passwd --stdin stu$i &> /dev/null let i++ done
刪除用戶
#!/bin/bash i=1 while [ $i -le 20 ] do userdel -r stu$i i=`expr $i + 1` done
九九乘法表的輸出顯示
#!/bin/bash for (( i = 1; i <= 9; i ++ )) do for (( j = 1; j <= i; j ++ )) do let "temp = i * j" echo -n "$i*$j=$temp " done printf "\n" done
【第十期讀書會學習整理】
Linux Shell
版權聲明:本文內容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內刪除侵權內容。
版權聲明:本文內容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內刪除侵權內容。