shell脚本的常用命令——入门篇

shell脚本(计算机壳层)

1.概述

脚本语言(shell、python):解释性语言,用解释器解释 运行效率低
c、java:描述性语言,运行效率高

#!/bin/bash 幻数 ,在脚本运行的时候先进行该程序 

以.sh结尾的文件会有高亮显示
执行: chmod +x file.sh
再以绝对路径调用 sh /xxx/file.sh (sh file.sh)

在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序
同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

diff命令的使用

diff比较文本文件命令。它能比较单个文件或者目录内容。
diff 命令只有当输入为文本文件时才有效。 如果指定了 Directory1和 Directory2 参数,diff 命令比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。
diff命令用于比较两个文件的差异,它可以被制作成补丁文件,使用patch命令对相应的文件打补丁

diff 在比较文件过程中结果读取方式

[num1 , num2][a|c|d][num3,num4]
num1,num2 表示第一个文件中的第几行
num3,num4 表示在第二个文件中的第几行
a 表示添加 ----add
c 表示更改 ----change
d 表示删除 ----delete
< 表示第一个文件中的内容
>表示第二个文件中的内容
2,4c2,4 表示改变第一个文件中的第二行和第四行才能匹配第二个文件中
的第二行和第四行

比较文件

diff [options] target1 target2
diff file1 file2 ##比较文件1 文件2
diff direcory1 directory2

编辑文件westos1
在这里插入图片描述编辑文件westos2
在这里插入图片描述
第一个和第二个进行比较以第二个文件为准则
删除第一个文件的第二行才能和第二个文件的第一行匹配
在这里插入图片描述

diff 中常用的参数

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

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

patch命令

patch命令用于文件不同文件打布丁
patch -b file.old   file.path   ##-b保留原文件,进行备份生成.orig文件,并进对原文件进行补丁

yum install patch -y ##补丁工具在这里插入图片描述在这里插入图片描述cut命令

cut 命令多用与字符截取

命令作用
cut -d指定分隔符
cut -f 1截取第一列
cut -f 1,7指定截取第1列和第7列
cut -f 1-7截取1-7列
cut -c 1截取第一个字符
cut -c 1,4指定截取第1和第4个字符
cut -c 1-4截取1-4个字符

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

sort命令

sort多用于字符排序

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

按第一位数字大小排序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

uniq命令

uniq对重复字符做相应的处理

命令作用
uniq -u显示唯一的行
uniq -d显示重复的行
uniq -c每行显示一次并统计重复次数
uniq -c 每行显示一次并统计次数
左边的为数字出现的次数,右边的为数字

&& 和 ||

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

例如:

编辑脚本如下所示
vim test.sh
ping $1 -w 3 >/dev/null && echo “$1 is up” || echo “$1 is down” 
表示ping输入的ip($1),若能ping通输出结果为“$1 is up",ping不通则输出结果“$1 is down”($1表示执行脚本输入的ip,>/dev/null表示不显示输出结果)

在这里插入图片描述

test 命令

test 命令和 [] 等同
test “A” == “B” 等同 [ “A” == “B” ]
[ “A” = “B” ]
[ “A” != “B” ]
[ “A” -eq “B” ]
[ “A” -ne “B” ]
[ “A” -le “B” ]
[ “A” -lt “B” ]

 -eq	等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
<(>) 小于(大于)
<=(>=) 小于等于(大于等于)
!=不相等
-a 且
-o 或
-z 为空
-n 不为空
-ot 文件时间旧
-nt 文件时间新
-ef 互为硬链接

test 命令

命令作用
[-e “file” ]文件是否存在
[-f “file” ]是否为文件
[-L “file” ]是否为软链接
[-S “file” ]是否为套接字
[-b “file” ]是否为块设备
[-d “file” ]是否为目录
[-c “file” ]是否为字符设备

在这里插入图片描述
硬链接与软链接

硬链接

ls -i test.sh 查看test.sh的节点
ln /root/test.sh /root/c.sh 建立文件的硬链接c.sh
ls -i c.sh 查看c.sh的节点,可以看到其节点与源文件的节点相同

软链接

 ln -s /root/test.sh /root/cn 建立文件的软链接cn
 cat cn查看软链接
  ls -i cn 查看软链接的节点,可以看到其节点与源文件不同 

rm -fr /root/test.sh 刪除/root/test.sh(源文件)
查看软链接可以看到无法查看,因为其指向的文件已经被删除。
而硬链接建立的文件依旧可以查看。
软链接只建立一个节点,通过该节点来查找数据块中的内容,而硬链接则会复制其数据块,但节点不会发生改变,即使删除原来的文件,也不会对硬链接产生影响(硬链接,一个节点对应多个文件)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值