日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線(xiàn)咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

各位讀者,我們將在本文中介紹如何在 linux 或 UNIX 系統(tǒng)中入門(mén) Shell 腳本編寫(xiě)。

什么是 Shell 呢?

Shell(交互界面)是類(lèi) UNIX/Linux 操作系統(tǒng)中的一個(gè)解釋器。它將用戶(hù)輸入的命令解釋成操作系統(tǒng)的系統(tǒng)調(diào)用來(lái)執(zhí)行這些命令。簡(jiǎn)單來(lái)說(shuō),Shell 形式上是操作系統(tǒng)的包裝。比如,你可能使用 Shell 命令來(lái)列出目錄中的文件,如 ls 命令,或使用命令復(fù)制,如 cp 命令。

$ ls
Desktop Documents Downloads Music Pictures playbook.yaml Public snap Templates test5 Videos

在上方的例子中,當(dāng)你輸入 ls 并按下回車(chē)鍵。$ 符號(hào)是 Shell 的提示符,意味著 Shell 等著命令的輸入。下面的一行就是當(dāng)前目錄下的文件名。

什么是 Shell 提示符?

提示符,即 $,被稱(chēng)作命令提示符,是由 Shell 發(fā)出的(LCTT 譯注:這個(gè)概念,可能有誤。請(qǐng)參看:https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Controlling-the-Prompt )。當(dāng)提示符出現(xiàn)后(LCTT 譯注:此處提示符并不特指 $ 符號(hào)),你就可以輸入命令了。Shell 將會(huì)在你按下回車(chē)鍵后讀取你的輸入。它會(huì)通過(guò)查看你輸入的第一個(gè)單詞來(lái)確定你希望執(zhí)行的命令。“單詞”指的是一組連續(xù)的字符??崭窈椭票矸鳛榉指顔卧~的標(biāo)志。

不同類(lèi)型的 Shell

由于沒(méi)有限制只能有一個(gè) Shell,你可以按照自己的意愿來(lái)自由選擇運(yùn)行任何一種 Shell。這當(dāng)然挺好的,但是在不清楚其它替代方案的情況下選擇一種 Shell 沒(méi)有多大益處。下面列出了一些 UNIx/Linux 下常見(jiàn)的 Shell。

Sh(Bourne Shell)

最初的 Unix Shell 通常被稱(chēng)作 Sh,是 Shell(或 Bourne Shell)的簡(jiǎn)寫(xiě),以其作者 Steven Bourne 命名。它在幾乎所有的類(lèi) UNIX 操作系統(tǒng)下都可以找到。基本的 Bourne Shell 僅支持相當(dāng)有限的命令行編輯。你可以輸入字符,使用退格鍵刪除字符,還有就是按下回車(chē)鍵來(lái)執(zhí)行命令。當(dāng)命令行出現(xiàn)異常了,你可以按下 Ctrl-C 組合鍵來(lái)終止整個(gè)命令。

Csh(C Shell)

它是由加利福尼亞大學(xué)伯克利分校的 Bill Joy 設(shè)計(jì)的,由于它的語(yǔ)法和 C 語(yǔ)言相似,所以被命名為 C Shell。這種 Shell 在 Bourne shell 的基礎(chǔ)上增加了一些實(shí)用功能,尤其是可以重用之前的命令來(lái)幫助創(chuàng)建之后要執(zhí)行的命令。當(dāng)你去完成一項(xiàng)專(zhuān)門(mén)任務(wù)的時(shí)候,大多數(shù)的情況下需要執(zhí)行不止一條命令,這樣 C shell 的能力就相當(dāng)有用了。

Ksh(Korn Shell)

它是由貝爾實(shí)驗(yàn)室的 David Korn 創(chuàng)造的,Korn Shell 提供了和 C Shell 相同的增強(qiáng),其中有一項(xiàng)重要的不同:Korn Shell 提供了對(duì)舊的 Bourne Shell 語(yǔ)法的向后兼容。在 Unix 下,如 AIX & HP-UX 上,Korn Shell 是默認(rèn) Shell。

Bash(Bourne Again Shell)

Bash 提供了像 Korn Shell 一樣的命令行編輯,像 C Shell 一樣的文件名補(bǔ)全和許多其它的高級(jí)功能。許多用戶(hù)認(rèn)為 Bash 集 Korn Shell 和 C Shell 的優(yōu)點(diǎn)于一身。在 Linux 和 mac OS X 系統(tǒng)下,Bash 是默認(rèn)的 Shell。

Tcsh(T C Shell)

Linux 系統(tǒng)推廣了 Tcsh。Tcsh 擴(kuò)展了傳統(tǒng)的 csh,增加了命令行編輯、文件名補(bǔ)全和其它功能。例如,當(dāng)你按下 Tab 鍵后,Tcsh 會(huì)補(bǔ)全文件和目錄名(與 Bash 中的按鍵相同)。舊的 C Shell 不支持這項(xiàng)功能。

什么是 Shell 腳本呢?

Shell 腳本是包含一條或多條命令的文本文件。在 Shell 腳本中,Shell 程序假定文本文件的每一行是一條不同的命令。這些命令的大部分就和你在 Shell 窗口手動(dòng)輸入的一樣。

為什么要使用 Shell 腳本呢?

Shell 腳本被用來(lái)自動(dòng)化管理任務(wù)、簡(jiǎn)化復(fù)雜的配置細(xì)節(jié),并且充分運(yùn)用操作系統(tǒng)的性能。有了組合不同命令的能力就可以創(chuàng)造新命令了,從而增加操作系統(tǒng)的價(jià)值。此外,結(jié)合使用 Shell 與圖形化桌面環(huán)境,可以兼得二者之長(zhǎng)。

從系統(tǒng)管理員的角度看,日復(fù)一日的重復(fù)工作可以使用 Shell 腳本來(lái)實(shí)現(xiàn)自動(dòng)處理,那就可以節(jié)約時(shí)間從事其它高質(zhì)量的工作。

創(chuàng)建第一個(gè) Shell 腳本

在當(dāng)前工作目錄下創(chuàng)建一個(gè)名為 myscript.sh 的文本文件,所有的 Shell 腳本都有 .sh 的擴(kuò)展名(LCTT 譯注:Linux 下根本沒(méi)有擴(kuò)展名一說(shuō),沒(méi)有這個(gè)擴(kuò)展一樣是可以執(zhí)行的)。腳本的第一行是 #!/bin/sh 或 #!/bin/bash,因?yàn)?nbsp;# 符號(hào)被稱(chēng)作 “hash” 并且 ! 符號(hào)被稱(chēng)作 “bang” 故被稱(chēng)為 shebang(釋伴)。至于 /bin/sh 和 /bin/bash 則指出了命令將被 Sh 還是 Bash shell 執(zhí)行。

以下就是 myscript.sh 的內(nèi)容:

#!/bin/bash
# Written by LinuxTechi
echo
echo "Current Working Directory: $(pwd)"
echo
echo "Today' Date & Time: $(date)"
DISK=$(df -Th)
echo
echo "Disk Space on System:"
echo "$DISK"

上方的腳本將會(huì)展示當(dāng)前工作目錄、今天的日期與時(shí)間,還有磁盤(pán)空間。我們需要用到 echo 命令 和其它 Linux 命令 來(lái)實(shí)現(xiàn)這個(gè)腳本。

使用如下的 chmod 命令 來(lái)給文件增加執(zhí)行權(quán)限:

$ chmod a+x myscript.sh

現(xiàn)在來(lái)執(zhí)行腳本:

$ sh myscript.sh
或
$ ./myscript.sh

注意:在當(dāng)前目錄下執(zhí)行當(dāng)前目錄下的 Shell 腳本,須使用 ./<腳本名> 方式,如下所示:

在 Shell 腳本中獲取用戶(hù)輸入

read 命令用來(lái)獲取用戶(hù)的鍵盤(pán)輸入,并且將之賦值給一個(gè)變量。echo 命令用來(lái)展示內(nèi)容。

讓我們更改上方的腳本以使之獲取輸入:

#!/bin/bash
# Written by LinuxTechi
read -p "Your Name: " NAME
echo
echo "Today' Date & Time: $(date)"
echo
read -p "Enter the file system:" DISK
echo "$(df -Th $DISK)""

現(xiàn)在,再執(zhí)行腳本試試,這回應(yīng)該會(huì)有輸入信息的提醒:

$ ./myscript.sh
Your Name: Pradeep Kumar
Today' Date & Time: Sat 15 Oct 05:32:38 BST 2022
Enter the file system:/mnt/data
Filesystem Type Size Used Avail Use% Mounted on
/dev/mApper/volgrp01-lv01 ext4 14G 24K 13G 1% /mnt/data

完美,上方的輸出表明腳本有輸入提醒,并加工處理了相應(yīng)的數(shù)據(jù)。

本文結(jié)束。希望對(duì)你是有用的。非常歡迎任何的疑問(wèn)、反饋。

分享到:
標(biāo)簽:Shell
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定