Linux shell分给几类?Linux入门

  shell是一门脚本语言,即shell脚本,shell也是解释执行的脚本语言,可直接调用Linux命令,所以它在Linux系统中有着非常重要的作用。那么Linux shell有哪些类型?我们来看看吧。

  shell脚本语言是弱类型语言,无需定义变量的类型就可使用,主要有两大类:bourne shell、C shell。

  第一种:Bourne shell

  Bourne shell又包括Bourne shell (sh)、Korn shell (ksh)、Bourne Again Shell(bash)三种类型。

  Bourne shell (sh)由AT&T的Steve Bourne开发,是标准的UNIX Shell,很多UNIX系统都配有sh。

  Korn shell (ksh)由David Korn开发,是Bourne shell(sh)的超集合,并且添加了csh引入的新功能,是目前很多UNIX系统标准配置的Shell,在这些系统上的/bin/sh往往是指向/bin/ksh的符号链接。

  Bourne Again Shell即bash由GNU项目组开发,主要目标是与POSIX标准保持一致,同时兼顾对sh的兼容,bash从csh和ksh借鉴了很多功能,是各种Linux发行版默认配置的Shell,在Linux系统上的/bin/sh往往是指向/bin/bash的符号链接。虽然如此,bash和sh还是有很多的不同,一方面,bash扩展了一些命令和参数,另一方面,bash并不完全和sh兼容,它们有些行为并不一致,但大多数企业运维的情况下区别不大,特殊场景可以使用bash替代sh。

  第二种:C shell

  C shell又包括csh、tcsh两种类型。

  csh由Berkeley大学开发,随BSD UNIX发布,它的流程控制语句很像C语言,支持很多Bourne Shell所不支持的功能,例如:作业控制、别名、系统算术、命令历史、命令行编辑等。

  tcsh是csh的增强版,加入了命令补全等功能,在FreeBSD、Mac OS X等系统上替代了csh。

  以上介绍的这些Shell中,较为通用的是标准的Bourne shell (sh)和C shell (csh)。其中Bourne shell (sh)已经被Bourne Again shell (bash) 取代。

  可通过以下命令查看CentOS7系统的Shell支持情况。

  [root@oldboy ~]# cat /etc/shells

  /bin/sh #<==这是Linux里常用的Shell,指向/bin/bash。

  /bin/bash #<==这是Linux里常用的Shell,也是默认使用的Shell。

  /usr/bin/sh

  /usr/bin/bash

  Linux系统中的主流Shell是bash,bash是由Bourne Shell(sh)发展而来的,但bash还包含了csh和ksh的特色,但大多数脚本都可以不加修改地在sh上运行,如果你使用sh后发现结果和预期有差异,那么可以尝试使用bash替代sh。

(0)

相关推荐

  • linux shell bash

    shell脚本后台运行,加&,例如 ./xxx.sh & 这时候会给个pid 但ps -ef发现,这个脚本的名字叫-bash,而不是xxx.sh

  • 找出Linux上使用的shell的最佳方法

    来自:Linux迷    链接:https://www.linuxmi.com Linux和Unix都提供了开箱即用的各种shell.你可以找到bash (Bourne shell), ksh (Ko ...

  • Linux学习笔记(一)——Shell

    Shell概述 1. Shell是什么 l Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编写一些程 ...

  • Linux shell分为几类?有什么特性?

    Shell是Linux系统的外壳,它是用户和Linux操作系统之间的接口,并且具有很多种类型.那么什么是Shell?Shell分为哪几类?linux Shell有什么特性?我们来看看具体的内容介绍. ...

  • 为什么要有Shell脚本注释?linux学习入门系统

    在Linux系统中,Shell脚本(bash Shell程序)通常是在编辑器vi/vim中编写的,由UNIX/Linux命令.bash Shell命令.程序结构控制语句和注释等内容组成.那么Shell ...

  • Ubuntu和Linux有什么关系?Linux运维入门!

    Ubuntu.Linux是什么?它们之间如何区别?对于很多人来说都有这样的疑惑,今天带着你的疑问跟着小编来看看吧. Ubuntu:是一个以桌面应用为主的开源gnu.Linux操作系统,Ubuntu是基 ...

  • Linux如何进行分区?Linux入门

    Linux是当下非常热门的技术,现在越来越多的企业都开始使用Linux,因此很多人都想要转行学习Linux技术.当然在学习Linux的时候,大家都会遇到各种各样的问题,甚至有不少人疑惑Linux系统对 ...

  • shell和shell脚本语言介绍 Linux运维

    Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具.Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本内容.每个合格的Linux系统管理员或运维工程 ...

  • Linux Shell 文本处理工具

    阅读目录 定制搜索 找到后的后续动作 -print的定界符 xargs参数说明 print 打印当前行 特殊变量:NR NF $0 $1 $2 传递外部变量 用样式对awk处理的行进行过滤 设置定界符 ...

  • Linux Shell脚本实现根据进程名杀死进程

    #!/bin/sh#根据进程名杀死进程if [ $# -lt 1 ]then echo "缺少参数:procedure_name" exit 1fi PROCESS=`ps -ef ...

  • Linux Shell 计算脚本执行过程用了多长时间

    #!/bin/bash starttime=`date +'%Y-%m-%d %H:%M:%S'` #执行程序 endtime=`date +'%Y-%m-%d %H:%M:%S'` start_se ...

  • linux shell实用常用命令

    本文主要介绍Linux Shell的一些使用小技巧收集,非常实用,需要的朋友可以参考下. 查看本机某端口是否被占用 netstat -anpt | grep 22 查看远程某端口是否被开放 echo ...