当前位置: 移动技术网 > 科技>操作系统>Linux > Linux的Shell编程——认识BATH这个Shell

Linux的Shell编程——认识BATH这个Shell

2019年07月13日  | 移动技术网科技  | 我要评论

女王之刃第一季无修,晴川喜欢谁,至尊傲神

linux的shell编程——认识bath这个shell

摘要:本文主要了解了linux系统中的shell,以及什么是bath。

什么是shell

shell是一个命令行解释器,它为用户提供了一个向linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至编写一些程序。

shell处在内核与外层应用程序之间,起着协调用户与系统的一致性、在用户与系统之间进行交互的作用。shell接收用户输入的命令,并把用户的命令从类似abed的ascii码解释为类似0101的机器语言,然后把命令提交到系统内核处理,当内核处理完毕之后,把处理结果再通过shell返回给用户。

与一般命令相比,shell除了是一个命令行解释器,同时还是一门功能强大的编程语言,易编写,易调试,灵活性较强。作为一种命令级语言,shell是解释性的,组合功能很强,与操作系统有密切的关系,可以在shell脚本中直接使用系统命令。大多数linux系统的启动相关文件(一般在/etc/rc.d目录下)都是使用shell脚本编写的。

在linux中操作的命令行界面就是linux的shell,这里的shell主要指的是bash。

shell的分类

目前shell的版本有很多种,如bourne shell、c shell、bash、ksh、tcsh等,它们各有特点。

最重要的shell是bourne shell,这个命名是为了纪念此shell的发明者steven bourne。从1979年起,unix就开始使用bourne shell。bourne shell的主文件名为sh,开发人员便以sh作为bourne shell的主要识别名称。

虽然linux与unix一样,可以支持多种shell,但bourne shell的重要地位至今仍然没有改变,许多unix系统中仍然使用sh作为重要的管理工具。它的工作从开机到关机,几乎无所不包。在linux中,用户shell主要是bash,但在启动脚本、编辑等很多工作中仍然使用bourne shell。

c shell是广为流行的shell变种。c shell主要在bsd版的unix系统中使用,发明者是柏克莱大学的bill joy。c shell因为其语法和c语言类似而得名,这也使得unix的系统工程师在学习c shell时感到相当方便。

bourne shell和c shell形成了shell的两大主流派别,后来的变种大都吸取这两种shell的特点,如ksh、tcsh及bash。

bashshell是gnu计划的重要工具之一,也是gnu系统中标准的shell。bash与sh兼容,所以许多早期开发出来的bourne shell程序都可以继续在bash中运行。现在使用的linux就使用bash作为用户的基本shell。

bash于1988年发布,并在1995-1996年推出bash 2.0。在这之前,广为使用的版本是1.14,bash 2.0增加了许多新的功能,以及具备更好的兼容性。

注意,shell的两种主要语法类型有bourne和c,这两种语法彼此不兼容。boume家族主要包括sh、ksh、bash、psh、zsh,c家族主要包括csh、tcsh(bash和zsh在不同程序上支持csh的语法)。

本章讲述的脚本编程就是在bash环境中进行的。不过,在linux中除了可以支持bash,还可以支持很多其他的shell。我们可以通过/etc/shells文件来査询linux支持的shell。命令如下:

1 [root@localhost ~]# cat /etc/shells 
2 /bin/sh
3 /bin/bash
4 /sbin/nologin
5 /usr/bin/sh
6 /usr/bin/bash
7 /usr/sbin/nologin
8 [root@localhost ~]# 

在linux中,这些shell是可以任意切换的,命令如下:

1 [root@localhost ~]# sh
2 sh-4.2# ls
3 anaconda-ks.cfg  test
4 sh-4.2# exit
5 exit
6 [root@localhost ~]# 

root用户和其他可以登录系统的普通用户的登录shell都是/bin/bash,也就是linux的标准shell,所以这些用户登录之后可以执行权限允许范围内的所有命令。不过,所有的系统用户(伪用户)因为登录shell是/sbin/ndogin,所以不能登录系统。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网