Shell基础知识

学习目标:

  1. 了解什么是shell,shell有哪些类型及如何调用
  2. 掌握shell变量与数组的定义及赋值方法
  3. 掌握shell变量的类型及作用域
  4. 掌握shell脚本的执行方式

shell概述

一、shell功能

一个类用c语言编写的命令解释器程序的统称,也是以恶搞脚本编程语言,用户与内核交互的桥梁

shell的功能

  • 接收用户命令
  • 调用相应的应用程序
  • 解释并交给内核处理
  • 返还内核处理结果

二、shell的种类

(1)MS-DOS(本身就是一个Shell)

(2)Windows的Shell:windows Explorer(图形化)、cmd(命令行)

(3)UNIX的Shell:sh、bash、csh、ksh等(平时的Shell,指UNIX的Shell)

sh(bourne Shell)

        sh是一个遵循Unix POSIX标准的Shell程序

        sh是所有其他UNIX Shell的基础

        sh的可移植性最高

bash(Bourme Again Sell)

        bash是sh的增强版,代替sh,兼容sh,有ksh和csh的有用功能,bash是大多数linux系统默认的shell

shell的种类

/bin/sh  bash shell的一个快捷方式

/bin/bash 大多Linux默认的shell,几乎涵盖shell所有功能

/sbin/nologin 表示非交互式,不能登录操作系统

/bin/dash 小巧,高效,功能相比少一些

/bin/tcsh 是csh的增强版,完全兼容csh

/bin/csh  有c语言风格的一种shell,有许多特特性

三、了解Shell调用

1.查看系统可用的Shell

chsh -l

2.查看:用户当前使用的shell

3.永久更改:用户的登录shell

4.shell脚本声明,shell命令行解释器

#!/bin/bash:声明shell脚本的解释器

5.调用shell来实行命令

四、脚本的基本写法

vi xx.sh(后缀为sh)用vi编辑器打开文件

#!/bin/bash 脚本申明,告诉系统这个脚本需要什么解释器来执行,使用哪一种shell

脚本基本信息的描述

#Name:名字

#Desc:描述describe

#Path:存放路径

#Usage:用法

#Update:更新时间

后面是脚本具体内容

本章小结

1.学习shell的概念和作用

2.shell的种类

shell变量

Shell变量的概念

1.变量的定义与赋值

2.shell变量的删除

3.数组变量

shell变量

变量,进程中用于存储数据的内存实体,分为本地变量和环境变量,

一、变量的概念

1.变量的定义与赋值

命名规则:字母,数字,下划线,不能以数字开头,不能是关键字

定义方式:变量名="变量值"

提取变量:$变量名或${变量名}

2.shell变量的删除

通常在shell脚本定义使用shell变量,shell脚本执行结束之后,变量随着进程的消亡而消亡

set 查看当前bash进程的所有Shell变量

unset:删除当前bash进程和shell本地变量

3.数组变量:

多个元素按一定顺序排列结合,把有限个元素用一个名字命名。数组可以保存一组值的变量

数组定义:array_name=(value1 value2...)

1) 数组定义 #name={tom mary natasha}

2) 查看数组中某个元素值#echo ${name[0]}

3) 查看数组的下标#echo$(!name[@])在[]中加@或*,数组前面加!

4) 数组的遍历

5)显示数组中元素的个数echo ${#nam[@]}}或echo ${#name[*]}

6) 取消数组

利用下标删除数组中的元素

直接删除整个数组

本章小结

shell变量的定义、赋值、查看、删除

shell变量类型

一、变量的类型

变量有本地变量、环境变量、内置变量

本地变量:当前用户自定义的变量。当前进程中有效,其他进程及当前进程的子进程无效

环境变量:当前进程有效,能够被子进程调用

内置变量:系统变量,shell本身已经固定好了它的名字和作用

二、环境变量

查看当前用户的环境变量:evn

查看当前用户的所有变量(临时变量与环境变量):set

将当前变量变成环境变量:export

永久生效

三、内置变量

$!:上一条命令执行后返回的状态,但会状态值为0时表示执行正常,非0表示异常

$$:当前所在进程的进程号 

杀死当前进程,退出当前终端

!$ :调用最后一条命令历史中的参数

!!:调用最后一条命令历史

$#

$*

$@

编写脚本

当前执行的进程/程序名

四、脚本运行方式

fork()函数

vfork()函数

exec 函数族

sourc test.sh 或 .test.sh

bash test.sh 或 sh test.sh

./test.sh (需要x权限) /root/test.sh(需要x权限)

exec ./test.sh(需要x权限) exec /root/test.sh(需要x权限)

五、用户环境变量配置文件

$HOME/.bashrc  用户的bash 信息(aliase 、umask等)(用户级)

$HOME/.bash_profile 当前用户的环境变量(用户级)

$HOME/.bash_logout 

/etc/bashrc

/etc/profile

用户登录系统读取相关文件顺序:

/etc/profile——》$HOME/.bash_profile——》$HOME/.bashrc——》/etc/bashrc——》$HOME/.bash_logout

六、shell脚本中的引号

单引号和双引号

定义一个变量:var01="abc"

单引号不能识别变量引用符号$

双引号可以

本章小结

本地变量与环境变量的定义与使用以及作用域

脚本的多种指定方式及区别

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值