Shell脚本精讲-基础语法

一、发展史与简介

1、作用

1、定义

  1. Shell 是一个程序,提供一个与用户对话的环境。这个环境只有一个命令提示符,让用户从键盘输入命令,所以又称为命令行环境(command line interface,简写为 CLI)。Shell 接收到用户输入的命令,将命令送入操作系统执行,并将结果返回给用户
  2. Shell 是一个命令解释器,解释用户输入的命令。它支持变量、条件判断、循环操作等语法,所以用户可以用 Shell 命令写出各种小程序,又称为脚本(script)。这些脚本都通过 Shell 的解释执行,而不通过编译。

2、架构与作用

        由于安全、复杂、繁琐等原因,用户不能直接接触内核,需要一个程序来接收用户的操作(如点击图标、输入命令),并进行简单的处理后再传递给内核。这样用户就能间接地使用操作系统内核了。

        Shell 这个单词的原意是“外壳”,跟 kernel(内核)相对应,比喻内核外面的一层,即用户跟内核交互的对话界面。

        shell就起到了这样一个“代理”的作用,既能简化用户的操作,又能保障内核的安全。

        shell是一个连接用户和内核的“绝缘层”,让用户能够更加高效、安全、低成本地使用内核。shell是介于外部应用程序与Kernel内核之间的一层.

 2、shell解释器发展史

1、**sh**(Bourne Shell)

        1、起源:sh是最早的Unix shell,也是其他shell的基础。

        2、功能与特性:它是一个简单而强大的命令解释器,支持变量、控制结构、管道、重定向等基本功能。sh是POSIX标准的默认shell,也是许多Linux发行版的默认shell

        3、兼容性:由于它的简单性和普遍性,sh在各种Unix和类Unix系统上都具有很好的兼容性。

后续所有的shell都是基于sh做的改进和功能增强, sh是其它shell的基础

2、csh(C Shell BSD操作系统)

        1、起源:csh由Bill Joy在加州大学伯克利分校开发,其语法模仿了C语言,因此对于熟悉C语言的用户来说非常友好。

        2、功能与特性:csh的特点包括内置语法(如if-else和switch-case结构)、内置表达式(支持数学表达式的内置求值)、别名功能(允许为命令序列定义简短的名称)和历史特性(能够查看和重复执行先前的命令)。

        3、兼容性:尽管csh在某些方面非常强大,但它也因其编程语法的一些怪癖和限制而受到批评。它在BSD Unix系统中特别常见。

3、ksh(Korn Shell)

        1、起源:

        ksh是由David Korn在AT&T Bell Laboratories开发的一种Shell语言,旨在兼顾C Shell的脚本功能和Bourne Shell的用户友好性。

        2、功能与特性:

        ksh提供了很多先进的特性和功能,包括命令行编辑、作业控制、数组变量和算术运算等。它集合了C Shell和Bourne Shell的优点并且和Bourne Shell完全兼容。

3、兼容性:

        ksh有多个版本,如ksh88、ksh93、pdksh、mksh等,其中ksh93是最新和最完善的版本。这些版本在不同的系统上可能有所不同,但总体上都保持了良好的兼容性。

4、**bash**(Bourne Again Shell, 最流行的shell以及兼容性广泛)

        1、起源:

        bash是Bourne Again Shell的缩写,它是sh的增强版,由Brian Fox为GNU项目开发。

        1985年,Richard Stallman 成立了自由软件基金会(FSF),由于 Shell 的版权属于贝尔公司,所以他决定写一个自由版权的、使用 GNU 许可证的 Shell 程序,避免 Unix 的版权争议。

        1988年,自由软件基金会的第一个付薪程序员 Brian Fox 写了一个 Shell,功能基本上是 Bourne shell 的克隆,叫做 Bourne-Again SHell,简称 Bash,程序名为bash,任何人都可以免费使用。后来,它逐渐成为 Linux 系统的标准 Shell。

        2、功能与特性:

        bash兼容sh的语法,同时增加了许多新特性,如命令补全、命令历史、数组、函数、别名等。bash还提供了强大的编程能力,如命令行编辑(支持Emacs和Vi模式)、脚本编写和运行Shell脚本以自动化重复任务等。bash是Linux和macOS的默认shell。

        3、兼容性:

        bash在大多数GNU/Linux系统中默认安装,并且由于其广泛的使用性和兼容性,它已成为最流行的shell之一。

二、Shell命令与环境 

1、$与#(普通用户/root用户)

        1、一般console terminal终端以$结尾,则是普通用户
        2、一般console terminal终端以#结尾,则是root用户. root具有机器的最大权限,所以操作主机,需要十分小心,特别是例如rm删除操作、mv操作、systemctl等系统命令要格外小心

        默认是$、#区分是否是特权用户,也支持自定义.

2、基本相关命令

1、Linux查看当前shell的类型(echo $SHELL,默认bash)

echo $SHELL

2、Linux查看支持哪些shell解释器, /etc/shells

cat /etc/shells

3、改变Linux用户的shell解释器:  chsh -s /bin/bash root

chsh -s /bin/bash root   #改变root的shell解释器,-s 改为/bin/bash

三、基本语法精讲

更加详细内容,在线查看金山文档学习笔记:  Shell脚本精讲-基础语法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GEEK JUMP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值