shell脚本

目录

一、编程语言的分类

二、shell

【1】第一个shell脚本

【2】常见的shell解析器

【3】运行脚本的3种方式

i)bash

ii)source

iii)直接给脚本添加可执行权限

三、修改环境变量

【1】如何查看系统提供的环境变量

【2】查看PATH变量

【3】修改PATH路径

i)只对当前终端生效

 ii)只对当前用户生效 ---->修改家目录下的文件

iii)对所有用户都生效的方式

iv)对所有用户生效

四、shell中的变量

【1】定义变量

【2】使用变量

【3】变量的赋值

练习:


一、编程语言的分类

编译型语言:C、C++ ------>需要编译器

解释型语言:shell、python ------>需要解析器

二、shell

shell---->贝壳

shell解析器:起到保护内核的作用,用户无法直接和内核层交换,通过指令和shell解析器完成用户和内核的交互

应用层:代码
---------------------------     shell解析器
内核层:
    内核层的五大功能:
        1、内存管理
        2、网络管理
        3、进程管理
        4、文件管理
        5、设备管理 
---------------------------
硬件层:外部设备

【1】第一个shell脚本

hello.sh ---->后缀是.sh

#!/bin/bash
#   #!---->shebang 
# 指明脚本运行使用的shell解析器


#这是一行注释
echo "第一个shell脚本"

【2】常见的shell解析器

bash:现在市面上大部分linux都使用bash解析器

dash:比bash功能更少一点

sh:和终端的交互性不好

csh:类似C语言的模式

如何查看本机使用的shell解析器:echo $SHELL

【3】运行脚本的3种方式

i)bash

bash 文件名.sh     ------>使用shell解析器去解析脚本
bash在运行脚本时,会在后台打开一个新的终端,把运行的结果返回到当前终端

ii)source

source是一个终端指令

source 文件名.sh source在同一个终端上运行和输出结果

iii)直接给脚本添加可执行权限

chmod 777 脚本名

./脚本名

三、修改环境变量

【1】如何查看系统提供的环境变量

env ---->回显所有系统提供的环境变量

【2】查看PATH变量

echo $PATH

PATH的作用,在终端执行指令或程序时,默认在PATH包含的路径中查找,如果程序/指令的路径不在PATH中,就会执行失败(未找到该命令)

修改PATH之后,可以直接输入可执行程序名执行程序,不需要再加上路径

【3】修改PATH路径

一定不能修改原有的PATH路径

i)只对当前终端生效

export PATH=${PATH}:新的路径
export PATH=${PATH}:/home/ubuntu/23061/day2
export             PATH        =     ${PATH}            :        /home/ubuntu/23061/day2
  |                  |         |        |               |             |
给(系统)变量赋值  要赋值的变量  赋值  拿到原有的PATH的值  路径分隔符  追加的新路径

 ii)只对当前用户生效 ---->修改家目录下的文件

vim ~/.bashrc  --->打开用户的配置文件,把想要添加的路径使用export表达式添加到最后一行

shell脚本_第1张图片

让配置文件生效:

  1. 重启(永久生效)
  2. source ~/.bashrc (临时生效) ------>使用source和.是同一个指令
  3. . ~/.bashrc (临时生效)

iii)对所有用户都生效的方式

修改/etc/environment

sudo vim /etc/environment

直接把想添加的路径,添加原有的路径后面

让配置文件生效:

  1. 重启(永久生效)
  2. source /etc/environment (临时生效) ------>使用source和.是同一个指令
  3. . /etc/environment (临时生效)

iv)对所有用户生效

修改/etc/bash.bashrc

sudo vim /etc/bash.bashrc 
使用export表达式,将路径添加到最后

让配置文件生效:

  1. 重启(永久生效)
  2. source /etc/bash.bashrc (临时生效) ------>使用source和.是同一个指令
  3. . /etc/bash.bashrc (临时生效)

四、shell中的变量

shell本身是擅长运行指令,shell是一个弱数据类型的语言

【1】定义变量

C中:
存储类型 数据类型 变量名;

shell中:
变量=变量的值       ----->如果变量的值中间没有空格直接使用
变量='变量的值'     ----->变量的值中间有空格
变量="变量的值"     ----->使用一个已有的变量给新的变量赋值,并且赋值中有空格时
''内,$变量名,不会被展开

注意:

  1. shell中等号两侧不允许有空格
  2. 如果有空格会把变量名识别成一个指令

【2】使用变量

在shell中如果使用变量的值,需要给变量名前加$
$变量名    ${变量名}

【3】变量的赋值

1、使用已有的变量给新的变量赋值
var1=hello
var2=world
var3="$var1 $var2"

shell脚本的本质:命令的集合

练习:

写一个1.sh脚本,将以下内容放到脚本中:

在家目录下创建目录文件,dir

在dir下创建dir1和dir2

把当前目录下的所有文件拷贝到dir1中,

把当前目录下的所有脚本文件拷贝到dir2中

把dir2打包并压缩为dir2.tar.xz

再把dir2.tar.xz移动到dir1中

解压dir1中的压缩包

使用tree工具,查看dir下的文件

#!/bin/bash
mkdir ~/dir
mkdir ~/dir/dir2 ~/dir/dir1
cp * ~/dir/dir1/ -r
cp *.sh ~/dir/dir2/
tar -cJf ~/dir/dir2.tar.xz ~/dir/dir2/
mv ~/dir/dir2.tar.xz ~/dir/dir1/
tar -xvf ~/dir/dir1/dir2.tar.xz
tree ~/dir

 shell脚本_第2张图片

你可能感兴趣的:(转世重生,windows,ubuntu)