shell脚本编写之常用基础命令(diff、patch、cut、sort、uniq、&&与||、test、tr)

本文介绍了Linux shell脚本中的基本命令,包括diff、patch、cut、sort、uniq、逻辑运算符(&&与||)、test命令以及tr命令的使用方法,通过实例演示了如何在shell脚本中应用这些命令,帮助读者掌握shell脚本的基础操作。
摘要由CSDN通过智能技术生成

一、shell(计算机壳层)

  • 在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器), 它类似于DOS下的command.com和后来的cmd.exe,它接收用户命令,然后调用相应的应用程序,同时它又是一种程序设计语言,作为命令语言, 它交互式(从键盘输入,并且可以立即得到响应)解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令,作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。在排序算法中,Shell是希尔排序的名称 简单来说,其实shell就是用户和系统交互的工具。
  • shell包在Linux内核的外面,为用户和内核之间的交互提供了一个接口。
  • shell脚本:脚本是一种解释型语言,用shell脚本保存执行动作,用脚本判定命令的执行条件,用脚本来实现动作的批量执行
  • 交互式模式 :shell等待你的输入,并且执行你提交的命令
  • 非交互式模式: 在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们,当它读到文件的结尾,shell也就终止了,也就是一个自动执行的脚本

二、shell中常用的基本命令

1、diff 命令(比对文件)

1.1 基本概念以及命令的格式
  • diff 命令是用来比较两个文件或目录的不同,够借由 diff 创建的分析档,以处理补丁(patch)功能的文件

diff file1 file2 | 比较两个文件的不同之处

diff direcory1 directory2 | 比较两个目录的不同之处

1.2 结果读取方式

[num1,num2][a|c|d][num3,num4]

  • num1,num2 表示在第一个文件中的行数 num3,num4 表示在第二个文件中的行数
  • a表示添加 ----add; c表示更改 ----change ;d 表示删除 ----delete
  • < 表示第一个文件中的内容 ; > 表示第二个文件中的内容 ; — 分割线
  • 2,4c2,4 表示改变第一个文件中的第二行和第四行才能匹配第二个文件中(表示第一个文件和第二个文件的不同之处在于第二行和第四行)
1.3 diff中常用的参数
参数 含义
-b 或 --ignore-space-change 不检查空格字符的不同
-B 或 --ignore-blank-lines 不检查空白行
-c 显示全部内文,并标出不同之处
-i 或 --ignore-case 不检查大小写的不同
-p 若比较的文件为 C 语言的程序码文件时,显示差异所在的函数名称
-q 或 --brief 仅显示有无差异,不显示详细的信息
-r 或 --recursive 比较子目录中的文件
-u 以合并的方式来显示文件内容的不同
  • -q和-c的不同之处 ,-c更智能一些

实验
在这里插入图片描述
(1)diff file1 file2

在这里插入图片描述
(2)diff -b file1 file 对比忽略空格

在这里插入图片描述

(3)diff -B file1 file 对比忽略空行

在这里插入图片描述
(4)diff -c file1 file 显示全部,并用+,!标出不同之处
在这里插入图片描述
(5)diff -i file1 file 对比忽略大小写

在这里插入图片描述
(6)diff -q file1 file 对比仅显示有无差异,不显示详细信息

在这里插入图片描述
(7)diff -r /ranran/file1 /ranram/file 递归比较子母录中的文件

在这里插入图片描述

(8)diff -u file2 file1

在这里插入图片描述

2、patch命令(打补丁)

2.1基本概念以及命令的用法
  • 用于不同文件打布丁,这个指令常与 diff 配合使用,先比较新旧版本的差异,并将差异档制作成为补丁文件,再由补丁文件更新旧文件。
  • patch指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。
  • 打补丁的软件: patch

patch [options] file.old(旧文件) file.path(补丁文件)

2.2patch常用参数
参数 含义
-b或–backup 备份每一个原始文件。在修补文件时,重命名或复制原始文件,而不是删除它
-p 后面可以接“取消几层目录”的意思。
-R 代表还原,将新的文件还原成原来旧的版本

(1)yum install patch -y 安装打补丁的软件
在这里插入图片描述

(2)diff -u file1 file2 >file.path 生成补丁文件
(3)patch -b file1 file.path 修补文件test1在这里插入图片描述

3、cut命令(字符截取)

  • cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
命令 含义
cut -d 指定分隔符
cut -f 1,7 截取1和7列
cut -c 1,4 1-4 指定截取的字符位置

(1)cut -d :-f 1 passwd 截取以:为分隔符的第一列
在这里插入图片描述
(2)cut -d :-f 1-3 passwd 截取以:为分隔符的第1列到第3列
在这里插入图片描述
(3)cut -d :-f 1,3 passwd 截取以:为分隔符的第1列和第3列

在这里插入图片描述
(4)cut -c 1,3 passwd 截取第1个和第3个字符

在这里插入图片描述
(5)cut -c 1-3 passwd 截取第1个到第3个字符

在这里插入图片描述

4、sort(字符排序)

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

(1)sort file 仅对第一列数字排序

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值