Linux系统的shell作为 *** 作系统的外壳,为用户提供使用 *** 作系统的接口。它是命令语言、命令解释程序及程序设计语言。
shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。
shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中的其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。
Linux常用的shell有哪些?
1、Bourne shell
Bourne shell是一个交换式的命令解释器和命令编程语言。
Bourne shell是标准的UNIX shell,以前常被用来做为管理系统之用。大部分的系统管理命令文件,例如rcstart、stop与shutdown都是Bourne shell的命令档,且在单一使用者模式下以root签入时它常被系统管理者使用。Bourneshell是由AT$T发展的,以简洁、快速著名,Bourne shell提示符号的默认值是$。
2、C shell
C shell是一种比Bourneshell更适合的变种shell,使用的是类C语言,csh是具有C语言风格的一种shell,其内部命令有52个,比较庞大。
C shell是柏克莱大学所开发的,且加入了一些新特性,如命令列历程、别名、内建算术、档名完成和工作控制。对于常在交谈模式下执行shell的使用者而言,他们较喜欢用C
shell但对于系统管理者而言,则较偏好以Bourne shell来做命令档,因为Bourne shell命令档比C shell命令档来的简单及快速。C shell提示符号的默认值是%。
3、korn shell
korn shell是一个Unix shell,它由贝尔实验室的David Korn在二十世纪八十年代早期编写。它完全向上兼容Bourne shell并包含了c shell的很多特性,例如贝尔实验室用户需要的命令编辑。
Korn shell是Bourne shell的超集,由AT&T的David korn所开发。它增加了一些特色,比C shell更为先进。Korn shell的特色包括了可编辑的历程、别名、函式、正则表达式万用字符、内建算术、工作控制、共作处理和特殊的除错功能。Korn shell提示符号的默认值也是$。
linux中的shell究竟是;
ll程序呢? 简单的说shell程序就是一个包含若干行
shell或者linux命令的文件.
象编写高级语言的程序一样,编写一个shell程序需要一个文本编辑器.如VI等.
在文本编辑环境下,依据shell的语法规则,输入一些shell/linux命令行,形成一个完整
的程序文件.
tcsh shell 不使用test命令,但是tcsh中的表达式同样能承担相同的功能.tcsh
支持的表达式于C中的表达式相同.通常使用在if和while命令中.
tcsh表达式 | 含义
shell是一门脚本语言,即shell脚本,shell也是解释执行的脚本语言,可直接调用Linux命令,所以它在Linux系统中有着非常重要的作用。那么Linux
shell有哪些类型?我们来看看吧。
shell脚本语言是弱类型语言,无需定义变量的类型就可使用,主要有两大类:bourne shell、C shell。
第一种: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。
第二种: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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)