2020-08-26 Linux shell 认识

一、shell 是个 嘛啊?

我用有道词典翻译了一下,解释如下,shell 是个“壳”,贝“壳”保护里面软软的身体;那么linux 的 shell 的 这个壳保护啥呢?

shell 单词的解释

二、linux 的 shell 的 这个“壳”保护啥呢?

答案是:shell 这个“壳”保护 着 “ linux 内核”。

专业点的解释:

Shell是一种具备特殊功能的程序, 它是介于使用者和 UNIX/Linux 操作系统之核心程序(kernel)间的一个接口。

三、作用:

为了对用户屏蔽内核的复杂性,也为了保护内核以免用户误操作造成损害,在内核的周围建了一个外壳(shell)。用户向shell提出请求,shell解释并将请求传给内核。

四、常见 的 shell :

1、Bourne shell (sh)

2、Korn Shell(ksh)

3、C shell (csh)

4、Bourne Again Shell(bash)

在linux 终端 输入:echo $SHELL       

如下ubuntu shell  是 bash 

echo $SHELL

五、Shell 脚本 及 shell脚本语言

将多个Shell 命令按照一定的格式放到一个文本中,那么这个文本就叫做 Shell 脚本。

1、Shell 脚本参数

1)本地变量:用户自定义的变量。

2)环境变量(例如PATH):用于所有用户变量,用于用户进程前,必须用export命令导出。

3)位置变量:$0(脚本名),$1-$9:脚本参数。

4)特定变量:脚本运行时的一些相关信息。

 $* 不包括脚本名字的参数字符串;

$#不包括脚本名字的参数个数;

$? 最好一条命令的返回结果0 成功

例子:


#!/bin/sh

#局部变量SHELLSCRIPT

SHELLSCRIPT=testscrip.sh

echo "shell script file name is $SHELLSCRIPT"

#全局变量PATH

echo "global param PATH :$PATH"

#位置变量

echo "The first  param is  $0"

echo "The second param is $1"

echo "The third  param is $2"

#特殊变量 @* 不包括脚本名字的参数字符串;$#不包括脚本名字的参数个数;$? 最好一条命令的返回结果0 成功

echo "$ * param is $*"

echo "$ # param is $#"

echo "$ ? param is $?"

# 文件状态测试 -r -w -x -d -l -f

if [ -r testscript.sh ]

then

echo "testscript.sh can be read"

fi

if [ -d testscript.sh ]

then

echo "testscript.sh is direction"

else

echo "testscript.sh is not direction"

fi

#数值测试 -lt -gt -le -ge -eq

#逻辑操作符 -a -o !

if [ $# -lt 1 ]

then

echo "param num less than 1"

elif [ $# -ge 1 -a $# -le 3 ]

then

echo "$ # >=1 && $ # <=3"

elif [ $# -gt 3 ]

then

    echo "$ # greate then 3"

fi


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。