Linux 是一个开源的操作系统,由分布在世界各地的多个组织机构或个人共同开发完成,每个组织结构或个人负责一部分功能,最后组合在一起,就构成了今天的 Linux。例如:

  • Linux 内核最初由芬兰黑客 Linus Torvalds 开发,后来他组建了团队,Linux 内核由这个团队维护。
  • GNU 组织开发了很多核心软件和基础库,例如 GCC 编译器、C语言标准库、文本编辑器 Emacs、进程管理软件、Shell 以及 GNOME 桌面环境等。
  • VIM 编辑器由荷兰人 Bram Moolenaar 开发。

Windows、Mac OS、Android 等操作系统不一样,它们都由一家公司开发,所有的核心软件和基础库都由一家公司做决定,容易形成统一的标准,一般不会开发多款功能类似的软件。

而 Linux 不一样,它是“万国牌”,由多个组织机构开发,不同的组织机构为了发展自己的 Linux 分支可能会开发出功能类似的软件,它们各有优缺点,用户可以自由选择。Shell 就是这样的一款软件,不同的组织机构开发了不同的 Shell,它们各有所长,有的占用资源少,有的支持高级编程功能,有的兼容性好,有的重视用户体验。

Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件。

常见的 Shell 有 sh、bash、csh、tcsh、ash 等。

sh

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

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

csh

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

Bill Joy 是一个风云人物,他创立了 BSD 操作系统,开发了 vi 编辑器,还是 Sun 公司的创始人之一。

BSD 是 UNIX 的一个重要分支,后人在此基础上发展出了很多现代的操作系统,最著名的有 FreeBSD、OpenBSD 和 NetBSD,就连 Mac OS X 在很大程度上也基于BSD。

tcsh

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

ash

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

bash

bash shell 是 Linux 的默认 shell,本教程也基于 bash 编写。

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

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

尽管如此,bash 和 sh 还是有一些不同之处:

  • 一方面,bash 扩展了一些命令和参数;
  • 另一方面,bash 并不完全和 sh 兼容,它们有些行为并不一致,但在大多数企业运维的情况下区别不大,特殊场景可以使用 bash 代替 sh。

查看 Shell

Shell 是一个程序,一般都是放在 /bin 或者 /user/bin 目录下,当前 Linux 系统可用的 Shell 都记录在 /etc/shells 文件中。 /etc/shells 是一个纯文本文件,你可以在图形界面下打开它,也可以使用 cat 命令查看它。

通过 cat 命令来查看当前 Linux 系统的可用 Shell:

$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

在现代的 Linux 上,sh 已经被 bash 代替, /bin/sh 往往是指向 /bin/bash 的符号链接。

如果你希望查看当前 Linux 的默认 Shell,那么可以输出 SHELL 环境变量:

$ echo $SHELL
/bin/bash

输出结果表明默认的 Shell 是 bash。

echo是一个 Shell 命令,用来输出变量的值,我们将在《Shell echo命令》中详细介绍它的用法。SHELL是 Linux 系统中的环境变量,它指明了当前使用的 Shell 程序的位置,也就是使用的哪个 Shell。

摘自:http://c.biancheng.net/cpp/view/6995.html

几种常见的Shell:sh、bash、csh、tcsh、ash相关推荐

  1. Shell: sh,bash,csh,tcsh等shell的区别

    转载自:http://zhidao.baidu.com/question/493376840.html, http://blog.sina.com.cn/s/blog_71261a2d0100wmbj ...

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

    文章目录 shell解释器的定义 shell的分类 sh csh tcsh ash bash bash 的优点 shell解释器的定义 Unix/Linux上常见的Shell脚本解释器有bash.sh ...

  3. sh/bash/csh/Tcsh/ksh/pdksh等shell本质区别

    sh/bash/csh/Tcsh/ksh/pdksh等shell本质区别 1. Shell脚本的书写 在写Shell脚本时,往往第一行要注明用什么解释器来解释这个脚本. 如#!/bin/bash即用/ ...

  4. 几种常见的Shell:sh、bash、tcsh、csh、ash的区别

    @Author : Spinach | GHB @Link : http://blog.csdn.net/bocai8058 文章目录 概念 sh csh tcsh ash bash 查看 Shell ...

  5. Linux shell:sh csh tcsh ash bash dash zsh

    Shell :贝壳,寓意类似内核的壳,Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.Shell 是一个用 C 语言编写的程序,它是用户使用 Linux ...

  6. Linux + Shell bash / sh / ksh / csh / tcsh

    Redhat Gnome Terminal 快捷键 http://huangchao200701.javaeye.com/blog/263002 常用 win+n切换背景颜色风格 alt+tab=不用 ...

  7. linux终端配置bash和csh,bash csh/tcsh 环境变量的设置

    用户shell配置文件 $HOME/.profile (Bourne shell, sh, bash) $HOME/.cshrc (csh, tcsh) $HOME/.tcshrc (tcsh) /e ...

  8. linux几种常见的Shell:sh、bash、csh、tcsh、ash

    Linux 是一个开源的操作系统,由分布在世界各地的多个组织机构或个人共同开发完成,每个组织结构或个人负责一部分功能,最后组合在一起,就构成了今天的 Linux.例如: Linux 内核最初由芬兰黑客 ...

  9. 几种常见的Shell

    上面提到过,Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把它们称作一种Shell.我们常说 ...

最新文章

  1. 网络主机监控-nagios应用漫谈(三)
  2. ios 图像翻转_在iOS 14中使用计算机视觉的图像差异
  3. 2007cad多个文件窗口上部排列_【中考信息技术总复习讲义】模块三 操作系统与文件管理...
  4. 队列处理高并发_高并发架构消息队列面试题解析
  5. 力扣589. N叉树的前序遍历 (JavaScript)
  6. 【Cocos2D-X 】初窥门径(9)播放音乐/音效
  7. 近24小时以太坊上的DEX交易量超过150亿美元
  8. Faster R-CNN 论文笔记
  9. 收藏 | NLP论文、代码、博客、视频资源(LSTM,指针模型,Attention, ELMo,GPT,BERT、多任务学习等)...
  10. android自动挂掉电话,Android-实现电话自动接听/电话自动挂断功能
  11. talentcentral测评结果_校招的时候性格测试直接跪了,到底是怎么个机制?
  12. Dreamweaver开发人员工作区 标准工作区的区别
  13. 爱荷华州立大学计算机专业,爱荷华州立大学|Iowa State University|Department of Electrical and Computer Engineering_毕达留学...
  14. Logo创作灵魂(下篇)
  15. [数据挖掘笔记] KMeans豆瓣文本聚类
  16. 开发步骤_APP开发和上市的步骤
  17. (01背包扩展) 算法提高 金明的预算方案
  18. 20 | 幻读是什么,幻读有什么问题?
  19. 为什么MySql每晚12点都会弹出这个?
  20. dw自动滚动图片_DW图片无缝滚动代码

热门文章

  1. 写一个爬虫,可以爬取百度文库内容
  2. 机器学习基础知识点⑤数据增强、类别不平衡
  3. 【控制系统数字仿真与CAD——实验报告】实验四:黄金分割法最优化PI调节器参数(文末附完整代码 + 实验结果)
  4. 第一次写ssm项目经验总结
  5. LocalResolver国际化语言转换
  6. leetcode125.验证回文串
  7. 2022年T电梯修理操作证考试题库及在线模拟考试
  8. 迷你计算机工作站,这到底是什么 迄今最mini的工作站即将发售
  9. 关于战略解码工具和方法的澄清(战略解码、OGSM、BEM模型、战略地图与平衡计分卡、OKR)
  10. MATLAB常用命令及函数大全(字母顺序)