热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

4.1shell中常用的基础命令

1.diff用法:diff[options]files|directorys输出信息:[num1,num2][a|c|d][num3,num4]nu
1.diff 

用法:
diff  [options]  files|directorys

输出信息:
[num1,num2] [a|c|d] [num3,num4]
num1,num2    ##第一个文件中的行
a        ##添加
c        ##更改
d        ##删除
<        ##第一个文件中的内容
>        ##第二个文件中的内容
num3,num4    ##第二个文件中的行
常用参数&#xff1a;
-b    ##忽略空格
-B    ##忽略空行
-i    ##忽略大小写
-c    ##显示文件所有内容并标示不同的行
-r    ##对比目录
-u    ##合并输出
 

2.patch 

patch  原文件 布丁文件
-b    ##备份原文件
 

实验&#xff1a;
 

cd /mnt
echo westos linux > westos
cat westos > westos1
echo 123 >> westos1
diff westos westos1
diff -b westos westos1
diff -B westos westos1
diff -i westos westos1
diff -c westos westos1
mkdir westosdir
mkdir westosdir1
touch westosdir1/westosfile
ls westosdir1
diff -r westosdir westosdir1/
diff -u westos westos1 > westos.path (生成补丁)
dnf install patch
patch westos westos.path
patch -b westos westos.path

 3.cut 

-d :指定&#xff1a;为分隔符
-f指定显示的列
-c指定截取的字符&#xff08;数字用法同-f&#xff09;

cd /mntrm -rf *cp /etc/passwd .lscat passwdcut -d : -f 1 passwdcut -d : -f 1,7 passwd  &#xff08;第一列和第七列&#xff09;cut -d : -f 1-3 passwd    &#xff08;第一列到第三列&#xff09;cut -d : -f -3 passwd        &#xff08;第三列之前&#xff09;cut -d : -f 3- passwd         &#xff08;第三列之后&#xff09;cut -c 1-4 passwd  &#xff08;第一个字符到第四个字符&#xff09;
4.sort

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

vim westoscat westos
1
3
6
9
4
5
3
9
22
97
3sort westos  (只排列第一列)sort -n westos (纯数字排列)sort -nr westos  (纯数字倒叙排列)sort -nru westos &#xff08;纯数字去掉倒叙排列&#xff09;sort -nr westos -o testsort -n -t : -k 2 westos

5.uniq

-c合并重复并统计重复个数
-d显示重复的行
-u显示唯一的行

sort -n westos | uniq -c &#xff08;纯数字排列&#xff0c;并合并重复并统计重复个数&#xff09;sort -n westos | uniq -d &#xff08;纯数字排列&#xff0c;并显示重复的行&#xff09;sort -n westos | uniq -u &#xff08;纯数字排列&#xff0c;并显示独立的行&#xff09;


学员命令测试&#xff1a;
1.ifconfig 网卡 可以显示此网卡的信息
  显示信息中包含此网卡使用的ip地址
  请用命令过滤此ip并在输出时只显示ip其他信息不显示
ifconfig ens3 | head -n 2 | tail -n 1 | cut -d "空格" -f 10
2.找出能登陆系统用户中UID最大的用户&#xff0c;并显示其名称
grep bash /etc/passwd | sort -rn -t : -k 3 | cut -d : -f 1 | head -n1


6.tr
tr &#39;a-z&#39; &#39;A-Z&#39; 小写转大写
tr  &#39;A-Z&#39; &#39;a-z&#39;大写转小写
tr &#39;A-Z&#39; &#39;a-z&#39; 将test中的内容大写转小写

7.test

test &#61; []       [] 就相当于test命令
test "$a" &#61; "$b" &#61; [ "$a" &#61; "$b" ]

test数字对比

&#61;等于&#xff01;&#61;不等于
-eq等于-ne不等于
-le小于等于-lt小于
-ge大于等于-gt大于

test的条件关系
-a    并且
-o    或者

 test对空的判定
-n    判定内容不为空
-z     判定内容为空

 实验
vim nmu_check.sh

#!/bin/bash
[ "$1" -ge "0" -a "$1" -lt "10"  ] && {echo $1 is  in 0-9
}|| {echo $1 is not in 0-9
}
sh nmu_check.sh 5

执行下列脚本来判断用户类型
user_check.sh  用户

&& ||
&&    符合条件作动作
||    不符合条件作动作

test对于文件的判定

-ef文件节点号是否一致&#xff08;硬链&#xff09;-L软连接
-nt文件1是不是比文件2新-e存在
-ot文件1是不是比文件2老-f普通文件
-d目录-b块设备
-S套接字-c字符设备

&#xff08;判断是否是目录&#xff09; [ -d "westosdir" ] && echo yes || echo nodnf install mariadb-server -y &> /dev/null
&#xff08;判断是否是套接字&#xff09;[ -S "/var/lib/mysql/mysql.sock" ] && echo yes || echo no&#xff08;判断是否是块设备&#xff09;[ -b "/dev/vda" ] && echo yes || echo nocd /mnttouch fileln -s /mnt/file /mnt/file1&#xff08;判断是否有软链接&#xff09;[ -L "/mnt/file1" ] && echo yes || echo no(判断是否是字符设备) [ -c "/dev/pts/0" ] && echo yes || echo no

 实验&#xff1a;
1)ping -c1 -w1 172.25.254.100 &> /dev/null && echo 172.25.254.100 is up || echo 172.25.254.100 is down
2)脚本&#xff1a;
vim test.sh
#!/bin/bash 
ping -c1 -w1 172.25.254.100 &> /dev/dull && {
        echo 172.25.254.100 is up 
} || {
        echo 172.25.254.100 is down
}
sh test.sh
 3&#xff09;检测hello用户在系统中是否存在&#xff0c;存在显示hello is exit,不存在显示hello is not exit
#!/bin/bash
id $1 &> /dev/null && {
        echo $1 is exit
} || {
        echo $1 is not exit
}
sh test.sh hello


学员检测
编写脚本完成以下条件
file_check.sh 在执行时
如果脚本后未指定检测文件报错“未指定检测文件&#xff0c;请指定”
如果脚本后指定文件不存在报错“此文件不存在”
当文件存在时请检测文件类型并显示到输出中

#!/bin/bash
[ -z "$1" ] && {echo "Error:no check file , please input file name!!"exit
}[ ! -e "$1" ] && {echo "$1 is not exit!"exit
}[ -L "$1" ] && {echo "$1 is link file"exit
}
[ -f "$1" ] && {echo "$1 is common file"exit
}
[ -d "$1" ] && {echo "$1 is directory"exit
}
[ -b "$1" ] && {echo "$1 is block device file"exit
}
[ -S "$1" ] && {echo "$1 is socket"exit
}


推荐阅读
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文详细介绍了如何在BackTrack 5中配置和启动SSH服务,确保其正常运行,并通过Windows系统成功连接。涵盖了必要的密钥生成步骤及常见问题解决方法。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文详细介绍如何使用arm-eabi-gdb调试Android平台上的C/C++程序。通过具体步骤和实用技巧,帮助开发者更高效地进行调试工作。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 射频系统中IM3、IIP3、OIP3、增益和P1dB的关系解析
    本文探讨了噪声系数与非线性失真对射频系统性能的影响,详细分析了IM3、IIP3、OIP3、增益(G)和1dB压缩点(P1dB)之间的关系,并提供了相关公式和图表解释。 ... [详细]
author-avatar
宫金丹865
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有