1.shell
shell是操作系统的一个软件,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口,系统中的命令用shell解释,可以接收系统回应的输出并显示到屏幕上.
2.shell脚本
脚本是解释性语言,用shell脚本保存执行动作;判断命令的执行条件;实现动作的批量进行.
3.脚本注释的添加
在脚本开始写上脚本的作者,时间,联系方式,便于对脚本的维护.
vim /etc/vimrc vim的配置文件
map ms:call Scripts-Dest()'s 快捷键F9执行函数Scripts-Dest()加注释

autocmd BUFNewFile *.sh *.script exec “:call Scripts_Dest( )” 自动执行函数加注释

在每次脚本创建时,就会自动加上注释

4.脚本的调试
sh -x linux.sh 适用于所有shell脚本

5.shell脚本的执行
(1)sh linux.sh 指定解释器
(2)chmod +x linux.sh 给执行权限
./linux.sh


6.常用的基本命令
(1)diff和patch
diff 比较两者的不同
a 添加
c 更改
d 删除
如新建两个文件 westos westos1
westos 内容为:hallo
westos1 内容为:第一行 hallo;第二行 111
用 diff 比较两文件内容的不同


yum install patch -y

patch westos1 westos.path 打补丁,把两个文件改成一致的,同时把源文件保留

完成后会生成westos.orig这个文件,这是westos1的原文件


diff还可以用来比较目录

yum install gcc -y

vim linux.c

vim linux1.c


若比较的文件为c语言程序码文件时,显示差异所在的函数名称

cut
cut 命令用于按“列”提取文本字符,格式为“cut [参数] 文本”
-d 指定分隔符
-f 指定截取的列 (-f1,7 第一和第七列;-f1-5 #第一到第5列


-c 指定截取的字符位置

sort:多用于字符排序
-n 纯数字排序

-r 倒序

-u 去掉重复的数字

-o 输出到指定文件

-t 指定分隔符
-k 指定要排序的列
uniq:对重复字符做相应的处理
-u 显示唯一的行

-d 显示重复的行

-c 每行显示一次并统计重复次数

&&和||
&& 正确输出
|| 错误输出
test等同于[ ]:测试工具
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试
关于两个整数之间的判定,例如 test n1 -eq n2
1)test " a=b" ! 不等于
-eq 两数值相等
-ne 两数值不等
-gt n1 大于 n2
-lt n1 小于 n2
-ge n1 大于等于 n2
-le n1 小于等于 n2


2)两个文件之间的比较,如:test file -nt file1
-nt (newer than)判断 file1 是否比 file2 新
-ot (older than)判断 file1 是否比 file2 旧
-ef 判断 file与 file 是否为同一文件,可用在判断hard link(硬链接) 的判定上。主要意义在判定,两个文件是否均指向同一个 inode

3)关于某个文件名的“文件类型”判断,如 test -e filename 表示存在否
-e 该“文件名”是否存在
-f 该“文件名”是否存在且为文件(file)
-d 该“文件名”是否存在且为目录(directory)
-b 该“文件名”是否存在且为一个 块设备(block device) 设备
-c 该“文件名”是否存在且为一个 字符串(character device) 设备
-S 该“文件名”是否存在且为一个 套接子(Socket) 文件
-L 该“文件名”是否存在且为一个 链接(软链接)文件


tr
tr 大小写的转换

本文深入讲解了Shell脚本的基础知识,包括Shell的概念、脚本的创建与执行、调试技巧及常用命令,如diff、patch、cut、sort、uniq等,还介绍了如何在脚本中使用注释和条件判断。
1012

被折叠的 条评论
为什么被折叠?



