Linux从入门到精通5

10shell基础编程1

10.1 Shell基础-概述

Linux从入门到精通5_第1张图片
Linux从入门到精通5_第2张图片
把我们的操作命令,翻译成内核可以识别的0101语言,然后内核会把操作结果返回给shell,经解释返回给我们
widows也有shell,图形交互界面就是它的shell
让我有个地方可以输命令
Linux从入门到精通5_第3张图片
除了作为接受用户的命令 ,也可以作为一种编程语言
Linux从入门到精通5_第4张图片
Linux从入门到精通5_第5张图片
Linux从入门到精通5_第6张图片
Bash Shell
Linux从入门到精通5_第7张图片
Linux从入门到精通5_第8张图片
在这里插入图片描述
Linux从入门到精通5_第9张图片
在这里插入图片描述
Linux从入门到精通5_第10张图片
在这里插入图片描述
Linux从入门到精通5_第11张图片
最后一列是用户的登陆后的权限

10.2 Shell基础-脚本执行方式

Linux从入门到精通5_第12张图片
Linux从入门到精通5_第13张图片
Linux从入门到精通5_第14张图片
Linux从入门到精通5_第15张图片
Linux从入门到精通5_第16张图片
Linux从入门到精通5_第17张图片
Linux从入门到精通5_第18张图片
Linux从入门到精通5_第19张图片
Linux从入门到精通5_第20张图片
Linux从入门到精通5_第21张图片
在这里插入图片描述
Linux从入门到精通5_第22张图片
Linux从入门到精通5_第23张图片
Linux从入门到精通5_第24张图片
Linux从入门到精通5_第25张图片
Linux从入门到精通5_第26张图片Linux从入门到精通5_第27张图片
Linux从入门到精通5_第28张图片
在这里插入图片描述
在这里插入图片描述
基本上程序必须用路径来执行,有的命令不需要其实是一种简化操作
方式二:直接用bash命令,连权限都不用赋
在这里插入图片描述
Linux从入门到精通5_第29张图片
Linux从入门到精通5_第30张图片
Linux从入门到精通5_第31张图片
这个脚本文件是在window中编辑成功的
所以要把脚本从windows格式转化为linux格式
在这里插入图片描述

在这里插入图片描述
Linux从入门到精通5_第32张图片

Linux从入门到精通5_第33张图片
在这里插入图片描述
Linux从入门到精通5_第34张图片

10.3.1 Shell基础-Bash基本功能-历史命令与补全

Linux从入门到精通5_第35张图片
在这里插入图片描述
Linux从入门到精通5_第36张图片
Linux从入门到精通5_第37张图片
在这里插入图片描述
Linux从入门到精通5_第38张图片
在这里插入图片描述
Linux从入门到精通5_第39张图片
Linux从入门到精通5_第40张图片
在这里插入图片描述
在这里插入图片描述

10.3.2 Shell基础-Bash基本功能-别名与快捷键

Linux从入门到精通5_第41张图片
Linux从入门到精通5_第42张图片
Linux从入门到精通5_第43张图片
Linux从入门到精通5_第44张图片
所有的命令其实都是靠路径来执行的
ls可以不打路径,是因为4
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
cd是bash自带的,根本没有路径
用命令行定义的别名重启会失效
Linux从入门到精通5_第45张图片
在这里插入图片描述
Linux从入门到精通5_第46张图片
Linux从入门到精通5_第47张图片
Linux从入门到精通5_第48张图片
Linux从入门到精通5_第49张图片

10.3.3 Shell基础-Bash基本功能-输入输出重定向

Linux从入门到精通5_第50张图片
Linux从入门到精通5_第51张图片
Linux从入门到精通5_第52张图片
Linux从入门到精通5_第53张图片
date覆盖了ls
Linux从入门到精通5_第54张图片
追加上了
Linux从入门到精通5_第55张图片
在这里插入图片描述
2和<<没有空格
Linux从入门到精通5_第56张图片
Linux从入门到精通5_第57张图片
Linux从入门到精通5_第58张图片

在这里插入图片描述
执行但不输出,即把输出扔到垃圾桶
Linux从入门到精通5_第59张图片
Linux从入门到精通5_第60张图片
执行操作的命令本来应该通过键盘写入,但是现在 通过文件来
Linux从入门到精通5_第61张图片
ctrl+d
Linux从入门到精通5_第62张图片
Linux从入门到精通5_第63张图片
Linux从入门到精通5_第64张图片

10.3.4 Shell基础-Bash基本功能-多命令顺序执行与管道符

Linux从入门到精通5_第65张图片
Linux从入门到精通5_第66张图片
Linux从入门到精通5_第67张图片
就算中间有报错,也不会影响后面的命令的执行
Linux从入门到精通5_第68张图片
我们就可以知道执行一个命令传100M需要用多长时间
Linux从入门到精通5_第69张图片
Linux从入门到精通5_第70张图片
Linux从入门到精通5_第71张图片
Linux从入门到精通5_第72张图片

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Linux从入门到精通5_第73张图片

Linux从入门到精通5_第74张图片

Linux从入门到精通5_第75张图片

在这里插入图片描述
Linux从入门到精通5_第76张图片
Linux从入门到精通5_第77张图片

Linux从入门到精通5_第78张图片
在这里插入图片描述

Linux从入门到精通5_第79张图片

10.3.5 Shell基础-Bash基本功能-通配符和其他特殊符号

Linux从入门到精通5_第80张图片
Linux从入门到精通5_第81张图片
2:删除当前目录下的所有文件
Linux从入门到精通5_第82张图片
Linux从入门到精通5_第83张图片
Linux从入门到精通5_第84张图片
通配符用来匹配文件名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Linux从入门到精通5_第85张图片
Linux从入门到精通5_第86张图片
Linux从入门到精通5_第87张图片
Linux从入门到精通5_第88张图片
单引号和双引号的区别。单引号是原样输出、双引号才是代表

Linux从入门到精通5_第89张图片
Linux从入门到精通5_第90张图片
Linux从入门到精通5_第91张图片
Linux从入门到精通5_第92张图片
反引号和$()的区别
Linux从入门到精通5_第93张图片

Linux从入门到精通5_第94张图片

Linux从入门到精通5_第95张图片
$失去作用

通配符:匹配内容
单引号和双引号:单引号括起来的内容没有特殊符号,双引号括起来的内容会有特殊符号
反引号和$():括起来的是系统变量

10.4.1 Shell基础-Bash变量-用户自定义变量

Linux从入门到精通5_第96张图片
Linux从入门到精通5_第97张图片
Linux从入门到精通5_第98张图片
Linux从入门到精通5_第99张图片
Linux从入门到精通5_第100张图片
在这里插入图片描述
Linux从入门到精通5_第101张图片
Linux从入门到精通5_第102张图片
Linux从入门到精通5_第103张图片
Linux从入门到精通5_第104张图片
Linux从入门到精通5_第105张图片
Linux从入门到精通5_第106张图片
Linux从入门到精通5_第107张图片
Linux从入门到精通5_第108张图片
set可以查看到系统中所有的变量

10.4.2 Shell基础-Bash变量-环境变量

从上到下,限制的越来越严格
Linux从入门到精通5_第109张图片
Linux从入门到精通5_第110张图片

Linux从入门到精通5_第111张图片
Linux从入门到精通5_第112张图片
Linux从入门到精通5_第113张图片
Linux从入门到精通5_第114张图片
Linux从入门到精通5_第115张图片
在这里插入图片描述
Linux从入门到精通5_第116张图片
Linux从入门到精通5_第117张图片
年龄和性别在子shell中还在,但是名字不在了
Linux从入门到精通5_第118张图片
在这里插入图片描述
Linux从入门到精通5_第119张图片
Linux从入门到精通5_第120张图片
执行命令要想运行,要用路径
但是系统路径并没有写路径,就能运行
在这里插入图片描述
敲入一个命令后,就在path中去找
Linux从入门到精通5_第121张图片
Linux从入门到精通5_第122张图片
Linux从入门到精通5_第123张图片
Linux从入门到精通5_第124张图片
Linux从入门到精通5_第125张图片
Linux从入门到精通5_第126张图片
小写w显示出了完整的路径
在这里插入图片描述
第8条命令
可以按照自己的习惯来该提示符
但是还是默认的比较习惯

10.4.3 Shell基础-Bash变量-位置参数变量

Linux从入门到精通5_第127张图片
位置参数变量的变量名称和作用是固定的
Linux从入门到精通5_第128张图片
Linux从入门到精通5_第129张图片
输出后面参数的结果
Linux从入门到精通5_第130张图片
Linux从入门到精通5_第131张图片
带上参数后就能将参数输出了
$用来接收参数
Linux从入门到精通5_第132张图片
在这里插入图片描述
Linux从入门到精通5_第133张图片
Linux从入门到精通5_第134张图片
脚本中没有提示让用户输入两个参数才能运行,没有输入参数的话怎么办呢?
把命令行中的参数传递到脚本中
Linux从入门到精通5_第135张图片
在这里插入图片描述

Linux从入门到精通5_第136张图片
还要设定执行权限哟
Linux从入门到精通5_第137张图片
*所有的参数看成一个整体
@区分对待
Linux从入门到精通5_第138张图片
在这里插入图片描述
Linux从入门到精通5_第139张图片
Linux从入门到精通5_第140张图片

Linux从入门到精通5_第141张图片
Linux从入门到精通5_第142张图片
第一个循环把所有的参数当成一个整体
第二个参数把每个参数当成一个独立的参数
可以在命令执行的同时写入参数

10.4.4 Shell基础-Bash变量-预定义变量

Linux从入门到精通5_第143张图片
Linux从入门到精通5_第144张图片
命令找不到时报错设定为127
Linux从入门到精通5_第145张图片
文件找不到报错为2
Linux从入门到精通5_第146张图片
&代表后台执行
最小化其实就是放入后台,
显示当前进程的id,显示后台进程的id
Linux从入门到精通5_第147张图片
Linux从入门到精通5_第148张图片
Linux从入门到精通5_第149张图片
Linux从入门到精通5_第150张图片
Linux从入门到精通5_第151张图片
在这里插入图片描述
Linux从入门到精通5_第152张图片
Linux从入门到精通5_第153张图片
Linux从入门到精通5_第154张图片
Linux从入门到精通5_第155张图片
Linux从入门到精通5_第156张图片
Linux从入门到精通5_第157张图片

10.5.1 Shell基础-Bash变量-数值运算与运算符

Linux从入门到精通5_第158张图片
这是因为默认的类型是字符串类型
Linux从入门到精通5_第159张图片
在这里插入图片描述
在这里插入图片描述
Linux从入门到精通5_第160张图片
在这里插入图片描述
Linux从入门到精通5_第161张图片
在这里插入图片描述
Linux从入门到精通5_第162张图片
两个小括号代表要用数值运算
在这里插入图片描述
Linux从入门到精通5_第163张图片
越靠上优先级越高
Linux从入门到精通5_第164张图片
Linux从入门到精通5_第165张图片
Linux从入门到精通5_第166张图片
Linux从入门到精通5_第167张图片
Linux从入门到精通5_第168张图片

10.5.2 Shell基础-Bash变量-变量测试与内容替换

Linux从入门到精通5_第169张图片
通过判断x的值,来判断y是否有值。
y不存在,x就等于一个新值。
y存在但为空,x也为空。
y有值,x就等于y。
Linux从入门到精通5_第170张图片
Linux从入门到精通5_第171张图片

Linux从入门到精通5_第172张图片
Linux从入门到精通5_第173张图片
Linux从入门到精通5_第174张图片
Linux从入门到精通5_第175张图片
在这里插入图片描述
减号
冒号
加号
减号
等号:不光给x赋值,还要给y
问号:值不存在时,输出 给用户看

Linux从入门到精通5_第176张图片

10.6.1 Shell基础-环境变量配置文件-简介

环境变量:在一系列的shell中生效,还有默认环境变量。
环境变量的配置文件:专门用来放环境变量的文件
Linux从入门到精通5_第177张图片
如果修改了配置文件,source让强制生效
Linux从入门到精通5_第178张图片
path:命令的路径
histsize:历史命令保存条数
psi:提示符
hostname:主机名
Linux从入门到精通5_第179张图片
临时生效
Linux从入门到精通5_第180张图片
etc:对所有登陆系统的用户都有效
~:家目录,只对当前用户有效,这两个是隐藏文件用.开头

10.6.2 Shell基础-环境变量配置文件-作用

Linux从入门到精通5_第181张图片
用户登录后首先调用etc/profile etc/profile/*.sh
Linux从入门到精通5_第182张图片

/etc/profile

:用户输入用户名和密码后,第一步读取了/etc/profile文件
Linux从入门到精通5_第183张图片
在这里插入图片描述
Linux从入门到精通5_第184张图片
Linux从入门到精通5_第185张图片
Linux从入门到精通5_第186张图片
判断出管理员,所以让它读那几个
Linux从入门到精通5_第187张图片
默认的权限
umask
在这里插入图片描述
在这里插入图片描述
Linux从入门到精通5_第188张图片
在这里插入图片描述
Linux从入门到精通5_第189张图片
最主要的是读取定义语言的这个脚本
在这里插入图片描述
Linux从入门到精通5_第190张图片
中文编码环境

XXX/.bash_profile

Linux从入门到精通5_第191张图片
在这里插入图片描述
Linux从入门到精通5_第192张图片
这个文件如果存在就调用,然后给path中追加一个自己本身用户的bin
在这里插入图片描述

XXX/.bashrc

在这里插入图片描述
Linux从入门到精通5_第193张图片
定义了系统别名,调用下一个文件

/etc/bashre

Linux从入门到精通5_第194张图片
在这里插入图片描述

Linux从入门到精通5_第195张图片

Linux从入门到精通5_第196张图片
很多都重复了,比如说umask等等。只要是重复的值,都是定义的不需要输入用户名和密码的那种情况生效。

10.6.3 Shell基础-环境变量配置文件-其他配置文件和登录信息

Linux从入门到精通5_第197张图片
在这里插入图片描述
Linux从入门到精通5_第198张图片
Linux从入门到精通5_第199张图片
之前讲过查历史命令
Linux从入门到精通5_第200张图片
Linux从入门到精通5_第201张图片
Linux从入门到精通5_第202张图片
欢迎信息,
在这里插入图片描述

加一个/l
在这里插入图片描述
在这里插入图片描述
因为linux本地支持6个终端,用alt+Fn来切换,加上\l可以知道当前是哪个。但这只对本地linux有效
Linux从入门到精通5_第203张图片
在这里插入图片描述
在这里插入图片描述
Linux从入门到精通5_第204张图片
Linux从入门到精通5_第205张图片
Linux从入门到精通5_第206张图片
这下欢迎信息出现了,但不支持
Linux从入门到精通5_第207张图片
这是登陆后的欢迎信息
在这里插入图片描述
在这里插入图片描述
Linux从入门到精通5_第208张图片
Linux从入门到精通5_第209张图片
本地终端必须安装中文插件才能支持中文,cch,con等等

11shell基础编程2

11.1 Shell编程-正则表达式

Linux从入门到精通5_第210张图片
通配符:* ? []。匹配文件名,因为一些命令不支持正则表达式。完全匹配
正则:在文件中匹配字符串,一些命令支持正则表达式。包含匹配
Linux从入门到精通5_第211张图片
在这里插入图片描述
完全匹配
Linux从入门到精通5_第212张图片
只要含有size就会列出 ,包含匹配
在这里插入图片描述
Linux从入门到精通5_第213张图片
Linux从入门到精通5_第214张图片
Linux从入门到精通5_第215张图片
匹配包含a的所有字符,即a出现0次或者任意多次。即列出了整个文档
Linux从入门到精通5_第216张图片
aa匹配有一个连续的a出现
Linux从入门到精通5_第217张图片
aaa匹配有两个连续的a出现
在这里插入图片描述
在这里插入图片描述
Linux从入门到精通5_第218张图片
相当于通配符中的?
Linux从入门到精通5_第219张图片
.*匹配任意字符,任意个数
Linux从入门到精通5_第220张图片
Linux从入门到精通5_第221张图片
Linux从入门到精通5_第222张图片
Linux从入门到精通5_第223张图片
在这里插入图片描述
Linux从入门到精通5_第224张图片
匹配空白行
Linux从入门到精通5_第225张图片
在这里插入图片描述
在这里插入图片描述
Linux从入门到精通5_第226张图片
Linux从入门到精通5_第227张图片
Linux从入门到精通5_第228张图片
Linux从入门到精通5_第229张图片
Linux从入门到精通5_第230张图片
Linux从入门到精通5_第231张图片
只要有字符结尾
Linux从入门到精通5_第232张图片
Linux从入门到精通5_第233张图片
Linux从入门到精通5_第234张图片
Linux从入门到精通5_第235张图片
Linux从入门到精通5_第236张图片
在这里插入图片描述
Linux从入门到精通5_第237张图片
最少一个a最多两个a

11.2.1 Shell编程-字符截取命令-cut命令

Linux从入门到精通5_第238张图片
grep是提取行 cut是提取列
Linux从入门到精通5_第239张图片
Linux从入门到精通5_第240张图片
Linux从入门到精通5_第241张图片
中间的是制表符而不是空格
Linux从入门到精通5_第242张图片
Linux从入门到精通5_第243张图片
默认分隔符是制表符
冒号作为分隔符
在这里插入图片描述
Linux从入门到精通5_第244张图片
结合使用grep和cut
Linux从入门到精通5_第245张图片
Linux从入门到精通5_第246张图片
在这里插入图片描述
只有普通用户有/bin/bash
管理员是/sbin/nologin
Linux从入门到精通5_第247张图片
在这里插入图片描述
Linux从入门到精通5_第248张图片
Linux从入门到精通5_第249张图片
写一个脚本,如果使用率大于80%报警
Linux从入门到精通5_第250张图片
Linux从入门到精通5_第251张图片
完全没有作用,是因为这个分隔符是多空格不是制表符
用-d指定分隔符是空格也不行,它制定了一个空格的分隔符,它认为第五列是空格
在这里插入图片描述
以为用awk命令来实现

11.2.2 Shell编程-字符截取命令-printf命令

cut提取字符段
标准输出格式,用来支持awk命令
Linux从入门到精通5_第252张图片
Linux从入门到精通5_第253张图片
Linux从入门到精通5_第254张图片
Linux从入门到精通5_第255张图片
Linux从入门到精通5_第256张图片
只有第一个%s起了作用,需要用’'把%s们括起来
在这里插入图片描述
Linux从入门到精通5_第257张图片
Linux从入门到精通5_第258张图片
在这里插入图片描述
printf不能直接输出文件名中的内容
在这里插入图片描述
因为awk里面不能使用cat等显示,必须得用printf
Linux从入门到精通5_第259张图片
Linux从入门到精通5_第260张图片
Linux从入门到精通5_第261张图片
Linux从入门到精通5_第262张图片

11.2.3 Shell编程-字符截取命令-awk命令

cat vi等都不用我们手动调整格式
cat不能截取以空格作为分隔符的输出结果
Linux从入门到精通5_第263张图片
而awk可以
awk命令很复杂,不仅可以进行字符截取,还可以编程
Linux从入门到精通5_第264张图片
Linux从入门到精通5_第265张图片
Linux从入门到精通5_第266张图片
第2列 制表符 第6列 换行
Linux从入门到精通5_第267张图片
cat命令不能处理df这样的结果,是因为里面是空格符
Linux从入门到精通5_第268张图片
而awk可以
Linux从入门到精通5_第269张图片
超过80%就报警
Linux从入门到精通5_第270张图片
Linux从入门到精通5_第271张图片
Linux从入门到精通5_第272张图片
在执行之前打印出
Linux从入门到精通5_第273张图片
Linux从入门到精通5_第274张图片
指定分隔符
在这里插入图片描述
Linux从入门到精通5_第275张图片
Linux从入门到精通5_第276张图片
但是第一行没有处理,是因为awk是读完第一行之后才开始执行处理
Linux从入门到精通5_第277张图片
这表示在我读取第一行命令之前,就把分隔符写进去
Linux从入门到精通5_第278张图片
在所有的命令都执行完后执行的一条命令
Linux从入门到精通5_第279张图片
Linux从入门到精通5_第280张图片
Linux从入门到精通5_第281张图片
在这里插入图片描述
在这里插入图片描述
Linux从入门到精通5_第282张图片
awk命令比较复杂

11.2.4 Shell编程-字符截取命令-sed命令

cut、printf、awk都是进行字段提取的
printf是进行行提取
cut和awk是进行列提取
sed命令时用来进行流编辑器
Linux从入门到精通5_第283张图片
vi只可以修改文档 sed不光可以修改文件,可以从管道符接收数据来修改,可以直接修改命令的结果
sed在写shell脚本时很重要
Linux从入门到精通5_第284张图片
Linux从入门到精通5_第285张图片
Linux从入门到精通5_第286张图片
其实系统命令也支持/,它会认为你这个命令没有输完,等待你执行接下来的命令。
进行数据替换时也可以用/。
Linux从入门到精通5_第287张图片
Linux从入门到精通5_第288张图片
Linux从入门到精通5_第289张图片
p是输出,2p就是输出第二行
Linux从入门到精通5_第290张图片
它不光把第二行输出了,还把所有的内容都给输出了一遍,即第二行输出了两遍
如果只想看第二行,而不想得到全部的内容,那么就需要加-n选项。
在这里插入图片描述
所以一般用p选项打印的话,都要加上-n。
注意,只要不加-i,所有的操作都不影响文件本身,只影响了屏幕输出。
我们来看看除了操作文件本身,它还可以来干什么。
在这里插入图片描述
放到管道符之后,它还可以接收命令的结果。
Linux从入门到精通5_第291张图片
Linux从入门到精通5_第292张图片
这个文件就只有4行,我删掉2~4行,那么就只剩下第一行的数据了,直接输出剩余的结果。
Linux从入门到精通5_第293张图片
但是并没有把文件的内容真正的给删除掉,只要不加-i。
Linux从入门到精通5_第294张图片
Linux从入门到精通5_第295张图片
a代表追加 i代表插入
/表示一行还没输完,还要接着输入
Linux从入门到精通5_第296张图片
在第二行的前面插入了。
\允许多行的输入。追加、替换、插入都允许多行输入。
Linux从入门到精通5_第297张图片
Linux从入门到精通5_第298张图片
Linux从入门到精通5_第299张图片
Linux从入门到精通5_第300张图片
Linux从入门到精通5_第301张图片
要想保存在文件中,加-i,这时候没有输出,但是cat文件,输出了结果。
Linux从入门到精通5_第302张图片
-e是允许多个命令同时执行,用;分开

11.3 Shell编程-字符处理命令

Linux从入门到精通5_第303张图片
Linux从入门到精通5_第304张图片
Linux从入门到精通5_第305张图片
Linux从入门到精通5_第306张图片
允许手工指定分隔符,还是排序,但是不是按照整个文件行首的字母排序了,而是手工指定以:作为分隔符,然后用第三个字段开始到第三个字段结束排序,其实就是使用第三个字段来排序,
Linux从入门到精通5_第307张图片
这时候就会发现会从用户的uid来排序
没把整个uid当成是字符串,而是按首字符来排序的,所以前面是1 10 11而2 3都在后面。
为了能够让它识别这些数字的大小,需要加-n。意思是把提取出来的字符串当做数值型的来计算。
Linux从入门到精通5_第308张图片
Linux从入门到精通5_第309张图片
Linux从入门到精通5_第310张图片
依次是行数、单词数、字符数
Linux从入门到精通5_第311张图片
还可以统计命令的输出

11.4 Shell编程-条件判断

测试一个条件是否成立
Linux从入门到精通5_第312张图片
块设备文件、字符设备文件、管道文件、套接字文件都是一些特殊的文件类型
常用的就是目录文件、普通文件、文件是否存在
Linux从入门到精通5_第313张图片
Linux从入门到精通5_第314张图片
怎么没有输出结果呀,可以通过echo来判断上一条命令是否执行正确,0是正确1是错误。
Linux从入门到精通5_第315张图片
在这里插入图片描述
test和[]都可以,[]更为常用。
为什么需要这种方式来判断在不在?因为ls是给用户看,而test这种是给程序来看。
Linux从入门到精通5_第316张图片
双&&符是逻辑与,这样可以不用再手动输出执行结果
Linux从入门到精通5_第317张图片
在这里插入图片描述
root是存在,但它不是普通文件,而是目录文件。
Linux从入门到精通5_第318张图片
读写执行
Linux从入门到精通5_第319张图片
不管是所有者、所属组、其他人,只要有一个有w权限,就会说它有写权限
Linux从入门到精通5_第320张图片
Linux从入门到精通5_第321张图片
硬链接:文件1,2做了硬链接,文件名可以随便改,只有inode号可以判断他们是否是同一个文件
软链接:会有箭头表明它的源文件
Linux从入门到精通5_第322张图片
把它们做为硬链接。
Linux从入门到精通5_第323张图片
只要一个方法,看他们的inode号。这是需要人为肉眼,要想让程序要判断。
在这里插入图片描述
Linux从入门到精通5_第324张图片
在这里插入图片描述
Linux从入门到精通5_第325张图片
Linux从入门到精通5_第326张图片
Linux从入门到精通5_第327张图片
在这里插入图片描述
在这里插入图片描述
判断是否为空,是yes否no
Linux从入门到精通5_第328张图片
eq来判断是判断数值,==适用于字符
Linux从入门到精通5_第329张图片
Linux从入门到精通5_第330张图片
Linux从入门到精通5_第331张图片
Linux从入门到精通5_第332张图片
Linux从入门到精通5_第333张图片
Linux从入门到精通5_第334张图片
Linux从入门到精通5_第335张图片

11.5.1 Shell编程-流程控制-if语句

Linux从入门到精通5_第336张图片
Linux从入门到精通5_第337张图片
Linux从入门到精通5_第338张图片
如果分区超过了80%,那么就警告
Linux从入门到精通5_第339张图片
把这个数值提出来
在这里插入图片描述
grep提取行
在这里插入图片描述
awk提取列
在这里插入图片描述
截取字符串,以百分号作为分隔符
在这里插入图片描述
Linux从入门到精通5_第340张图片
Linux从入门到精通5_第341张图片
Linux从入门到精通5_第342张图片
在这里插入图片描述
Linux从入门到精通5_第343张图片
Linux从入门到精通5_第344张图片
Linux从入门到精通5_第345张图片
备份就是从原始位置赋值一份到别的位置
Linux从入门到精通5_第346张图片
如果这个目录存在
把当前的日期输出到一个临时文件中,覆盖。将文件大小追加到临时文件中
进入这个备份的位置,将刚刚那个临时文件进行压缩
如果目录不存在,手动创建这个目录,然后一样
在这里插入图片描述
Linux从入门到精通5_第347张图片
在这里插入图片描述
Linux从入门到精通5_第348张图片
Linux从入门到精通5_第349张图片
Linux从入门到精通5_第350张图片
每隔15分钟执行一次,如果服务器down了,就会主动告诉你并且帮你重启服务器
如何判断一个服务是运行的
在这里插入图片描述
Linux从入门到精通5_第351张图片
用ps命令查看现在的进程
在这里插入图片描述
提取有没有apacher的进程
我们现在把apche装上
Linux从入门到精通5_第352张图片
Linux从入门到精通5_第353张图片
装完启动一下
Linux从入门到精通5_第354张图片
启动完查,证明运行了
有些情况下虽然有进程但是死机了,用ps判断不一定准,别的方法
Linux从入门到精通5_第355张图片
还有一种方法是判断端口,只要看到80端口,就说明apache启动了,但是也不准

最有效的方法是通过nmap命令,远程扫描命令,如果它能连接上apche则会返回状态
我们来安装nmap
Linux从入门到精通5_第356张图片
-sT扫描指定服务器上开启的TCP端口
Linux从入门到精通5_第357张图片
现在要做的是,截取这个命令的输出
排除干扰项
在这里插入图片描述
只提取包含TCP的行
在这里插入图片描述
然后再提取包含服务器的行
在这里插入图片描述
截取第二段
然后把这个执行的结果赋给变量,写语句
如果关着,把输出结果丢到垃圾箱,然后重启
Linux从入门到精通5_第358张图片
Linux从入门到精通5_第359张图片

Linux从入门到精通5_第360张图片
现在启动了,所以现在正确的访问日志有了
在这里插入图片描述
停掉apche
Linux从入门到精通5_第361张图片
Linux从入门到精通5_第362张图片
接下来的任务就是定时让它运行
Linux从入门到精通5_第363张图片
Linux从入门到精通5_第364张图片
Linux从入门到精通5_第365张图片
-e是文件为真,!取反
Linux从入门到精通5_第366张图片
Linux从入门到精通5_第367张图片
在这里插入图片描述
Linux从入门到精通5_第368张图片
在这里插入图片描述
Linux从入门到精通5_第369张图片

11.5.2 Shell编程-流程控制-case语句

多分支判断语句
Linux从入门到精通5_第370张图片
case:只能有一种判断关系
Linux从入门到精通5_第371张图片
Linux从入门到精通5_第372张图片
打印选择列表的情况
Linux从入门到精通5_第373张图片
Linux从入门到精通5_第374张图片
*不用打双引号!去掉
这个变量是否是这个值还是那个值

11.5.3 Shell编程-流程控制-for循环

Linux从入门到精通5_第375张图片
Linux从入门到精通5_第376张图片
Linux从入门到精通5_第377张图片
Linux从入门到精通5_第378张图片
Linux从入门到精通5_第379张图片
Linux从入门到精通5_第380张图片
把所有的包放在了lamp目录中,把所有后缀名为压缩包的都放到ls.log这个文件中
Linux从入门到精通5_第381张图片
循环执行,解压,把执行结果信息输出到垃圾站中
Linux从入门到精通5_第382张图片
Linux从入门到精通5_第383张图片
这种for循环的好处:不需要事先执行循环的个数
Linux从入门到精通5_第384张图片
用双小括号括起来才允许进行加减乘除运算
Linux从入门到精通5_第385张图片
Linux从入门到精通5_第386张图片
在这里插入图片描述
Linux从入门到精通5_第387张图片
事先知道要添加多少个用户,用到第二种循环
用户名、个数、初始密码
先要判断输入的名字、个数、初始命令不为空,才能往下执行
还要判断输入的num是数字,sed是正则表达式,包含匹配。如果是数字替换为空,如果y为空,则证明为数字
循环num次,添加用户st1 st2 …
Linux从入门到精通5_第388张图片
Linux从入门到精通5_第389张图片
结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Linux从入门到精通5_第390张图片
脚本没有执行

11.5.4 Shell编程-流程控制-while循环与until循环

Linux从入门到精通5_第391张图片
Linux从入门到精通5_第392张图片
Linux从入门到精通5_第393张图片
Linux从入门到精通5_第394张图片
Linux从入门到精通5_第395张图片
少加了个100
Linux从入门到精通5_第396张图片
Linux从入门到精通5_第397张图片
Linux从入门到精通5_第398张图片
不成立则执行循环,直到
Linux从入门到精通5_第399张图片
在执行的同时进行编译,但是效率 要慢

怎么建立编程思想:多练

你可能感兴趣的:(Linux)