iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 22
2

Day 22 Shell

來介紹一下 Shell吧!

在操作 Linux 的時候,使用終端機指令操作以外,加上使用一些簡單的 Sell 程式,可以簡化許多繁複的工作。但在現行 Linux 發行版本中,大多都使用 Bash 為預設 Shell,活用 Shell 可以有效降低操作的複雜度。

更簡單來說,以「核心」及「硬體」來做區分,而「shell」就是提供空具命令「核心」去跟「硬體」說該動以來工作囉!

如果以上太複雜....難懂,只要懂 shell 是一個「文字模式介面」就好

Shell 種類

sh

sh 的全名是 Bourne shell,由 AT&T 公司的 Steve Bourne開發,為了紀念他,就用他的名字命名。

sh 是 UNIX 上的標準 shell,很多 UNIX 版本都配有 sh。sh 是第一個流行的 Shell。

bash

bash 是 Linux 目前預設的 shell,bash 由 GNU 組織開發,保持了對 sh 的兼容性,是各 Linux 發行版預設的 shell,bash 是完全免費的,屬於開源軟體(Open Source)。

Linux 作為預設的 Shell 是因為它具有以下特色:

  • 可以使用類似DOS下面的doskey的功能,用上下方向鍵查閱和快速輸入並修改命令。
  • 自動通過查找匹配的方式,給出以某字串開頭的命令。
  • 包含了自身的幫助功能,你只要在提示符下面鍵入help就可以得到相關的幫助信息。

csh

csh 是由柏克萊大學的 Bill Joy 設計的,這個 shell 的語法有點類似C語言,所以才得名為 C shell ,簡稱為 csh,共有52個內部命令。該 shell 其實是指向/bin/tcsh這樣的一個 shell,也就是說,csh 其實就是 tcsh。

Bill Joy 是一個風雲人物,他創立了 BSD 作業系統,開發了 vi 編輯器,還是 Sun 公司的創始人之一。

BSD 是 UNIX 的一個重要分支,後人在此基礎上發展出了很多現代的作業系統,最著名的有 FreeBSD、OpenBSD 和 NetBSD,就連 Mac OS X 在很大程度上也基於BSD。

zsh

zsh 是基於 Sh 之上,由Paul Falstad完成,共有 84 個內部命令,做出了大量的改進,並且同時加入了Bash、ksh 及 tcsh的某些功能。

zsh具有如下特性:

  • 更高效
  • 更好的自動補全
  • 更好的文件名展開(通配符展開)
  • 更好的數組處理
  • 可定制性高
  • 如果只是一般的用途,沒有必要安裝這樣的Shell。

環境介紹

shell 是一個程序,為什麼說是程序,可以直接在終端機輸入 ps 會看到 bash 或是其他的 shell,shell 一般都是放在 /bin 或者 /usr/bin 目錄下,Linux 系統可用的 Shell 都會記錄在 /etc/shells 文件。

chsh 指令介紹

chsh 指令主要用來更換預設的 shell。

[root@localhost etc]# chsh [選項] [目標]
  • -s <shell 名稱> --shell<shell 名稱>:更改系統預設的shell環境。
  • -l --list-shells 列出目前系統可用的shell清單。
  • -u --help 線上幫助。
  • -v --version 顯示版本資訊。

cat 指令,檢視當前系統可用 shell 有哪些

[root@localhost ~]# cat /etc/shells

/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

// 或

[root@localhost etc]# chsh -l

/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

檢視系統上的 shell 環境變數

在 Linux 系統上,sh 大部分已經被 bash 這個 shell 代替, /bin/sh 通常會指向 /bin/bash 的符號連結。

[root@localhost ~]# echo $SHELL

/bin/bash

// 或

[root@localhost etc]# echo $0

/bin/bash

echo 是一個 shell 印出變數的指令,其實跟 PHP 的 echo 很像。

變更系統預設的 shell

若要變更使用者預設的 shell,使用 chsh 指令。

[root@localhost etc]# chsh -s /bin/bash

變更 root 的 shell。
chsh: Shell not changed.

※ 更改完,記得重新登入,就可使用。


上一篇
Day 21 系統服務
下一篇
Day 23 Sell Script(1)
系列文
如何使用 Linux 從土裡到冒出頭來30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言