第1节. shell编程脚本基础

img

编程基础

image-20220202124713699

shell和py都是边解释边执行

image-20220202124832678

image-20220202124810083

img

image-20220202125928948

gcc是个编译软件,可以把高级语言转换成机器代码

img

img

gcc就是编译器

img

img

在执行的时候有python解释器,会读到内存里翻译成机器码了。但是这个机器码是在内存里的,不是个放在硬盘里的文件。它是边执行边翻译。

编程基本概念

image-20220202131248703

shell脚本基础

image-20220202131333656

创建shell脚本

image-20220202131356090

脚本规范

image-20220202131417037

脚本的基本结构

image-20220202131454261

vim的初始化

image-20220202133342212

脚本执行的方法1:bash xxx

image-20220202133529479

方法2,source xxx和. xxxx

image-20220202140114392

方法3:添加执行权限

image-20220202133748656

👆直接运行脚本,就是外部命令了,是要到PATH变量里找路径的,而当前目录是/root并不在PATH变量里,所以找不到。

添加到PATH变量

image-20220202134023344

img

img

img

👆其实也可以用ln -s 软连接来实现path变量的

但是如果你以后很多脚本都统一放到/data/scipts下的话,还是加/data/scripts为PATH变量好一点

image-20220202134635596

脚本运行方法4:传递给bash命令

img

img

evn.sh,只要是sh后缀就行了。

例子,写个脚本创建用户

image-20220202142901764

image-20220202142924425

img

让其口令立即过期

img

image-20220202144956523

chage -d 0 test等价于passwd -e tezt都是修改date of last password chage这个值为0,意思就是登入后强制修改密码

image-20220202145056787

image-20220202145456337

语法错误检查方法

image-20220202145818690

image-20220202145941589

两种语法检查方法

image-20220202150027129

image-20220202150125551

image-20220202150442302

删除if那行后 再次执行就OK了

image-20220202150600969

举个例子

img

img

img

img

img

img

img

img

之前接触过%s/xx/yy/g,现在又看到了.,$s/XX/yy/g

.点表示当前行号,逗号是一直到整个文件最后一行

img

u撤销后,改成

img

img

img

img

img

引号替换一下

img

img

变量

img

变量代表着内存空间

img

内存中的一个地址块放了magedu,而name就表示地址值。于是就是name中存放了magedu。

变量,值可变化,当然也有不可变

img

python和shell都不需要事先申明变量

变量起名规范

img

特殊变量

img

img

img

img

👆变量的正儿八经的写法,很重要

img

img

如果此时Y的值变成了30,问X的值是多少,这个在PYTHON里面叫变量赋值,如果是列表、字典是需要.copy()的

img

img

img

变量取消

img

img

img

上图替换语法存在错误

img

不用加g,%s/xx/yy/g,的g如果是每行只有一个不需要加g全局

img

一般脚本结束了变量也就没了。不过还是建议删掉。

image-20220202182620984

把命令放到变量里

img

image-20220202182715995

img

img

第一题答案就有了

cp -a 的a等价于-dR

文件夹不存在cp会直接创建的

img

第二题答案

img

img

nl 和 cat -b一个意思,不过不能列出空行行号

image-20220202184946332

image-20220202185054359

环境变量的查看

image-20220211103605248

env和printenv是等价的

Copyright 🌹 © oneyearice@126.com 2022 all right reserved,powered by Gitbook文档更新时间: 2024-07-28 14:48:01

results matching ""

    No results matching ""