当前位置: 首页 > ai >正文

shell 脚本

一、什么是 SHELL 脚本?


        Shell 脚本(shell script)就是将要执行的命令按顺序保存到一个文本文件,并
给该文件可执行权限,方便一次性执行的一个程序文件。主要是方便管理员进行设
置或管理,可结合各种 shell 控制语句以完成更复杂的操作。常用于重复性操作、
批量事物处理、自动化运维、服务运行状态监控、定时任务执行等

二、shell 脚本编写


1.1 shell 脚本格式


1、创建 shell 脚本以.sh 结尾
2、第一行指定 shell 解释器,以#!开头,后面跟 shell 解释器绝对路径
3、第二行写注释,注释以#开头,注释包括作者,时间以及脚本作用
4、最后编写 shell 命令
5、如果脚本比较复杂,请填写注释

1.2 编写端口扫描脚本


nmap 是 linux 下的网络扫描和嗅探工具,需要安装 nmap 软件包 (yum install -y nmap)


命令格式:nmap [选项] 目标 ip/网段
-sT:TCP 连接扫描,不安全,慢
-sS:SYN 扫描,使用最频繁,安全,快
-Pn:目标机禁用 ping,绕过 ping 扫描
-sU:UDP 扫描,慢,可得到有价值的服务器程序
-sA:检测哪些端口被屏蔽
-p:对指定端口扫描
-sP:主机存活性扫描,arp 直连方式
-f:使用小数据包发送,避免被识别出

三、编写端口扫描脚本 (简单的)

 [root@localhost ~]# vim nmap.sh
#!/bin/bash                       作用:指定脚本使用 Bash 解释器执行。
#by Mr.sun                      作用:注释,说明脚本作者是 Mr.sun。
#nmap script                      作用:注释,说明这是一个用于端口扫描的 Nmap 脚本。
#2025 年 5 月 7 日 18:11:08       作用:注释,记录脚本的创建时间。

ip="192.168.1.12"                  # 定义目标 IPecho "########################$ip############################" >> /root/nmap.log
echo $(date "+%x%X") >> /root/nmap.log             
nmap -sS $ip >> /root/nmap.log

                            (作用:将包含变量 $ip 的字符串追加到日志文件 /root/nmap.log 中。)
                          (作用:将当前日期和时间(格式如 06/30/202216:11:08)追加到日志文件。(作用:执行 Nmap 的 SYN 扫描(半开扫描),扫描目标 IP 192.168.1.12,并将结果追加到日志文件。)

  执行脚本

 [root@localhost ~]# sh nmap.sh

四、编写端口扫描脚本 (根据简单加强的)

[root@localhost ~]# vim nmap.sh

#!/bin/bash

ip="192.168.1.10"
datetime=$(date "+%x%X")
logfile=/root/nmap.log

echo "##############$ip##############" >> $logfile
echo $datetime >> $logfile
nmap -sS $ip >> $logfile
echo "scan successful!!!"
echo "" >> $logfile

执行脚本

 [root@localhost ~]# sh nmap.sh

scan successful!!!

http://www.xdnf.cn/news/4300.html

相关文章:

  • Android学习总结之MMKV(代替SharedPreferences)
  • 黑电平校正(Black Level Correction, BLC)算法
  • 【C++】C++中this指针的介绍及使用
  • 实现引用计数线程安全的shared_ptr
  • 从Huggingface下载模型的方法小结
  • Linux如何安装AppImage程序
  • WHAT - Rust 静态派发(Static Dispatch)和 动态派发(Dynamic Dispatch)
  • 计算机视觉注意力机制【一】常用注意力机制整理
  • The Action Replay Process
  • spark行动算子
  • Java中对象集合转换的优雅实现【实体属性范围缩小为vo】:ListUtil.convert方法详解
  • mujoco仿真器学习笔记
  • 孤岛铜怎么解决
  • CAN报文中的标准帧和扩展帧
  • C++ string的使用
  • C++输入输出
  • 基础的OSPF实验配置笔记
  • 车载诊断框架 --- 车载网关诊断通信与网关角色
  • WordPress_AdsProPlugin Sql注入漏洞复现(CVE-2024-13322)
  • Navicat访问mongo时密码转义字符问题
  • 大模型主干
  • 驱动开发系列57 - Linux Graphics QXL显卡驱动代码分析(四)显示区域更新
  • 量子教育演示系统:交互式Bloch球面与Bell态可视化技术解析
  • 【JEECG】BasicTable内嵌Table表格错位
  • 强化学习+多模态 从理论到实战
  • 黑马点评day04(分布式锁-setnx)
  • Python 脚本打包成可执行的 .exe 文件
  • 【四川省专升本计算机基础】第一章 计算机基础知识(上)
  • Redis面试 实战贴 后面持续更新链接
  • 拨叉831003加工工艺规程及夹具设计