shell——从头学起

发布时间:2023年12月18日

?前言? ? ? ?

shell是一个C语言编写的程序,是用户和Linux沟通连接的桥梁,它提供界面为用户访问系统内核提供服务。它既是命令语言又是程序设计语言。所以学好shell的前提是掌握了Linux基本命令及衍生用法,特别是三剑客(grep、awk、sed)的使用。

我们常说的shell脚本是shell script,是为shell编写的脚本程序。

shell的环境

在Linux中可以查看系统中的shell种类

# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

/bin/sh和/usr/bin/sh为Bourne Shell

/bin/bash和/usr/bin/bash为Bourne Again Shell

当然也有其他应用下的shell,如/usr/bin/csh为C Shell、/usr/bin/ksh为K Shell以及/sbin/sh为Shell For Root

sh(全称 Bourne Shell): 是UNIX最初使用的 shell,而且在每种 UNIX 上都可以使用。
Bourne Shell 在 shell 编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种 shell。

bash(全称 Bourne Again Shell): LinuxOS 默认的,它是 Bourne Shell 的扩展。 与 Bourne Shell 完全兼容,并且在 Bourne Shell 的基础上增加了很多特性。可以提供命令补全,命令编辑和命令历史等功能。它还包含了很多 C Shell 和 Korn Shell 中的优点,有灵活和强大的编辑接口,同时又很友好的用户界面。

csh(全称 C Shell): 是一种比 Bourne Shell更适合的变种 Shell,它的语法与 C 语言很相似。

ksh (全称 Korn Shell): 集合了 C Shell 和 Bourne Shell 的优点并且和 Bourne Shell 完全兼容。

在一般情况下,我们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像?#!/bin/sh,它同样也可以改为?#!/bin/bash

shell脚本文件命名一般为.sh为后缀,文件中#!/bin/bash为开头,是为了告诉系统指定的路径所指定的程序即是解释此脚本文件的 Shell 程序。

迈出第一步

创建一个shell文件

vim myfirstshell.sh

你的第一个shell

#!/bin/bash
echo "Take the first step,is the first step to success!Believe yourself!"

写好保存wq

shell运行

1.作为执行程序

进入到shell保存的目录,给它添加可执行权限

chmod +x myfirstshell.sh

执行脚本

./myfirstshell.sh

?注意:一定要写成./myfirstshell.sh,其它二进制程序也一样。直接写 test.sh,linux 系统会去 PATH 环境变量里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统,就在当前目录找。

?2.作为解释器参数

直接运行解释器,把shell脚本文件名作为参数,这种方法就不需要在shell脚本文件中第一行添加解释器信息,但一般为了规范还是得加上,也为了适应不同用户运行习惯

/bin/sh myfirstshell.sh
/bin/bash myfirstshell.sh

当然我一般

sh myfirstshell.sh
bash myfirstshell.sh

文章来源:https://blog.csdn.net/T3212379478/article/details/135067511
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。