云南建设工程质量监督网站,seo三人行网站,网站建设优化方案,公司域名查询网站以下内容源于C语言中文网的学习与整理#xff0c;非原创#xff0c;如有侵权请告知删除。 我们知道#xff0c;Windows、Mac OS、Android 等操作系统由一家公司开发#xff0c;所有的核心软件和基础库都由一家公司做决定#xff0c;容易形成统一的标准#xff0c;一般不会…以下内容源于C语言中文网的学习与整理非原创如有侵权请告知删除。 我们知道Windows、Mac OS、Android 等操作系统由一家公司开发所有的核心软件和基础库都由一家公司做决定容易形成统一的标准一般不会开发多款功能类似的软件。 而 Linux 是一个开源的操作系统由多个组织机构开发不同的组织机构为了发展自己的 Linux 分支可能会开发出功能类似的软件它们各有优缺点用户可以自由选择。Shell 就是这样的一款软件上篇文章讲到Shell既是脚本编程语言也是一个命令行程序或者说一款软件不同的组织机构开发了不同的 Shell它们各有所长有的占用资源少有的支持高级编程功能有的兼容性好有的重视用户体验。常见的 Shell 有 sh、bash、csh、tcsh、ash 等。 sh sh 的全称是 Bourne shell由 ATT 公司的 Steve Bourne开发为了纪念他就用他的名字命名了。 sh 是 UNIX 上的标准 shell很多 UNIX 版本都配有 sh。sh 是第一个流行的 Shell。 csh sh 之后广为流传的 shell 是由柏克莱大学的 Bill Joy 设计的它的语法有点类似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 由 GNU 组织开发保持了对 sh shell 的兼容性是各种 Linux 发行版默认配置的 shell。bash 兼容 sh 意味着针对 sh 编写的 Shell 代码可以不加修改地在 bash 中运行。 尽管如此bash 和 sh 还是有一些不同之处。一方面bash 扩展了一些命令和参数。另一方面bash 并不完全和 sh 兼容它们有些行为并不一致但在大多数企业运维的情况下区别不大特殊场景可以使用 bash 代替 sh。 查看Shell SHELL是 Linux 系统中的环境变量它指明了当前使用的 Shell 程序的位置也就是使用的哪个 Shell。我们可以使用“echo $SHELL”查看当前Linux 的默认 Shell。 Shell 是一个程序一般都是放在/bin或者/user/bin目录下当前 Linux 系统可用的 Shell 都记录在/etc/shells文件中。/etc/shells是一个纯文本文件可以使用 cat 命令查看它。 另外在现代的 Linux 上sh 已经被 bash 代替/bin/sh往往是指向/bin/bash的符号链接。 rootubuntu:/etc# cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
rootubuntu:/etc# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Sep 22 2018 /bin/sh - bash
rootubuntu:/etc# echo $SHELL
/bin/bash
rootubuntu:/etc#