iT邦幫忙

2023 iThome 鐵人賽

DAY 4
1

前言

:::info
之後在表示命令時我會在命令最前面用符號來表示目前權限

  • 普通用戶
$ normal-user-command
  • root用戶
# root-command
  • 其他
other-command

:::

在接下來的幾天我將以BASH作為示範用與講解的SHELL,不過在這之前,先來介紹一下SHELL是甚麼

甚麼是SHELL

SHELL在電腦科學中指「為使用者提供使用者介面」的軟體,通常指的是命令列介面的解析器。一般來說,這個詞是指作業系統中提供存取核心所提供之服務的程式。Shell也用於泛指所有為使用者提供操作介面的程式,也就是程式和使用者互動的層面

以下的shell特指Command-line shell:(作業系統下傳統的使用者和電腦的互動介面。第一個使用者直接輸入命令來執行各種各樣的任務。)

Linux中有哪些SHELL

常見的有以下幾種:

  • Bourne shell(sh)
    在大多數Unix系統上位於/bin/sh
    在很多Unix版本中,它仍然是root的預設shell,不過在某些Linux系統中被symbolic到Bash(以兼容POSIX模式執行)
    • bash
      Bash是Bourne shell的後繼相容版本與開放原始碼版本,它的名稱來自Bourne shell(sh)的一個雙關語(Bourne again / born again):Bourne-Again SHell。
    • zsh
  • fish

bash

bash, macOS(10.14前)與大部分Linux的預設shell,它是sh的superset,因此除了支援幾乎所有sh命令外,還多了一些特性:

  1. 花括號擴充
    源自C shell(csh), 可以用這個生成字串組合,範圍生成,甚至排列組合
  2. 輸入輸出重新導向
    bash可以同時導向stdoutstderr
    $ <command> &> <file>
  3. Tab自動補全
  4. 直接進行整數運算而不新增subshell
    使用(())$[]來達成
  5. 歷史紀錄
    可以使用history來瀏覽或按↑/↓來往前/後尋找命令
  6. 行程內正規表達式
    3.0後支援,使用[[ <str> =~ <regex> ]]

REF

鳥哥私房菜 - 第十章、認識與學習BASH
SHELL(wikipedia)
Bash(ArchWiki)
bash manual


上一篇
Day3: 安裝Linux
下一篇
Day5: bash的特殊符號
系列文
I Use Linux BTW: 談Linux與其指令30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言