Shell 基础命令简介

Shell 基础命令简介
diff 命令的使用
diff命令是在比较文件过程中结果读取方式
diff - compare files line by line 对文件逐字逐句的对比
[num1,num2][a|c|d][num3,num4]
num1,num2 表示在第一个文件的行数
a 表示添加 add
c 表示更改 change
d 表示删除 delete
< 表示第一个文件中的内容,

表示第二个文件的内容
num3,num4 表示在第二个文件中的行数
2,4a2,4 表示改变第一个文件中的第二行和第四行,才能匹配第二个文件的第二行和第四行
2-4 表示第二行到第四行
2,4 表示第二行和第四行
diff test1 test2
在这里插入图片描述

diff命令常用的参数
-b 不检查空格字符的不同
diff -b test1 test2
test2 文件 test 后面有一个空格
在这里插入图片描述
-B 不检查空白行
在这里插入图片描述
-c 显示全部内文,并标出不同之处
在这里插入图片描述
-i 不检查大小写的不同
在这里插入图片描述
-p 若比较的文件为c语言的程序码文件时,显示差异所在的名称

patch
安装patch文件

yum install patch -y
在这里插入图片描述

patch 的用法
patch -b test1 test.path
给 test1 文件打 test.path 补丁 使 test1 文件与 test2 文件相同
cat test1 test2
在这里插入图片描述

cut 命令多用于字符的截取
cut -d 指定分隔符
cut -f 1,7|1-7 指定截取的列
cut -c 1,3|1-3 指定截取字符的位置
示例:
截取eth0的ip地址:
在这里插入图片描述
ifconfig eth0 | head -n 2 | tail -n 1 | cut -c 14-28
在这里插入图片描述
截取 /etc/passwd 文件中第二行的 “nologin
在这里插入图片描述
cat passwd | head -n 2 | tail -n 1 | cut -d : -f 7 | cut -d / -f 3
在这里插入图片描述
head -n 2 | tail -n 1 | cut -d : -f 1,3,5
头部 2 行 | 尾部 1行 | 分别截取以 : 分隔的第一、三、五列
在这里插入图片描述
sort 多用于字符的排序
在这里插入图片描述
sort -n 纯数字排序
在这里插入图片描述
sort -r 倒序
在这里插入图片描述
在这里插入图片描述
sort -u 去除重复的数字
在这里插入图片描述
在这里插入图片描述
sort -o 输出到指定的文件中
sort -t 指定分隔符
sort -k 指定要排序的列
sort -nr test | uniq -c | sort -t " " -k 2
指定每行显示一次并且按照分隔符空格排序两列
在这里插入图片描述
sort -nr test | uniq -c | sort -t " " -k 2 -r
指定每行显示一次并且按照分隔符空格排序两列并且倒序排列
在这里插入图片描述
sort -nr test | uniq -c | sort -t " " -k 2 -r | head -1
指定每行显示一次并且按照分隔符空格排序两列并且倒序排列抓取第一行
在这里插入图片描述
uniq 对重复的字符作相应的处理
在这里插入图片描述
uniq -u 显示唯一的行
在这里插入图片描述
uniq -d 显示重复的行
在这里插入图片描述
uniq -c 每行显示一次并统计重复的次数
在这里插入图片描述
‘&&’ and ‘||’
&& 用来执行条件成立后的执行命令
|| 用来执行条件不成立的执行命令
例如:
ping -c1 -w1 172.25.254.111 && echo up
ping -c1 -w1 172.25.254.111 || echo down

test 命令 ##用来判断的命令
文件名、类型判断
-e 该文件名是否存在
-f firename 判断该文件名是否存在并且是否是普通文件
-d 该文件是否存在并且是否是目录
-b 该文件是否存在并且是否是块设备
-c 该文件是否存在且是否是一个character device设备
-S 该文件是否存在且是一个套接子socket文件
-p 该文件是否是FIFO(pipe)文件
-L 该文件是否是一个链接文件
文件权限判断
-r 检测文件是否可读取的权限
-w 检测文件是否可写
-x 检测文件是否可执行
-u 检测文件是否有SUID的权限
-g 检测文件是否有SGID的权限
-k 检测文件是否有sticke bit的权限
-s 检测文件名是否为空
两个文件的比较
[“file1”-nt"file2"] (newer than) 判断file1是否比file2新
[“file1”-ot"file2"] (older than) 判断file1是否比file2旧
在这里插入图片描述
[“file1”-ef"file2"] 判断file1 file2是否是一个文件,可用在判定hard link上
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
数字之间的判定
test 命令和[] 等同
test “ A &quot; = = &quot; A&quot;==&quot; A"=="B” 等同与 [“ A &quot; = = &quot; A&quot;==&quot; A"=="B”]
[“ A &quot; = &quot; A&quot;=&quot; A"="B”] ##判断 A 是 否 等 于 A是否等于 AB
在这里插入图片描述
[“ A &quot; ! = &quot; A&quot;!=&quot; A"!="B”] ##判断 A 是 不 等 于 A是不等于 AB
在这里插入图片描述
[“ A &quot; − e q &quot; A&quot;-eq&quot; A"eq"B”] ##(equal)等于
在这里插入图片描述
[“ A &quot; − n e &quot; A&quot;-ne&quot; A"ne"B”] ##(not equal)不等于
在这里插入图片描述
[“ A &quot; − g t &quot; A&quot;-gt&quot; A"gt"B”] ## (greater than)大于
在这里插入图片描述
[“ A &quot; − l t &quot; A&quot;-lt&quot; A"lt"B”] ## (less than) 小于
在这里插入图片描述
[“ A &quot; − g e &quot; A&quot;-ge&quot; A"ge"B”] ## (greater than or equal)大于或等于
在这里插入图片描述
[“ A &quot; − l e &quot; A&quot;-le&quot; A"le"B”] ## (less than or equal) 小于或等于
在这里插入图片描述
判断字符串的数据
test -z 判断字符串是否为0,若为空返回truestring
在这里插入图片描述
test -n 判断字符串是否为0,若为空返回falsestring
在这里插入图片描述
test str1=str2 判断str1是否等于str2 若相等就返回 truestring
test str1!=str2 判断str1是否不等于str2 若不相等就返回falsestring
多重条件判断
-a 两个条件同时成立
-o 任何一个条件成立
! 反向状态
tr大小写转换
在这里插入图片描述
示例:
vim /root/check_file.sh

[ -z “$1” ] && {
echo “Please input your filename”
exit
}
[ -e “$1” ] || {
echo “$1 is not exist”
exit
}
[ -f “$1” ] && {
echo “$1 is file”
exit
}
[ -d “$1” ] && {
echo “$1 is directory”
exit
}
[ -L"$1" ] && {
echo “$1 is softlinks”
exit
}
[ -S “$1” ] && {
echo “$1 is socket”
exit
}
[ -b “$1” ] && {
echo “$1 is block dev”
exit
}
[-c “$1” ] && {
echo “$1 is character dev”
exit
}
cat /root/check_file.sh
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值