最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Shell腳本編程——1. Shell簡介

2022-12-30 12:39 作者:房子下面一頭豬  | 我要投稿

1. Shell簡介

  • shell是提供交互式計算機(jī)編程環(huán)境的UNIX程序,在終端窗口中使用 shell 與 UNIX 風(fēng)格的操作系統(tǒng)(例如 Linux 或 MacOS)進(jìn)行交互。

  • shell 位于用戶和操作系統(tǒng)之間,提供一些有用的命令和功能。簡單來看,shell是一個程序,用于為用戶運行指定命令并向用戶顯示運行結(jié)果。

1.1 特性

1.1.1 命令嵌套

把已有命令進(jìn)行適當(dāng)組合構(gòu)成新的命令。

1.1.2 文件名擴(kuò)展

提供了文件名擴(kuò)展字符(通配符,如* 、 ?、 [ ]),使得用單一的字符串可以匹配多個文件名,省去鍵入一長串文件名的麻煩。

1.1.3 直接使用Shell內(nèi)置命令

  • 可以直接使用Shell的內(nèi)置命令,而不需創(chuàng)建新的進(jìn)程,如Shell中提供的cd、echo、exit、pwd、kill等命令。為防止因某些Shell不支持這類命令而出現(xiàn)麻煩,許多命令都提供了對應(yīng)的二進(jìn)制代碼,從而也可以在新進(jìn)程中運行。

  • 通常來說,內(nèi)建命令會比外部命令執(zhí)行得更快,執(zhí)行外部命令時不但會觸發(fā)磁盤 I/O,還需要 fork 出一個單獨的進(jìn)程來執(zhí)行,執(zhí)行完成后再退出。而執(zhí)行內(nèi)建命令相當(dāng)于調(diào)用當(dāng)前 Shell 進(jìn)程的一個函數(shù)。

1.1.4 靈活地使用數(shù)據(jù)流

Shell允許靈活地使用數(shù)據(jù)流,提供通配符、輸入/輸出重定向、管道線等機(jī)制,方便了模式匹配、I/O處理和數(shù)據(jù)傳輸。

1.1.5 結(jié)構(gòu)化

結(jié)構(gòu)化的程序模塊,提供了順序流程控制、條件控制、循環(huán)控制等。

1.1.6 可后臺執(zhí)行

Shell提供了在后臺執(zhí)行命令的能力。

1.1.7 環(huán)境可配置

Shell提供了可配置的環(huán)境,允許創(chuàng)建和修改命令、命令提示符和其它的系統(tǒng)行為。

1.1.8 可創(chuàng)建復(fù)雜程序(Shell腳本)

Shell提供了一個高級的命令語言,能夠創(chuàng)建從簡單到復(fù)雜的程序。這些Shell程序稱為Shell腳本,利用Shell腳本,可把用戶編寫的可執(zhí)行程序與Unix命令結(jié)合在一起,當(dāng)作新的命令使用,從而便于用戶開發(fā)新的命令。

1.2 Shell種類

  • sh:Bourne Shell,UNIX 上的標(biāo)準(zhǔn)shell,很多UNIX版本都配有sh

  • bash:Bourne Again Shell,Linux的默認(rèn)shell,bash兼容sh,但并不完全一致

  • csh:C Shell,語法與C語言相似

  • ksh:Korn Shell,基于Bourne shell的源代碼發(fā)展而來
    ...

查看當(dāng)前系統(tǒng)所有可用的Shell

查看當(dāng)前正在使用的Shell

查看系統(tǒng)默認(rèn)的Shell

sh 一般被 bash 代替,/bin/sh往往是指向/bin/bash的符號鏈接

1.3 命令執(zhí)行方式

  • 交互式(Interactive):解釋執(zhí)行用戶的命令,用戶輸入一條命令,Shell就解釋執(zhí)行一條

  • 批處理(Batch):用戶事先寫一個Shell腳本(Script),其中有很多條命令,讓Shell一次把這些命令執(zhí)行完,而不必一條一條地敲命令。

1.4 使用場景

1.4.1 建議使用的場景

  • 使用只基于 UNIX 風(fēng)格的操作系統(tǒng)(如Linux)開發(fā)的程序(如bwa、gatk),或需要在服務(wù)器上運行軟件

  • 文件操作可以使用簡單的命令完成

  • 批量操作文件/文件夾

  • 主要調(diào)用其他應(yīng)用程序并且數(shù)據(jù)操作較少

  • 多條命令需要被重復(fù)執(zhí)行時(Shell腳本)

1.4.2 不建議使用的場景

  • 資源密集型的任務(wù),尤其在需要考慮效率時(如排序,hash等)

  • 需要處理大量數(shù)學(xué)操作,尤其是浮點運算,精確運算,或者復(fù)雜的算術(shù)運算(C/C++)

  • 有跨平臺(操作系統(tǒng))移植需求(一般使用C或Java)

  • 復(fù)雜的應(yīng)用,在必須使用結(jié)構(gòu)化編程的時候(需要變量的類型檢查,函數(shù)原型等)

  • 需要復(fù)雜數(shù)據(jù)結(jié)構(gòu)的支持,比如類、鏈表或多維數(shù)組等數(shù)據(jù)結(jié)構(gòu)(R、Python)。

  • 需要產(chǎn)生或操作圖形化界面 GUI。

  • 私人的、閉源的程序


Shell腳本編程——1. Shell簡介的評論 (共 條)

分享到微博請遵守國家法律
石泉县| 太保市| 潞西市| 青海省| 宁强县| 本溪市| 北京市| 化隆| 盐边县| 东丽区| 密山市| 温州市| 舞阳县| 衡阳县| 德江县| 聊城市| 黑水县| 海南省| 旺苍县| 高密市| 靖安县| 大埔县| 南宫市| 靖边县| 南昌县| 双峰县| 潮安县| 黑水县| 社旗县| 万盛区| 沙坪坝区| 盱眙县| 阿巴嘎旗| 湖南省| 齐河县| 莱西市| 沛县| 五家渠市| 牟定县| 怀化市| 昌图县|