几种常见shell解释器(sh,bash,csh,tcsh,ash)以及bash的优点

shell解释器的定义

Unix/Linux上常见的Shell脚本解释器有bash、sh、csh、ksh等,习惯上把它们称作一种Shell。我们常说有多少种Shell,其实说的是Shell脚本解释器。

shell本身是一个用C程序编写的程序。

用户可以通过shell来向Kernel输入命令,然后shell解释器会将我们输入的命令与内核通信,让内核理解我们需要做些什么。

shell的分类

Linux系统中存在多种shell,我们可以在/etc/shells文件中查看到系统中可用的shell。

用户在登录的时候,系统会给我们安排一个shell.根据/etc/passwd中已经设置好的每个用户的默认shell.

sh

sh的全称是Bourne shell,由AT&T公司的Steve Bourne开发,为了纪念他,就用他的名字命名了。

sh是UNIX上的标准shell,很多UNIX版本都配有sh。sh是第一个流行的Shell。

sh 是Unix 标准默认的shell

csh

sh之后另一个广为流传的shell是由柏克莱大学的Bill Joy设计的,这个shell的语法有点类似C语言,所以才得名为C shell ,简称为csh。

tcsh

tcsh是csh的增强版,加入了命令补全功能,提供了更加强大的语法支持。

ash

一个简单的轻量级的Shell,占用资源少适合运行于低内存环境,但是与下面讲到的 bash shell 完全兼容。

bash

bash shell是Linux的默认shell。

bash由GNU组织开发,保持了对sh shell的兼容性,是各种Linux发行版默认配置的 shell

bash兼容sh意味着,针对sh编写的Shell代码可以不加修改地在bash中运行

bash 的优点

>  可以使用类似DOS下面的doskey的功能,用方向键查阅和快速输入并修改命令。
> 
>     自动通过查找匹配的方式给出以某字符串开头的命令。
> 
>     包含了自身的帮助功能,你只要在提示符下面键入help就可以得到相关的帮助。

具体细说:

1、命令记忆能力(history)

经命令行界面或者terminal中输入命令的时候,经常会需要重复输入前面已经输入的命令会选择使用向上或者向下快捷键来寻找我们之前执行过的命令,特别是在刚开机的时候我们还是能够找到我们以前开机时输入的命令。这是因为bash具有命令记忆能力。
当前用户的主文件下会有一个.bash_history文件,这个文件中就存储着我们之前输入的命令,注意一下,当前登录这一次所输入的命令其实是暂存在内存中的,只有在退出登录的时候才会将内存中的命令记录存储到.bash_history文件中

2、命令和文件补全功能([Tab]键的功能)
3、命令别名设置功能(alias)
4、程序脚本(bash script)

在bash中,我们可以将平时管理系统常需要执行的连续命令写成一个文件,然后通过交互的方式进行主机的检测工作,也可以通过shell提供的环境变量及相关命令来进行设计,这个文件几乎就成了一段小程序了.
5、通配符

如果我们需要显示以a开头的文件名的文件,我们就可以输入命令 ls -al a*。一起其它的通配符都能够在bash中使用。
6、作业控制、前台、后台控制

在命令行界面中,输入好一个命令之后,我们是通过Enter键来执行该命令,但是有时候我们命令比较长,想使用两行来输入比较方便,或者想Enter暂时不要执行命令该怎么办呢?这个时候我们可以通过一个转义字符’'来键Enter键转义,使其暂时不具备执行的性质。注意转义字符‘\’与Enter之间没有任何空格。

最后,我们需要明白一下什么是bash的内置命令和外部命令。内置命令是bash的基本命令,而外部命令是是扩展Linux功能的一些命令,像是vim等,是另外一些软件所提供的命令。我们可以通过type命令来查看一个命令的是否属于 bash的内置命令。

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用:Shell是一种脚本语言,它是操作系统和用户之间的接口,提供一个解释器,用户可以在命令行下直接输入命令并执行[^1]。BashCshTcsh都是Shell几种变种,不同Shell之间有着不同的语法和特点。其中,Bash是Linux和macOS系统默认的ShellCshTcsh则是FreeBSD和其他一些UNIX系统默认的Shell,下面分别介绍一下它们的特点和用法: 1. Bash Bash是GNU计划的一部分,是Linux和macOS系统默认的ShellBash支持命令行补全、命令行历史、作业控制、别名、函数等高级特性。Bash的语法与POSIX标准兼容,同时支持许多扩展语法。以下是几个Bash的例子: ```shell # 输出当前目录下的文件列表 ls # 创建一个名为test的目录 mkdir test # 进入test目录 cd test # 在test目录下创建一个名为test.txt的文件 touch test.txt # 使用cat命令查看文件内容 cat test.txt ``` 2. Csh Csh是一种类似于C语言的Shell,它支持C语言的语法和结构。Csh的语法相对简单,但是不如Bash功能强大。以下是几个Csh的例子: ```csh # 输出当前目录下的文件列表 ls # 创建一个名为test的目录 mkdir test # 进入test目录 cd test # 在test目录下创建一个名为test.txt的文件 touch test.txt # 使用cat命令查看文件内容 cat test.txt ``` 3. Tcsh TcshCsh的改进版,它在Csh的基础上增加了一些新特性,例如命令行编辑和历史记忆功能。Tcsh的语法与Csh基本相同,以下是几个Tcsh的例子: ```tcsh # 输出当前目录下的文件列表 ls # 创建一个名为test的目录 mkdir test # 进入test目录 cd test # 在test目录下创建一个名为test.txt的文件 touch test.txt # 使用cat命令查看文件内容 cat test.txt ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值