iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0

前言

本篇我會跟大家好好分享一下 Bash 以及為什麼要學習 Bash

什麼是 Bash 與 Shell ?

首先電腦由硬體和軟體組成,而作業系統的核心(kernel)負責主要的運算工作。當我們輸入指令時,kernel 需要處理這些指令並輸出結果。但 kernel 本身並不知道我們的命令,例如 pwd,這時 shell 會將這些命令轉換成 kernel 能理解的程式碼。因此,使用電腦時,我們實際上是和 shell 互動,而不是直接與 kernel 溝通。那 shell 輸入一個命令﹐shell 會嘗試搜索整個命令行﹐並對其中的一些特殊字符做出處理﹐如果遇到 CR 字符的時候﹐就嘗試重組整行命令﹐並解釋給 kernel 執行,簡單來說 Shell 就像是介面,負責將使用者的命令翻譯給 kernel。

Bash 的全名為 Bourne-Again SHell,那 Bash 是一個命令處理器,通常執行於文字窗口中,並能執行使用者直接輸入的命令,作為 Linux 和其他 Unix 類操作系統的主要 Shell 程式,Bash 是 GNU Project 開發的一部分,它的設計是基於早期的 Bourne Shell(sh),並添加了許多新功能以增強使用體驗。

以下用圖片來說明之間的關係
https://ithelp.ithome.com.tw/upload/images/20240918/20161224JLCQu3nT2O.png

Bash 的特點

  1. 命令處理器 - Bash 允許用戶在命令行中執行各種指令,例如檔案操作、程式執行、系統管理等。
  2. 腳本編寫 - Bash 支援編寫腳本來自動化任務。Bash 腳本可以包含邏輯結構(如條件語句和迴圈),用來處理複雜的任務。
  3. 命令歷史 - Bash 支援命令歷史,用戶可以通過上下箭頭瀏覽和重新執行先前輸入的命令。
  4. 通配符與正則表達式 - Bash 允許使用通配符(如 *?)和正則表達式來進行靈活的模式匹配,特別是在檔案搜尋或過濾資料時很有用。
  5. 別名與變數 - Bash 支援創建別名,讓經常使用的命令變得更簡單。此外,用戶可以在命令行或腳本中定義和使用環境變數。
  6. 管道與重定向 - Bash 允許將命令的輸出通過管道 (|) 傳送到另一個命令,或者通過重定向 (>, >>, <) 將輸出或輸入導向到檔案。

.sh 是什麼 ?

.sh 是 Bash 腳本檔案的常見擴展名,表示這個檔案是一個 shell script(即 shell 腳本)。雖然 .sh 不是強制性的,但它被用來方便識別這個檔案是用來執行 Bash 或其他 shell 命令的腳本。

為什麼使用 .sh?

因為可以提供給使用者和系統管理員一個明確的標記,表示這是一個 shell 腳本文件。
方便在文件管理器或編輯器中快速辨認文件類型。

為什麼要學習 Bash ?

除了作業系統工程師外,為什麼還要學習 Bash ? 因為

  1. 自動化重複性任務
  2. 系統管理與運維
  3. 跨平台工具
  4. 加速開發流程
  5. DevOps 和雲端運算
  6. 資料處理與分析
  7. 開發測試與環境管理

資料來源

https://medium.com/hannah-lin/%E7%A8%8B%E5%BC%8F%E7%AD%86%E8%A8%98-bash-script-8926bbc0ac44

https://www.cyut.edu.tw/~ywfan/1109linux/201109chapter11shell%20script.htm#:~:text=Linux%20%E7%9A%84kernel%20%E5%8F%AA%E6%9C%89%E4%B8%80%E5%80%8B,shell%20%E7%89%88%E6%9C%AC%EF%B9%90%20%E4%B9%9F%E6%98%AF%E5%A4%A7%E5%A4%9A%E6%95%B8

https://www.51cto.com/article/207381.html

https://linux.vbird.org/linux_basic/centos7/0320bash.php#bash_why


上一篇
Day9 - 用心觀察陪伴,當 Linux 的長照服務員
下一篇
Day11 - Shell Scripts
系列文
0 到 100 Linux快打旋風30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言