unixlinuxshell
⑴ linux shell有哪些 类型
2.4脚本语言的种类
2.4.1 Shell脚本语言的种类
Shell脚本语言是弱类型语言(无需定义变量的类型就可使用),在Unix/Linux中主要有两大类Shell,一类是Bourne shell,另一类是C shell。
1. 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。
2. 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。
内容来源:《跟老男孩学linux运维:Shell高级编程实战》第02章_Shell脚本初步入门
⑵ linux 有哪些shell
Linux下的常见Shell有:Bash、sh、zsh、ksh、csh等。
以下是关于Linux中常见Shell的
Bash(Bourne Again SHell):Bash是Linux中最流行的shell之一。它是Bourne shell的替代品,兼容并扩展了许多其他shell的特性。Bash拥有丰富的功能,包括编程接口、可配置的编辑界面和命令行编辑功能。由于其强大的功能和易用性,Bash成为了很多Linux用户的首选shell。
sh(Bourne Shell):sh是最早的Unix shell,是Unix系统上最早的命令行解释器。虽然其功能相对简单,但在早期的Linux系统中仍然广泛使用。许多其他shell都是基于Bourne shell的。
zsh(Z Shell):zsh是一个功能强大的shell,拥有丰富的特性和配置选项。它提供了丰富的命令行编辑功能、自动补全和语法高亮等功能。zsh还支持插件和自定义脚本,使得用户可以轻松扩展其功能。
ksh(Korn Shell):ksh是一种流行的shell,它结合了其他shell的特性并扩展了一些新功能。ksh具有强大的编程接口和命令行编辑功能,使得它成为许多系统管理员和高级用户的首选shell。
csh(C Shell):csh是一种历史悠久的shell,主要受到C语言程序员的影响。它具有一些独特的特性,如命令历史记录和内置函数等。尽管csh在某些特定场合仍然被使用,但由于其局限性,它的普及程度不如Bash等其他shell。
每种shell都有其独特的特点和优势,用户可以根据自己的需求和偏好选择合适的shell。在Linux系统中,可以通过命令行界面轻松地切换和使用不同的shell。
⑶ linux unix下的shell编程有什么区别
区别不大,主要看shell的功能。UNIX编程艺术不错,你下载 了看看吧。
⑷ linux/unix 的 shell编程里 pipe功能指的是什么功能
管道功能,简单说就是将一个命令的输出传递给另一个命令作为输入或写入某个文件。就是命令间的数据交换渠道。