week23-shell

2019-10-18  本文已影响0人  刘Huai

1. 什么是shell

命令解释器, 用来翻译用户输入的指令给内核,内核驱动硬件,硬件返回给内核,内核面板通知

1. 1 shell 的执行方式

2. 什么是shell 脚本

3. shell脚本能做什么

shell可以做什么

4. 学习shell 脚本需要哪些预备知识,如何才能学完shell脚本

如果对命令使用不够熟练,对基本服务不能手动大剑,那么一定学不会shell

如何学好shell脚本

基础命令+基础服务+经常练习+ 思路

5. shell脚本编写规范,shell脚本执行方式

6. 解释器加与不加的区别 (# !/bin/bash)

没有加解释器的shell脚本
bash shell_01.sh 使用bash运行脚本
./bash shell_01.sh 直接执行脚本
使用bash 命令可以正常执行 以./ 需要加权限才可以执行脚本

. / 方式执行,系统会读取第一行声明的解释器,如果不加,linux系统默认使用bash,如果脚本不是bash可执行的命令,就会报错

Centos 6 !/bin/bash
Centos 7 !/usr/bin/bash

补充:如何让Vim编辑器自动显示行号

vim /etc/vimrc
在最后一行加入 set number
wq 保存退出

7. Shell 脚本变量

7.1 什么是变量

变量是shell传递数据的方法,简单理解,就是用一个固定的字符串,表示一个不固定的值

7.2变量命名规范

变量定义时建议使用:大写字母、小写字母、下划线几个组成 {变量名最好具备一定的含义}
不要出现数字开头:
可以使用如下的方式:
HostName=
cpu_load_ava_1=1
cpu_load_ava_5=2
cpu_load_ava_15=3

注意: 等号是复制,需要注意,等号两边不能有空格,其次,定义的变量不要与系统的命令出现冲突

7.3 shell定义变量的方式

自己设定的变量

系统设置好的,可以直接调用

8. Shell 变量实践

8.1 用户自定义变只在当量前shell 有效

定义变量 变量名=变量值 不能出现 " - " 命名

当前窗口定义一个变量 新建窗口之后变量不在有作用

想要多个窗口都读到变量,设置为全局变量就可以想要在系统生效,必须写入配置文件/etc/profile

写入全局变量 在其他shell窗口也可以使用定义的全局变量

**8.2 **

引用变量,$变量名

var_1=a1b2
echo $var_1
a1b2

8.3 查看变量

查看变量,set显示所有变量,包括自定义变量和环境变量

查询刚刚设置的变量

8.4 取消变量,作用范围:仅在当前shell中有效

取消变量 全局变量同样也可以临时取消 在其他shell中依旧有效

8.5 shell中 单引号与双引号的区别

什么时候使用双引号

字符串

什么时候使用单引号

9. 系统环境变量

系统环境变量详细解释

系统环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录(HOME)、邮件存放位置(MAIL)等

查看系统环境变量
export

9.1 常见系统变量

9.2 自定义系统环境变量

变量$var_3 没有定义为系统环境变量时bash解释器中无法识别 定义系统环境变量 查询变量
export var_3=a1 定义系统环境变量 ,注意不要加上$符号

9.3 预定义变量
Bash中已经定好的变量,名称不能自定义,作用也是固定的

示例
$0:当前脚本的文件名
$n:第n个参数    第0个参数为文件名称
$#:参数个数   
$*:所有的参数   在一块内存中,空格间隔
$@:所有的参数  申请n个空间,分别存放
$?:上次命令执行的返回值

用处
$n:在判断用户输入的位置参数是什么
$#:判断参数个数
$?:判断命令执行结果

判断参数个数

$* 和 $@的区别

不加引号时,二者都是返回传入的参数
加了引号后,
    $* 把参数作为一个字符串整体(单字符串)返回
    $@ 把每个参数作为一个一个的字符串进行返回

上一篇 下一篇

猜你喜欢

热点阅读