shell脚本系列
###shell中常用的基础命令###
1.首先要知道,所有的程序都是由逻辑加数据组成的。
#diff
用法:
diff [options] files|directorys

输出信息:
[num1,num2] [a|c|d][num3,num4]
num1,num2 ##第一个文件中的行
a ##添加
c ##更改
d ##删除
< ##第一个文件中的内容
‘>’ ##第二个文件中的内容
num3,num4 ##第二个文件中的行

常用参数:

-b ##忽略空格

-B ##忽略空行

-i ##忽略大小写

-c ##显示文件所有内容并标示不同

-r ##对比目录

-u ##合并输出

实验操作

先建立两个文本文件,如图所示

犀牛怎么使用 PYTHON脚本 犀牛shell命令_分隔符


输入命令尝试即可

#patch

patch 源文件 补丁文件

-b #备份原文件

安装patch软件方法

dnf install patch -y

查看用法

patch --help

犀牛怎么使用 PYTHON脚本 犀牛shell命令_shell脚本_02


刚才已经-u进行合并传输,生成了westos.path文件,故此使用命令

patch westos westos.new 进行打补丁

再使用diff westos westos.new 查看补丁是否已经打好

犀牛怎么使用 PYTHON脚本 犀牛shell命令_shell脚本_03


(总的来说就是用diff -u 生成补丁,用patch打补丁)

#cut:

-d #指定:为分隔符

-f #指定显示的列

-c #指定截取的字符(数字用法同-f)

犀牛怎么使用 PYTHON脚本 犀牛shell命令_用户名_04


截取第一列到第五列字符

犀牛怎么使用 PYTHON脚本 犀牛shell命令_犀牛怎么使用 PYTHON脚本_05


#sort(排序)

-n #纯数字排序

-r #倒叙

-u #去掉重复

-o #输出到指定文件

-t #指定分隔符

-k #指定排序的列

犀牛怎么使用 PYTHON脚本 犀牛shell命令_犀牛怎么使用 PYTHON脚本_06

#uniq(重复部分进行处理)

-c #合并重复并统计重复个数

-d #显示重复的行

-u #显示唯一的行

犀牛怎么使用 PYTHON脚本 犀牛shell命令_分隔符_07


测试:

1.ifconfig 网卡可以显示此网卡的信息,显示信息中包含此网卡使用的IP地址,请用命令过滤此ip并在输出时只显示ip而不显示其他信息。

思路:先找出网卡信息 ifconfig ens160 ,再过滤出ip地址所在的行 grep "inet ",注意空格是细节,如果不加空格后面的inet6也会被识别到,最后数空格,找到ip地址在第十行,故完成。

犀牛怎么使用 PYTHON脚本 犀牛shell命令_犀牛怎么使用 PYTHON脚本_08

2.找出能登陆系统用户中UID最大的用户,并显示其名称。

思考:过滤出/etc/passwd文件下由bash或者sh的所在行

犀牛怎么使用 PYTHON脚本 犀牛shell命令_用户名_09


再对其进行排序

犀牛怎么使用 PYTHON脚本 犀牛shell命令_犀牛怎么使用 PYTHON脚本_10


再提取出最后一行

犀牛怎么使用 PYTHON脚本 犀牛shell命令_犀牛怎么使用 PYTHON脚本_11


用cut命令取出名字

犀牛怎么使用 PYTHON脚本 犀牛shell命令_linux_12


#tr

tr ‘a-z’ ‘A-Z’ #小写转换为大写

tr ‘A-Z’ ‘a-z’ #大写转换为小写

犀牛怎么使用 PYTHON脚本 犀牛shell命令_犀牛怎么使用 PYTHON脚本_13


(也可以用于转换字符)

犀牛怎么使用 PYTHON脚本 犀牛shell命令_linux_14


测试:使用shell脚本,在系统中查找haha ,goudan用户是否存在

犀牛怎么使用 PYTHON脚本 犀牛shell命令_shell脚本_15


犀牛怎么使用 PYTHON脚本 犀牛shell命令_犀牛怎么使用 PYTHON脚本_16


犀牛怎么使用 PYTHON脚本 犀牛shell命令_shell脚本_17


不加用户名输入发现输出有问题

犀牛怎么使用 PYTHON脚本 犀牛shell命令_犀牛怎么使用 PYTHON脚本_18

犀牛怎么使用 PYTHON脚本 犀牛shell命令_犀牛怎么使用 PYTHON脚本_19


加入一个判定,解决不输入用户名不报错的问题

犀牛怎么使用 PYTHON脚本 犀牛shell命令_分隔符_20


#test

test = [] #[]就相当于test命令

”test 犀牛怎么使用 PYTHON脚本 犀牛shell命令_用户名_21b“ = [ “犀牛怎么使用 PYTHON脚本 犀牛shell命令_犀牛怎么使用 PYTHON脚本_22b” ]

test数字对比

= #等于

!= #不等于

-eq #等于

-ne #不等于

-le #小于等于

-lt #小于

-ge #大于等于

-gt #大于

test条件关系
-o #或者
-a #并且

test对空的判断
-n #nozero 判定内容不为空
-z #zero 判定内容为空

test对文件的判断

-ef #文件节点号是否一致

-nt #文件1是不是比文件2新

-ot #文件1是不是比文件2老

-d #目录

-S #套接字

-L #软连接

-e #存在

-f #普通文件

-b #块设备

-c #字符设备

测试1:

1.脚本名以及位置/mnt/westos.sh。

2.脚本后可加参数/mnt/westos cr/eate delete

3.后面所跟参数是create lee存在

显示 lee: lee is exist

若不存在时会建立lee ,并显示,lee is created

4./mnt/westos.sh delete lee

当lee存在时

删除lee 并显示lee deleted

当lee不存在时,什么都不做

当/mnt/westos.sh hah lee

报错

ERROR:wrong options hah.Please input create and delete following script.

当/mnt/westos.sh 后所跟字符串不足两个时把报错

Usage:/mnt/westos.sh <create | delete> <username’>’

犀牛怎么使用 PYTHON脚本 犀牛shell命令_linux_23


经过修改后功能齐全-

犀牛怎么使用 PYTHON脚本 犀牛shell命令_linux_24


测试2:

file_check.sh在执行时

如果脚本后未指定检测文件报错”未检测指定文件,请指定“

如果脚本后指定文件不存在报错“此文件不存在”

当文件存在时请检测文件类型并显示到输出当中

犀牛怎么使用 PYTHON脚本 犀牛shell命令_shell脚本_25


尝试了能想到的方法,没什么问题

犀牛怎么使用 PYTHON脚本 犀牛shell命令_用户名_26


后续正在更新…

###文本处理工具###

###shell脚本的基本知识###

###shell脚本中的变量###

###shell的执行流控制###

###shell中的运算###

###shell应用实例###