Linux系统下shell脚本的常用命令

  1. diff 比较两文件的不同
    diff在比较文件过程中结果读取方式:

     	[num1,num2]a|c|d[num3,num4]
     	num1,num2表示在第一个文件的行数
     	a表示添加:add 
     	c表示更改:change
     	d表示删除:delete
     	num3,num4 表示在第二个文件中的行数
    

    例:

     	cd /mnt                  			
     	vim westos					建立文件westos写入内容:123
     	123         
     	vim westos1				建立文件westos1写入内容:第一行123第二行456 
     	123
     	456             
    

用diff比较两个的文件的不同
在这里插入图片描述
diff 的常用参数

		-b 或 --ignore-space-change	不检查空格字符的不同
		-B 或 --ignore-blank-lines	不检查空白行
		-c	显示全部内容,并标出不同之处
		-i 或 --ignore-case	不检查大小写的不同
		-p : 若比较的文件为C 语言的程序码文件时,显示差异所在的函数名称
		-q 或 --brief 	仅显示有无差异,不显示详细的信息
		-r 或 --brief	比较子目录中的文件
		-u	以合并的方式来显示文件内容的不同

2.patch
用于不同的文件打补丁

	diff -u westos westos1  > westos.path		制作一个补丁文件westos.path

在这里插入图片描述

	yum install patch -y		安装path
	patch -b westos westos.path	将补丁westos.path 更新给westos
	有 -b 参数更新补丁时会备份原文件,生成文件westos.orig
	没有 -b 参数更新补丁不会备份原文件

在这里插入图片描述

3.cut

	cut 命令多用于与字符截取
	cut -d	指定分隔符
	cut -f	1,7|1-7	指定截取的1和7列或1到7列
	cut -c	1,4|1-4	指定截取的字符位置

例:

		cp /etc/passwd /mnt
		vim passwd		删除一部分内容,留下一部分方便实验
		cut -d : -f 1,7 passwd	 以 : 为分隔符,截取第1列和第7列

在这里插入图片描述

4.sort多用于字符排序

	sort -n		纯数字排序
	sort -r		倒叙
	sort -u		去掉重复数字
	sort -o		输出到指定文件中
	sort -t		指定分隔符
	sort -k		指定要排序的列

例:vim file 无序的输入一些数字
在这里插入图片描述

	sort -n			数字排序

在这里插入图片描述

	sort -ru			到序并屏蔽重复数字

在这里插入图片描述
5.uniq 对重复字符做相应的处理

	uniq -u		显示唯一的行

在这里插入图片描述

	uniq -d		显示重复的行

在这里插入图片描述

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

在这里插入图片描述

6.&& 和 ||
&& 用来执行条件成立后执行的命令
|| 用来执行条件不成立后执行的命令

例:vim ping.sh 编辑一个脚本,能ping通ip显示is up 不能通显示is down

	#!/bin/bash
	ping -c1 -w1 &> /dev/bull\
	&& echo $1 is up || echp $1 is down

在这里插入图片描述

	chmod 755 ping.sh		给脚本文件执行权限

测试:

			sh ping.sh 192.168.122.7 | 192.168.122.77

在这里插入图片描述

7.test 和[ ]等同

	test "$A"="$B"    		等同 ["$A"="$B"]
		["$A"="$B"]         表示"$A"="$B"成立
		["$A"!="$B"]       表示"$A"="$B"不成立
		[ -z "$A"]          表示$A是否为空
		[ -n "$A"]          表示$A是否不为空  

例:
在这里插入图片描述

参数:

		-eq   等于
		-ne   不等于
		-le   小于等于
		-lt   小于
		-ge   大于等于
		-gt   大于

例:
在这里插入图片描述

参数

			-o		表示或者
			-a		表示并且

例:

	[ "$a" = "$b" -o "$a" -lt "5" ] $a是否等于$b,或者$a小于5
	[ "$a" = "$b" -a "$a" -lt "5" ] $a是否等于$b,并且$a小于5

在这里插入图片描述

编辑脚本: 判定一个数字是否在0-10之间,脚本后面没数字显示please give me a number! 有数字进行判定在1-10输出yes否则输出no

		vim check_num.sh   
	#!/bin/bash
	[-z "$1" ] && { 		判定脚本后第一穿字符是否为空
				echo please give me a number !! 
				exit 
	 }
	 [ "$1" -gt "0" -a "$1" -lt "10" ] && echo yes || echo n

在这里插入图片描述

		chmod 755 check_num.ph			给脚本执行权限后进行测试

在这里插入图片描述

test判定文件类型的参数

	[ -e "file" ]    文件是否存在
	[ -f "file" ]    文件是否为普通文件
	[ -L "file" ]    文件时否为连接(软连接)
	[ -S "file" ]    文件是否为套接字
	[ -b "file" ]    文件是否为快设备
	[ -d "file" ]    文件是否为目录
	[ -c "file" ]    文件是否为字符设备
	ln -S /mnt/file  /mnt/hello    创建链接-s表示软链接,不加-s表示硬链接

例:编辑脚本,检查文件是否存在,如果存在是文件还是目录还是软连接

		vim check_file.sh

在这里插入图片描述

测试:
在这里插入图片描述

8.tr 字符转换(文件内容)

 echo hello HELLO
 echo hello HELLO | tr 'a-z' 'A-Z'
 echo hello HELLO | tr 'A-Z' 'a-z'

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值