ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

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

2020-02-19 21:41:13  阅读:938  来源: 互联网

标签:shell csh 命令 sh Shell 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的内置命令。

难得 yx 发布了213 篇原创文章 · 获赞 9 · 访问量 6559 私信 关注

标签:shell,csh,命令,sh,Shell,bash,输入
来源: https://blog.csdn.net/weixin_45649763/article/details/104400466

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有