实验环境的配置:
添加一块硬盘:
、
目前该主机为双硬盘主机:
- 装虚拟化软件:
-
当ks自动安装脚本存在,网络资源存在dhcp存在,安装虚拟机仍然需要重复选择才能进入安装界面:
进入安装界面重复之前的安装选择操作
-
为了减少重复操作,选用更简便的方法进行安装,进行如下操作:
可用man virt-install 获取帮助
执行此命令即可开始自动安装:
1.diff 对比不同
- 输出信息:
[num1,num2][a|c|d][num3,num4]
num1,num2 | 第一个文件中的行 |
---|---|
a | 添加 |
c | 更改 |
d | 删除 |
> | 第二个文件中的内容 |
< | 第一个文件中的内容 |
num3,num4 | 第二个文件中的行 |
-
在westos中编辑hello westos,并将westos中的内容导入westos1中,使用diff westos westos1命令查看二者区别,无任何输出,表示二者并无差异:
在westos1的第二行中添加空格:
在westos的第一行中添加空格:
-
常用参数:
diff -b | 忽略空格 |
---|---|
diff -B | 忽略空行 |
diff -i | 忽略大小写 |
diff -c | 显示文件所有内容并标识不同 |
diff -r | 对比目录 |
diff -u | 合并输出 |
- 忽略空格:
- 忽略空行
- 修改westos1中的hello westos为Hello westos
忽略大小写:
- 显示文件所有内容并标识不同:
- 对比目录
- 合并输出
- - 合并输出
其中westos.path为补丁文件,此处需要安装patch软件
2.patch
yum install patch -y
patch 原文件 补丁文件 | 给原文件打补丁 |
---|---|
patch -b 原文件 补丁文件 | 备份原文件 |
- 给原文件westos打补丁(未备份原文件,此处打完补丁后westos与westos1完全一致,原本的westos被westos1替换)
- 备份原文件
备份后westos.orig为原文件的备份
3.cut
-d : | 指定:为分隔符 |
---|---|
-f | 指定显示的列 |
-c | 指定截取的字符(用法同-f) |
-b | 指定显示字节 |
- -complement | 反选 |
–output-delimiter=分隔符 | 指定输出的分隔符号 |
-f与-c用法相同,此处只写了一种
-f 5 | 显示第5列 |
---|---|
-f 2 ,5 | 显示第2列和第5列 |
-f 2-5 | 显示2到5列 |
-f 5- | 显示第5列以后 |
-f -5 | 显示到第5列 |
cut -d " " -f 2 westos --complement | 显示除了第二列的内容 |
- 以此文件为例:
- 查看第一列:
- 查看第一列到第三列:
- 查看第一列和第三列
- 截取1-4 字符
- 截取1和4字符
- 指定空格为分隔符,显示第一列、第二列
- 显示除了第二列以外的内容
- 指定输出的分隔符号为@
指定输出的分隔符号为空格
- 只显示第一个字符
- 只显示第五个字符之后的内容
- 只显示到第五个字符
4.sort
sort -n | 纯数字排序 |
---|---|
sort -r | 倒叙 |
sort -u | 去掉重复 |
sort -o | 输出到指定文件 |
sort -t | 指定分隔符 |
sort -k | 指定排序的列 |
- 以此文件为例
- 排序(该文件中将第一个数字排序)
- 纯数字排序
- 倒叙
- 去掉重复
- 输出到指定文件file中
- 以此文件为例
- 指定冒号为分隔符,按照第二列顺序排序:
- 指定冒号为分隔符,按照第二列数字顺序排序:
5.uniq
-c | 合并重复并统计重复个数 |
---|---|
-d | 显示重复的行 |
-u | 显示唯一的行 |
- 以如下文件为例:
- 合并重复并统计重复个数
- 显示重复的行
- 显示唯一的行
练习:
【1】 ls -l目录,可以显示目录中所有文件的属性,请按照文件大小进行排序并找出做大的2个文件并显示器名称
- 方法一:
- - 方法二:
5.tr
tr ‘a-z’ ‘A-Z’ | 小写转大写 |
---|---|
tr ‘A-Z’ ‘a-z’ | 大写转小写 |
6.&& 与 | |
&& 符合条件做动作
|| 不符合条件做动作
- 使用该脚本举例:
7.test
test = [] ##[] 就相当于test命令
"test $a = $b" = [ "$a" = "$b" ]
也可以将test替换成“[ ]”
- != 不等于
- 条件反选
【1】test数字对比
-eq | 等于 |
---|---|
-ne | 不等于 |
le | 小于等于 |
-lt | 小于 |
-ge | 大于等于 |
-gt | 大于 |
【2】test的条件关系
-a | 并且 |
---|---|
-o | 或者 |
【3】test对空的判定
-n nozero | 判定内容不为空 |
---|---|
-z zero | 判定内容为空 |
【4】test对于文件的判定
-ef | 文件节点号是否一致(硬链) |
---|---|
-nt | 文件1是不是比文件2新 |
-ot | 文件1是不是比文件2老 |
-d | 是否为目录 |
-S | 套接字 |
-L | 软链接 |
-e | 存在 |
-f | 普通文件 |
-b | 块设备 |
-c | 字符设备 |
- 文件节点号是否一致
- westos是否比westos1新
- westos是否比westos1老
- /mnt是否为目录
- 套接字
- 软连接
- 文件是否存在
- 块设备
- 普通文件
- 字符设备
练习:
编写脚本完成以下条件:
- file_check.sh在执行时,如果脚本后 未指定检测文件报错“未指定检测文件,请指定”,如果脚本后指定检测文件不存在报错“此文件不存在“,当文件存在时请检测文件类型并显示输出中