shell基础知识简介

一、shell是操作系统提供的终端命令行,shell可以理解为软件系统提供给用户操作的命令行界面,是人机交互的一种方式。

 

二、shell是一类编程语言

1)编写shell脚本时使用的语言就是shell语言,又叫脚本语言;

2shell脚本是一类语言而不是一种语言;

3)常用shell语言:shbashcshkshperlpython;

4Linux下常用的脚本语言就是bashsh,脚本语言一般在嵌入式中主要用来做配置;

5perlpython这样的高级shell脚本语言,常用在网络管理配置等领域。

 

三、shell脚本语言的运行机制:解释运行

1C语言(C++)程序:编写出源代码,然后编译链接形成可执行二进制程序,然后才能运行;而脚本程序编写好后源代码即可直接运行(没有编译链接过程)。

2shell程序是解释运行的,执行一个shell程序时,shell解析器会逐行的解释程序代码,然后一行一行的运行(顺序结构)。

 

四、编辑器、执行方法

(1)shell程序是文本格式的,只要是文本编辑器都可以。但是shell还要在Linux系统下运行的,所以换行符必须是‘\n’,而windows下的换行符是”\r\n”,因此windows中的编辑器写的shell不能在Linux下运行。

(2)shell程序运行有多种方法,如:

第一种:./xxx.sh,和运行二进制可执行程序方法一样。这样运行shell要求shell程序必须具有可执行权限。chmod a+x xxx.sh来添加权限。

第二种:source xxx.shsourceLinux的一个命令,这个命令就是用来执行脚本程序的。这样运行不需要脚本具有可执行权限。

第三种:bash xxx.shbash是一个脚本程序解释器,本质上是一个可执行程序。这样执行相当于执行了bash程序,然后把xxx.sh作为argv[1]传给它运行。

 

五、shell程序解释

(1)shell程序的第一行一般都是:#!/bin/sh 这行话以#!开始,后面加上一个pathname,这行话的意思就是指定shell程序执行时被哪个解释器解释执行。所以写上/bin/sh意思就是这个shell将来被当前机器中/bin目录下的sh可执行程序执行。也可以将第一行写为:#!/bin/bash来指定使用bash执行该脚本。

(2)脚本中的注释使用##开头的行是注释行。

(3)shell程序的正文,由很多行shell语句构成。shell就是把命令行中键入执行的命令写成了程序。

 

六、shell中的变量定义和引用

(1)变量定义时可以初始化,使用=进行初始化赋值。在shell中赋值的=两边是不能有空格的。

(2)变量赋值,变量定义后可以再次赋值,新的赋值会覆盖老的赋值。

(3)变量引用,shell中引用一个变量必须使用$符号,$符号就是变量解引用符号。

注:$符号后面跟一个字符串,这个字符串就会被当作变量去解析,如果这个字符串本身没有定义,执行时并不会报错,而是把这个变量解析为空。

注:变量引用的时候可以$var,也可以${var}。在某些情况下只能用${var}

 

七、shell中无引号、单引号、双引号的区别

(1)shell中使用字符串可以不加双引号,直接使用。而且有空格时也可以,但是不能输出或者其他转义字符。

(2)shell中也可以使用单引号来表示字符串,也是直接使用,不能输出转义字符。

(3)单引号中:完全字面替换(不可包含单引号本身)

(4)双引号中:

$加变量名可以取变量的值

反引号仍表示命令替换

\$表示$的字面值 输出$符号

\’表示的字面值 输出符号

\”表示的字面值 输出符号

\\表示\的字面值 输出\符号

 

八、shell中调用linux命令

(1)直接执行

(2)反引号(和~在一个按键上)括起来执行。有时候在shell中调用linux命令是为了得到这个命令的返回值(结果值),这时候就适合用一对反引号来调用执行命令。

 

九、shell中的选择分支结构

1)典型if语句格式

if [ 表达式 ]; then

xxx

yyy

zzz

else

xxx

ddd

uuu

fi

(2)if的典型应用

判断文件是否存在。 (-f),注意[]里面前后都有空格,不能省略。

判断目录是否存在 (-d

判断字符串是否相等 (”str1” = “str2”,注意用一个=而不是两个

判断数字是否相等(-eq)、大于(-gt)、小于(-lt)、大于等于(-ge)、小于等于(-le

equalgreater thanless thangreater or equalless or equal

判断字符串是否为空 (-z 注意:-z判断时如果变量本身没定义也是不成立(没定义 不等于为空)

if判断式中使用”-o“表示逻辑或

 

十、echo的创建和追加输入文件

       在shell中可以直接使用echo指令新建一个文件,并且将一些内容传入这个文件中。创建文件并输入内容的关键就是>

可以使用echo指令配合追加符号>>向一个已经存在的文件末尾追加输入内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值