Shell 是什么?

2021-08-30 18:24 更新

shell為您提供了對UNIX系統(tǒng)的接口。向你收集的輸入,并根據(jù)輸入執(zhí)行程序。當(dāng)一個程序執(zhí)行完畢后,它會顯示該程序的輸出。

shell是一個環(huán)境,我們可以運(yùn)行我們的命令,程序和shell腳本。shell有不同的風(fēng)格,就像有不同風(fēng)格的操作系統(tǒng)。每個的shell的風(fēng)格,有它自己的一套識別的命令和功能。

Shell 提示符:

提示符下這就是所謂的命令提示符下$,發(fā)出shell。雖然會顯示提示,您可以鍵入一個命令。

shell讀取輸入后按Enter鍵。它決定了想要的命令和執(zhí)行輸入的第一個字符。一個字是一個完整的字符集??崭窈椭票矸指魡卧~。

以下是一個簡單的例子date命令顯示當(dāng)前日期和時(shí)間:

$date
Thu Jun 25 08:30:19 MST 2009

你可以定制你的命令提示符下使用環(huán)境變量PS1環(huán)境教程解釋。

Shell 類型:

在UNIX系統(tǒng)下有兩種主要類型的shell:

  1. Bourne shell. 如果您使用的是Bourne類型的shell,默認(rèn)提示符為$字符。
  2. C shell.如果您使用的是C型的shell,默認(rèn)的提示字符%。

再還有各種Bourne shell的子類別列示如下:

  • Bourne shell ( sh)
  • Korn shell ( ksh)
  • Bourne Again shell ( bash)
  • POSIX shell ( sh)

不同的C型shell如下:

  • C shell ( csh)
  • TENEX/TOPS C shell ( tcsh)

原來的UNIX shell寫于20世紀(jì)70年代中期,由斯蒂芬·伯恩,在新澤西AT&T貝爾實(shí)驗(yàn)室。

Bourne shell 是第一個shell 出現(xiàn)在UNIX系統(tǒng)上,因此,它被稱為 "the shell".

Bourne shell的安裝通常為 /bin/sh 在大多數(shù)UNIX版本。出于這個原因,它是編寫腳本使用在幾個不同的版本的UNIX shell。

在本教程中,我們將要覆蓋大多數(shù)基于傳播Borne Shell概念。

Shell 腳本:

shell腳本的基本概念是一個命令列表中列出的順序執(zhí)行。 #是shell腳本注釋前面一英鎊符號。

條件測試,如值A(chǔ)大于B值,循環(huán)我們?nèi)ネㄟ^大量的數(shù)據(jù),讀取和存儲數(shù)據(jù)的文件和變量的讀取和存儲數(shù)據(jù),該腳本可能包含的功能。

shell腳本和函數(shù)都解釋。這意味著他們不會被編譯。

我們將在接下來的幾個教程寫了許多腳本。這將是一個簡單的文本文件,在其中,我們會把我們所有的命令和其他一些必要的結(jié)構(gòu),告訴shell環(huán)境做什么,什么時(shí)候做。

示例腳本:

假設(shè)我們創(chuàng)建了一個test.sh腳本。注意:所有的腳本 .sh擴(kuò)展。添加任何東西到腳本,需要提醒系統(tǒng)正在啟動一個shell腳本。例如:

#!/bin/sh

這是告訴系統(tǒng)Bourne shell的執(zhí)行下面的命令。這就是所謂的家shebang ,因?yàn)椤埃!狈柋环Q為哈希,和!符號被稱為bang。

要創(chuàng)建一個包含這些命令的腳本,把shebang行第一,然后添加命令:

#!/bin/bash
pwd
ls

Shell 注釋:

你可以把注釋,在你的腳本如下:

#!/bin/bash

# Author : Zara Ali
# Copyright (c) Tutorialsyiibai.com
# Script follows here:
pwd
ls

現(xiàn)在保存上面的內(nèi)容,使此腳本可執(zhí)行如下:

$chmod +x test.sh

現(xiàn)在,你的shell腳本,可隨時(shí)執(zhí)行如下:

$./test.sh

This would produce following result:

/home/amrood
index.htm  unix-basic_utilities.htm  unix-directories.htm  
test.sh    unix-communication.htm    unix-environment.htm

注:要執(zhí)行任何程序在當(dāng)前目錄中,執(zhí)行可使用 ./program_name

擴(kuò)展Shell腳本:

Shell腳本有幾個必要的結(jié)構(gòu)告訴shell環(huán)境做什么,什么時(shí)候做。當(dāng)然,大多數(shù)腳本是比上述更加復(fù)雜。

shell畢竟,真正的編程語言,完成變量,控制結(jié)構(gòu),等等。無論腳本變得多么復(fù)雜,但是,它仍然是順序執(zhí)行的命令的列表。

下面的腳本使用讀命令從鍵盤輸入,并將其分配給變量PERSON的值,并最終打印在stdout。

#!/bin/sh

# Author : Zara Ali
# Copyright (c) Tutorialsyiibai.com
# Script follows here:

echo "What is your name?"
read PERSON
echo "Hello, $PERSON"

下面是運(yùn)行的腳本示例:

$./test.sh
What is your name?
Zara Ali
Hello, Zara Ali
$

 



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號