什麼是Shell? Command指令?Shell Script?

什麼是Shell? Command指令?Shell Script?

什麼是Shell? 

Shell 是外殼的意思,就是作業系統的外殼。我們可以通過shell命令來操作和控制作業系統。

Shell的版本與路徑

那麼目前我們的 Linux (以 CentOS 7.x 為例) 有多少我們可以使用的 shells 呢? 你可以檢查一下 /etc/shells 這個檔案,至少就有底下這幾個可以用的 shells :

  • /bin/sh (已經被 /bin/bash 所取代)
  • /bin/bash (就是 Linux 預設的 shell)
  • /bin/tcsh (整合 C Shell ,提供更多的功能)
  • /bin/csh (已經被 /bin/tcsh 所取代)

雖然各家 shell 的功能都差不多,但是在某些語法的下達方面則有所不同,因此建議你還是得要選擇某一種 shell 來熟悉一下較佳。 Linux 預設就是使用 bash 。




查看Shell

Shell是一個程序,一般都是放在/bin或者/usr/bin目錄下,當前Linux系統可用的Shell都記錄在/etc/shells文件中。/etc/shells是一個純文本文件,你可以在圖形界面下打開它,也可以使用cat命令查看它。

通過cat命令來查看當前Linux系統的可用Shell:

$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

在現代的Linux上,sh已經被bash代替,/bin/sh往往是指向/bin/bash的符號鏈接。如果你希望查看當前Linux的默認Shell,那麼可以輸出SHELL環境變量,輸出結果表明默認的Shell是bash。

$ echo $SHELL /bin/bash

什麼是Command指令碼?

指令碼就是由Shell命令組成的檔案,這些命令都是可執行程式的名字。

Shell Script

Shell script 就像是早期 DOS 年代的批次檔 (.bat) ,最簡單的功能就是 "將許多指令彙整" 寫在一起, 讓使用者很輕易的就能夠 one touch 的方法去處理複雜的動作 (執行一個檔案 "shell script" ,就能夠一次執行多個指令)。 而且 shell script 更提供陣列、迴圈、條件與邏輯判斷等重要功能,讓使用者也可以直接以 shell 來撰寫程式,而不必使用類似 C 程式語言等傳統程式撰寫的語法呢!

撰寫第一個 shell script

Shell 是我們和 Linux 系統的介面,我們可以透過終端機在上面輸入指令和作業系統互動,讓他做我們想做的事情。在 Linux 中標準的 Shell 為(Bourne Again Shell),檔案路徑為 /bin/sh,我們可以透過 $ echo $SHELL 去印出目前使用的 shell。其中 Shell Script 為使用 shell 所提供的語法所撰寫的程式碼,其為直譯式不用編譯。可以讓你將複雜或是重複性的指令寫成程式碼檔案。

$ vim example.sh //在編輯模式輸入以下程式碼

# 這是註解,上面所使用的 shell
# 宣告使用 /bin/bash
#!/bin/bash
echo "日期"
date
echo "印出檔案列表"
ls -l
  • $ chmod u+x example.sh //修改權限成可以執行
  • $ ./example.sh //接著執行,若是一切順利就可以在終端機看到時間日期和檔案列表!恭喜你完成你的第一個 shell script!



留言

這個網誌中的熱門文章

Ubuntu 常用指令、分類與簡介

網路設定必要參數IP、netmask(遮罩)、Gateway(閘道)、DNS

iptables的觀念與使用

了解、分析登錄檔 - log

Python 與SQLite 資料庫

Blogger文章排版範本

Pandas 模組

如何撰寫Shell Script

查詢指令或設定 -Linux 線上手冊 - man

網路相關之指令