Linux Shell
shell是什麼呢?
shell就是核心的一個外殼,使用者透過shell來控制核心進而驅動硬體做事情
類似我們和朋友打電話,shell就充當電話的作用,透過命令向作業系統傳遞指令,告知它你想做什麼,比如建立檔案、管理程式等
1.命令
# 修改主機名【注意:修改完之後推出重新登入才能顯示修改後的主機名】
hostname jaden
logout
# 檢視主機名
hostname
# 檢視主機的資訊
hostnamectl
2.快捷鍵
Ctrl + a #游標跳轉至正在輸入的命令列的首部
Ctrl + e #游標跳轉至正在輸入的命令列的尾部
Ctrl + c #終止前臺執行的程式,比如ping指令
Ctrl + d #在shell中,ctrl-d表示推出當前shell。
Ctrl + z #將任務暫停,掛至後臺, 執行fg命令繼續執行
Ctrl + l #清屏,和clear命令等效。
Ctrl + k #刪除從游標到行末的所有字元
Ctrl + u #刪除從游標到行首的所有字元
Ctrl + r #搜尋歷史命令, 利用關鍵字搜尋
ctrl + w #游標往前刪除一個引數,以空格為分割。
3.history
# 檢視歷史指令
history
# 檢視歷史命令後透過某個數字呼叫命令
!數字
# 自動匹配執行過的最近的一條命令
!某個命令的開頭 然後回車
#清除歷史記錄【清除記憶體中的歷史指令】
history -c
# 檢視預設記錄最近的指令條數
echo $HISTSIZE
# 修改預設記錄最近的指令條數
vi /etc/profile
# 注意:
1.退出登入之後,記憶體中的歷史指令才會同步到硬碟檔案中
2..bash_history預設記錄最近的1000條指令
注意:
對於history,作業系統的機制是執行各種各樣的命令都是儲存在記憶體中的,當清除了記憶體,退出登入後,記憶體中的記錄會同步到硬碟中,當重新登入後,記憶體會從硬碟中讀取記錄,然後放到記憶體中
4.別名
# 檢視別名
alias
# 新增別名【臨時】
# alias 別名 = '指令'
alias ip='ip a|head -9|tail -1'
# 取消別名
unalias ip
注意:alias別名的優先順序高於系統命令 別名一定要是可執行的,不能隨便定義別名
# alias永久生效
cd /root
vi .bashrc
# 空白處,增加一行
alias ip='ip a|head -9|tail -1'
# 重新登入就生效了
vi 編輯器
游標
1.移動
進入編輯模式有三個按鈕
- i ——> 在游標位置編輯
- o ——> 換行編輯,即新起一行編輯
- a ——> 在游標後一位編輯
vi /etc/services
:set number ——> 顯示行號
# 快捷鍵
G(shift+g) ——> 跳到最後一行
gg ——> 跳到第一行
10gg/10G/:10 ——> 跳到第10行
$(shift+4) ——> 快速跳行尾
^ ——> 快速跳行首【第一個字元】
) ——> 快速跳行首【最前面】
ctrl+f 下翻一頁
ctrl+b 上翻一頁
ctrl+u 上翻半頁
ctrl+d 下翻半頁
2.刪除複製
x刪除單個字元【往後刪】
10x刪除10個字元
dd 刪除游標所在行 # 其實dd是剪下的操作
6dd 從游標開始往下刪除6行
dw 刪除一個單詞(word)
小p 貼上貼上板的內容到當前行的下面,比如將dd剪下的行黏貼到下面
大P 貼上貼上板的內容到當前行的上面
yy 複製行
5yy複製5行,複製的內容可以透過p\P來黏貼
# 恢復
u
3.搜尋替換
搜尋
/搜尋內容 # 表示向後搜尋字串pattern 繼續按小n向下和大N向上
替換
# 替換單個關鍵字
# 將第35行的qotd替換為xinyi
:35s/qotd/xinyi/g # :35s/舊的/新的/g
# 同時替換多行中的關鍵字
# 將第35行到40行之間的qotd替換為xinyi
:35,40s/qotd/xinyi/g # :35,40s/舊的/新的/g
# 從某行開始到末尾找到所有的關鍵字並替換掉
# 將第35行到末尾之間的qotd替換為xinyi
:35,$s/qotd/xinyi/g # :35,$s/舊的/新的/g
# 全文替換
# 搜尋整個檔案,將所有的old替換為new
:%s/old/new/g
# 全文替換【帶有確認按鈕】
# 搜尋整個檔案,將所有的old替換為new,每次都要你確認是否替換(y/n/a/..),
# y表示確認替換一個、n表示不替換、a表示全部替換
:%s/old/new/gc
4.儲存退出
:w 將緩衝區寫入檔案,即儲存修改到硬碟上,如果沒儲存,資料都只是在記憶體中
:wq 儲存修改並退出
:x 儲存修改並退出,和wq一樣的效果。
:q 退出
:q! 強制退出,放棄修改
:wq! 強制儲存修改並退出