Linux Shell

清风拂山岗(小高同学)發表於2024-10-26

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! 強制儲存修改並退出    

相關文章