热门标签 | 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
}


推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
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社区 版权所有