Linux shell是怎样的?包括哪些内容?

Linux shell是怎样的?包括哪些内容?

shell是一个命令解释器,它从输入设备读取命令,再将其转为计算机可以了解的指令,然后执行它。在linux中,shell又不仅是简单的命令解释器,而且是一个全功能的编程环境。

Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),等等。不同的Shell语言的语法有所不同,所以不能交换使用。每种Shell都有其特色之处,基本上,掌握其中任何一种就足够了。通常用Bash,也就是Bourne Again Shell进行编程。

1.建立和运行shell程序

shell脚本程序:按照一定的语法结构把若干linux命令组织在一起,是这些命令按照我们的要求完成一定的功能。它可以进行类似程序的编写,并且不需要编译就能执行。(只需修改其权限)像编写高级语言的程序一样,编写shell程序需要一个文本编辑器,如VI和VIM,

首先使用VI编辑器编辑一个hello.sh文件:

#!/bin/bash

#hello world example

echo "hello world"

这样,一个最简单的shell程序就编写完了。

第一行:#!说明hello.sh这个文件的类型的,这有点类似于Windows系统下的用不同的文件后缀来表示不同的文件类型,但又不完全相同。Linux系统根据#!及该字符串后面的信息确定该文件的类型。在#!之后是一个路径名,这个路径名指定了一个解释脚本中命令的程序。

第二行:“#hello world example”就是shell程序的注释,(但后面紧接着“!”号的除外)

第三行:echo(回显)语句的功能是把echo后面的字符串输出到标准输出中。

由于该脚本没有执行的权限,只需要修改其执行的权限即可。

然后输入命令:./hello.sh即可看到运行结果。

2.shell变量

变量是一个存储值的实体,可以是一个名字,或者一个特殊的值。shell可以创建,分配和删除变量。

变量设置规则:

a.变量与变量内容以等号(=)来连接

b.等号两边不能直接接空格符

c.变量名称只能是英文字母与数字或下划线,但是数字不能是开头符

d.引用变量名用“$变量名”

#!/bin/bash

#hello world example

a="hello world"

echo $a

以上例子一样可以输出hello world。

取消变量:用unset 变量名

#!/bin/bash

#hello world 例子

a="hello world"

unset a

echo $a

以上例子将不会打印出任何东西。

3.shell特殊变量

$0 :执行的脚本的文件名

$1 :脚本文件的第一个参数名

$# :传递到脚本的参数个数

$* :以一个单字符串显示所有向脚本传递的参数

$? :显示最后命令的退出状态,0表示没有错误,其它值表示有错误

例子a.sh

#!/bin/bash

echo "the file is $0"

echo "the parameter is $1 $2"

echo "number of parameter is $#"

echo "all parameter is $*"

echo $?

加权限后执行./a.sh hh mm gg

则打印

the file is ./a.sh

the parameter is hh mm

number of parameter is 3

all parameter is hh mm gg

4.常用shell的命令

(1)echo:显示变量内容

(2)env:显示目前系统中主要的预设变量内容

(3)set:显示目前系统中全部的变量内容

(4)read:从键盘读入变量内容

(5)declare:声明变量内容

-a:定义为数组 array

-f:定义为函数 function

-i:定义为整数 integer

例子:

#!/bin/bash

a=1+1

declare -i b=1+1

echo $a

echo $b

5.条件测试

在写shell脚本时,经常遇到的问题就是判断字符串是否相等,可能还要检查文件状态或进行数字测试,只有这些测试完成才能做下一步动作。

test命令就是用于测试表达式或文件状态

test命令两种格式:

test condition

或 [ condition ]

使用方括号时,要注意在条件两边加上空格

test 文件 常用参数:

-d:如果文件为一个目录,则为真

-e:如果文件存在,则为真

-r:如果文件可读,则为真

-w:如果文件可写,则为真

-x:如果文件可执行,则为真

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180113G0BFK000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券