unixlinuxshell
⑴ linux shell有哪些 類型
2.4腳本語言的種類
2.4.1 Shell腳本語言的種類
Shell腳本語言是弱類型語言(無需定義變數的類型就可使用),在Unix/Linux中主要有兩大類Shell,一類是Bourne shell,另一類是C shell。
1. Bourne shell
Bourne shell又包括Bourne shell (sh)、Korn shell (ksh)、Bourne Again Shell(bash)三種類型。
Bourne shell (sh)由AT&T的Steve Bourne開發,是標準的UNIX Shell,很多UNIX系統都配有sh。
Korn shell (ksh)由David Korn開發,是Bourne shell(sh)的超集合,並且添加了csh引入的新功能,是目前很多UNIX系統標准配置的Shell,在這些系統上的/bin/sh往往是指向/bin/ksh的符號鏈接。
Bourne Again Shell即bash由GNU項目組開發,主要目標是與POSIX標準保持一致,同時兼顧對sh的兼容,bash從csh和ksh借鑒了很多功能,是各種Linux發行版默認配置的Shell,在Linux系統上的/bin/sh往往是指向/bin/bash的符號鏈接。雖然如此,bash和sh還是有很多的不同,一方面,bash擴展了一些命令和參數,另一方面,bash並不完全和sh兼容,它們有些行為並不一致,但大多數企業運維的情況下區別不大,特殊場景可以使用bash替代sh。
2. C shell
C shell又包括csh、tcsh兩種類型。
csh由Berkeley大學開發,隨BSD UNIX發布,它的流程式控制制語句很像C語言,支持很多Bourne Shell所不支持的功能,例如:作業控制、別名、系統算術、命令歷史、命令行編輯等。
tcsh是csh的增強版,加入了命令補全等功能,在FreeBSD、Mac OS X等系統上替代了csh。
以上介紹的這些Shell中,較為通用的是標準的Bourne shell (sh)和C shell (csh)。其中Bourne shell (sh)已經被Bourne Again shell (bash) 取代。
可通過以下命令查看CentOS7系統的Shell支持情況。
[root@oldboy ~]# cat /etc/shells
/bin/sh #<==這是Linux里常用的Shell,指向/bin/bash。
/bin/bash #<==這是Linux里常用的Shell,也是默認使用的Shell。
/usr/bin/sh
/usr/bin/bash
Linux系統中的主流Shell是bash,bash是由Bourne Shell(sh)發展而來的,但bash還包含了csh和ksh的特色,但大多數腳本都可以不加修改地在sh上運行,如果你使用sh後發現結果和預期有差異,那麼可以嘗試使用bash替代sh。
內容來源:《跟老男孩學linux運維:Shell高級編程實戰》第02章_Shell腳本初步入門
⑵ linux 有哪些shell
Linux下的常見Shell有:Bash、sh、zsh、ksh、csh等。
以下是關於Linux中常見Shell的
Bash(Bourne Again SHell):Bash是Linux中最流行的shell之一。它是Bourne shell的替代品,兼容並擴展了許多其他shell的特性。Bash擁有豐富的功能,包括編程介面、可配置的編輯界面和命令行編輯功能。由於其強大的功能和易用性,Bash成為了很多Linux用戶的首選shell。
sh(Bourne Shell):sh是最早的Unix shell,是Unix系統上最早的命令行解釋器。雖然其功能相對簡單,但在早期的Linux系統中仍然廣泛使用。許多其他shell都是基於Bourne shell的。
zsh(Z Shell):zsh是一個功能強大的shell,擁有豐富的特性和配置選項。它提供了豐富的命令行編輯功能、自動補全和語法高亮等功能。zsh還支持插件和自定義腳本,使得用戶可以輕松擴展其功能。
ksh(Korn Shell):ksh是一種流行的shell,它結合了其他shell的特性並擴展了一些新功能。ksh具有強大的編程介面和命令行編輯功能,使得它成為許多系統管理員和高級用戶的首選shell。
csh(C Shell):csh是一種歷史悠久的shell,主要受到C語言程序員的影響。它具有一些獨特的特性,如命令歷史記錄和內置函數等。盡管csh在某些特定場合仍然被使用,但由於其局限性,它的普及程度不如Bash等其他shell。
每種shell都有其獨特的特點和優勢,用戶可以根據自己的需求和偏好選擇合適的shell。在Linux系統中,可以通過命令行界面輕松地切換和使用不同的shell。
⑶ linux unix下的shell編程有什麼區別
區別不大,主要看shell的功能。UNIX編程藝術不錯,你下載 了看看吧。
⑷ linux/unix 的 shell編程里 pipe功能指的是什麼功能
管道功能,簡單說就是將一個命令的輸出傳遞給另一個命令作為輸入或寫入某個文件。就是命令間的數據交換渠道。