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

LinuxBasicsForHackers笔记 -- BASH 脚本

你的第一个脚本:“你好,黑客崛起!”

首先,您需要告诉操作系统您要为脚本使用哪个解释器。 为此,请输入 shebang,它是井号和感叹号的组合,如下所示:#!

然后,在 shebang (#!) 后面加上 /bin/bash 来指示您希望操作系统使用 bash shell 解释器。正如您将在后面的章节中看到的,您还可以使用 shebang 来使用其他解释器,例如 Perl 或 Python。 在这里,使用 bash 解释器,因此输入以下内容:#! /bin/bash

接下来,输入 echo 命令,该命令告诉系统简单地重复(或回显)该命令后面的任何内容到您的监视器。请注意,我们要回显的文本或消息必须用双引号引起来。

#! /bin/bash
echo "Hello, Hackers-Arise"

现在,将此文件另存为 HelloHackersArise,不带扩展名,然后退出文本编辑器。

设置执行权限

chmod 755 HelloHackersArise – 设置刚刚创建的脚本的权限,给予它可执行权限。

运行 HelloHackersArise

./HelloHackersArise – 运行刚刚创建的脚本文件。

通过变量和用户输入添加功能

变量是可以在内存中保存某些内容的存储区域。保存的内容可以是一些字母或单词(字符串)或数字。 它之所以被称为变量,是因为其中保存的值是可变的;

在我们的下一个脚本中,我们将添加功能来提示用户输入他们的姓名,将他们输入的任何内容放入变量中,然后提示用户输入他们在本书中的章节,并将键盘输入放入变量中。 之后,我们将向用户回显一条欢迎消息,其中包括他们的姓名和章节。

#! /bin/bash
# This is your second bash script. In this one, you prompt 
# the user for input, place the input in a variable, and 
# display the variable contents in a string.
echo "What is your name?"
read name
echo "What chapter are you on in Linux Basics for Hackers?"
read chapter
echo "Welcome $name to Chapter $chapter of Linux Basics for Hackers!"

我们提示用户输入他们的名字,并要求解释器读取输入并将其放入我们称为name的变量中。然后我们提示用户输入他们当前正在阅读的章节,然后我们再次将键盘输入读取到一个变量中,这次称为chapter。要使用变量中包含的值,必须在变量名称前添加 $符号。

将此文件另存为 WelcomeScript.sh。 .sh 扩展名是脚本文件的约定。如果您不使用扩展名也没有什么区别。这并不是严格要求的。不过,该扩展名对于其他人来说可能是一个有用的指示,表明该文件是一个 shell 脚本。

您的第一个黑客脚本:扫描开放端口

最简单且最可靠的 nmap 扫描是 TCP 连接扫描,由 nmap 中的 -sT 开关指定。 因此,如果您想使用 TCP 扫描来扫描 IP 地址 192.168.181.1,您需要输入以下内容:namp -sT 192.168.181.1

更进一步,如果您想对地址 192.168.181.1 执行 TCP 扫描,查看端口 3306(MySQL 的默认端口)是否打开,您可以输入以下内容:nmap -sT 192.168.181.1 -p 3306

这里,-p 指定要扫描的端口。

我们的任务

一个简单的扫描仪

在我们编写脚本来扫描互联网上的公共 IP 之前,让我们先完成一个更小的任务。 我们先不扫描全球,而是先编写一个脚本来扫描局域网上的 3306 端口,看看我们的脚本是否真的有效。 如果是这样,我们可以轻松地编辑它来完成更大的任务。

在文本编辑器中,输入下列脚本:

#! /bin/bash
# This script is designed to find hosts with MySQL installed
nmap -sT 192.168.181.0/24 -p 3306 >/dev/null -oG MySQLscan
cat MySQLscan | grep open > MySQLscan2
cat MySQLscan2

现在让我们使用 nmap 命令在 LAN 上请求 TCP 扫描,寻找端口 3306 。 (请注意,您的 IP 地址可能有所不同;在您的终端中,使用 Linux 上的 ifconfig 命令或 Windows 上的 ipconfig 命令来确定您的 IP 地址。)重定向符号 > 告诉标准 nmap 输出(通常会显示在屏幕上)改为转到 /dev/null,这只是一个发送输出的地方,以便它消失。我们是在本地计算机上执行此操作,因此这并不重要,但如果您要远程使用该脚本,则需要隐藏 nmap 输出。 然后,我们将扫描的输出以 grep 格式发送到名为 MySQLscan 的文件,这意味着 grep 可以处理的格式。

改进 MySQL 扫描器

现在我们要修改此脚本,使其不仅仅适用于您自己的本地网络。 如果该脚本可以提示用户输入要扫描的 IP 地址范围和要查找的端口,然后使用该输入,那么它会更容易使用。

向我们的黑客脚本添加提示和变量

#! /bin/bash
echo "Enter the starting IP address : "
read FirstIP
echo "Enter the last octet of the last IP address : "
read LastOctetIP
echo "Enter the port number you want to scan for : "
read port
nmap -sT $FirstIP-$LastOctetIP -p $port >/dev/null -oG MySQLscan
cat MySQLscan | grep open > MySQLscan2
cat MySQLscan2

A Sample Run

现在我们可以使用变量来运行简单的扫描器脚本,这些变量确定要扫描的 IP 地址范围和端口,而无需每次要运行扫描时都编辑脚本:./HelloHackersArise.sh

常见的内置 Bash 命令

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

相关文章:

LinuxBasicsForHackers笔记 -- BASH 脚本

你的第一个脚本:“你好,黑客崛起!” 首先,您需要告诉操作系统您要为脚本使用哪个解释器。 为此,请输入 shebang,它是井号和感叹号的组合,如下所示:#! 然后,在 shebang …...

定时任务特辑 | Quartz、xxl-job、elastic-job、Cron四个定时任务框架对比,和Spring Boot集成实战

专栏集锦,大佬们可以收藏以备不时之需: Spring Cloud 专栏:http://t.csdnimg.cn/WDmJ9 Python 专栏:http://t.csdnimg.cn/hMwPR Redis 专栏:http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏:http://t.csdni…...

【面试经典150 | 二叉树】对称二叉树

文章目录 写在前面Tag题目来源解题思路方法一:递归方法二:迭代 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的…...

使用Git进行版本控制

参考:《Python编程从入门到实践》 前言1、安装、配置 Git1.1 在Linux系统中安装Git1.2 在OS X系统中安装Git1.3 在Windows系统中安装Git1.4 配置Git 2、创建项目3、忽略文件4、初始化仓库5、检查状态6、将文件加入到仓库中7、执行提交8、查看提交历史 前言 版本控制…...

专业课145+总分440+东南大学920考研专业基础综合信号与系统数字电路经验分享

个人情况简介 今年考研440,专业课145,数一140,期间一年努力辛苦付出,就不多表了,考研之路虽然艰难,付出很多,当收获的时候,都是值得,考研还是非常公平,希望大…...

Leetcode每日一题

https://leetcode.cn/problems/binary-tree-preorder-traversal/ 这道题目需要我们自行进行创建一个数组,题目也给出我们需要自己malloc一个数组来存放,这样能达到我们遍历的效果,我们来看看他的接口函数给的是什么。 可以看到的是这个接口函…...

USB连接器

USB连接器 电子元器件百科 文章目录 USB连接器前言一、USB连接器是什么二、USB连接器的类别三、USB连接器的应用实例四、USB连接器的作用原理总结前言 USB连接器的使用广泛,几乎所有现代电子设备都具备USB接口,使得设备之间的数据传输和充电变得简单和便捷。 一、USB连接器是…...

软件工程之需求分析

一、对需求的基本认识 1.需求分析简介 (1)什么是需求 用户需求:由用户提出。原始的用户需求通常是不能直接做成产品的,需要对其进行分析提炼,最终形成产品需求。 产品需求:产品经理针对用户需求提出的解决方案。 (2)为什么要…...

URL提示不安全

当用户访问一个没有经过SSL证书加密的网站(即使用HTTP而不是HTTPS协议),或者SSL证书存在问题时,浏览器URL会显示不安全提示。这些提示旨在保护用户免受潜在的恶意活动,并提醒他们谨慎对待这些不安全的网站。那么该如何…...

JavaBean是什么

详情请参考JavaBean规范:https://www.oracle.com/java/technologies/javase/javabeans-spec.html JavaBean是可重用的软件组件,是一个java类,方法名称符合一定的规范,这样使用方使用起来方便,例如框架和工具可以根据规…...

202309-2

http://118.190.20.162/view.page?gpidT174 题目分析: 这道题读完题后感觉像是考察前缀和,这里回顾下什么是前缀和:https://blog.csdn.net/weixin_45629285/article/details/111146240 我们利用前缀和算法,就可以在O(nm)的时…...

数字图像处理(实践篇)二十 人脸特征提取

目录 1 安装face_recognition 2 涉及的函数 3 实践 使用face_recognition进行人脸特征提取. 1 安装face_recognition pip install face_recognition 或者 pip --default-timeout100 install face_recognition -i http://pypi.douban.com/simple --trusted-host pypi.dou…...

Python自动化:selenium常用方法总结

使用的Python版本为3.8,selenium版本为4.15.2 Python自动化:selenium常用方法总结 1. 三种等待方式2. 浏览器操作3. 8种查找元素的方法4. 高级事件 1. 三种等待方式 强制等待 使用模块time下的sleep()实现等待效果隐式等待 使用driver.implicitly_wait()方法&#…...

『开源资讯』JimuReport积木报表 v1.6.6 版本发布—免费报表工具

项目介绍 一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! Web 版报表设计器,类似于excel操作风格,通过拖拽完成报…...

每天五分钟计算机视觉:使用1*1卷积层来改变输入层的通道数量

本文重点 在卷积神经网络中有很多重要的卷积核,比如1*1的卷积核,3*3的卷积核,本文将讲解1*1的卷积核的使用,它在卷积神经网络中具有重要的地位。由于1*1的卷积核使用了最小的窗口,那么1*1的卷积核就失去了卷积层可以识…...

Java (JDK 21) 调用 OpenCV (4.8.0)

Java 调用 OpenCV 一.OpenCV 下载和安装二.创建 Java Maven 项目三.其他测试 一.OpenCV 下载和安装 Open CV 官网 可以下载编译好的包,也可以下载源码自行编译 双击安装 opencv-4.8.0-windows.exe 默认为当前目录 安装即解压缩 根据系统位数选择 将 x64 目录下 op…...

git 常用的使用方法

1.查看分支 $ git branch #查看本地分支 $ git branch -r #查看远程分支 $ git branch -a #查看所有分支 $ git branch -vv #查看本地分支及追踪的分支 2.创建分支 方法1 $ git branch 分支名 #创建本地分支 #将本地分支push,就创建了远程分支方法2 #创建本地分…...

使用Caliper对Fabric地basic链码进行性能测试

如果你需要对fabric网络中地合约进行吞吐量、延迟等性能进行评估,可以使用Caliper来实现,会返回给你一份网页版的直观测试报告。下面是对test-network网络地basic链码地测试过程。 目录 1. 建立caliper-workspace文件夹2. 安装npm等3. calipe安装4. 创建…...

一台是阿里云,一台是腾讯云,一台是华为云,一台是百度云等多种公有云混合安装K8S集群

1. 修改主机名称和添加hosts #永久修改主机名 hostnamectl set-hostname master && bash #在master01上操作,阿里云服务器 hostnamectl set-hostname worker1 && bash #在node01上操作,阿里腾讯云服务器 hostnamectl set-ho…...

期末速成数据库极简版【查询】(3)

目录 多表查询 【8】多表连接——内连接 🙂等值连接 🙂自然连接 🙂非等值连接 【9】多表连接——外连接 【10】交叉连接不考 【11】联合查询 【12】扩展多表连接 【13】嵌套查询 🙂 多表查询 【8】多表连接——内连…...

一个月 SQL 学习总结:LeetCode 高频 SQL 50 题刷题心得

最近花了一个月时间系统学习 SQL,主要是跟着 LeetCode 的「高频 SQL 50 题(基础版)」进行练习。 回过头来看,这一个月的学习虽然不算特别长,但让我对 SQL 的理解比以前清晰了很多,也积累了一些适合初学者的…...

Harness 中的令牌级流控与字符级计费

Harness 中的令牌级流控与字符级计费:从原理到落地的全指南 关键词:Harness CI/CD, 令牌级流控, 字符级计费, 微服务流量治理, 用量计量, 云原生成本优化, 网关限流 摘要:作为全球领先的智能软件交付平台,Harness 每天要处理来自数千家企业客户的上亿次 API 调用、数百万次…...

MSTP+VRRP+链路聚合简单配置

实验需求:1.存在两个用户业务网,分布为VLAN 10和VLAN 20,需要SW1作为VLAN 10根桥和VRRP-master设备2.SW2作为VLAN 20根桥和VRRP-master设备3.网段自行规划,全网可达配置思路:两条实例:需要在 MSTP 域中配置…...

2026这6款宝藏降AIGC软件大起底,一键把AIGC率降至安全线!

步入 2026 年,学术圈的风向早已不是过去那个只看查重率的时代了。如今,AI 检测系统像长了眼睛一样,精准捕捉每一段文字中的 AI 痕迹。高校的审核标准也愈发严苛,论文不仅要“看起来像人写的”,更要“读起来像人写的”。…...

最后37个可用的Lovable CRM私有化部署License名额:含2024最新GDPR+信创双合规配置包

更多请点击: https://kaifayun.com 第一章:Lovable CRM系统搭建 Lovable CRM 是一个轻量、可扩展、开发者友好的客户关系管理系统,专为中小团队设计,强调易用性与可定制性的平衡。它基于 Go 语言后端与 Vue 3 前端构建&#xff0…...

CANN asc-devkit C API向量归约函数

asc_pair_reduce_sum 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gi…...

oracle数据库的了解和使用

文章目录 1. 概述1)数据库2)实例3)表空间4)用户5) schema6)数据库的持久化7)注释8)mysql和oracle数据库逻辑结构类比 2. 数据库操作1)创建表空间2)创建操作表空间的用户3…...

深入理解 Java 反射机制(Reflection)

一句话先给答案反射 在程序运行时,动态获取类的信息并动态操作对象的能力。正常编程:类 → 对象 → 调用方法 反射:未知类 → 运行时拿到类结构 → 创建对象 / 调用方法 / 访问属性一、为什么需要反射?(先解决动机&am…...

SAP-ABAP:变量、常量、结构与内表声明(10篇博客合集) 第三篇:STRUCT结构声明全指南:嵌套结构与深层结构的差异与选型

变量、常量、结构与内表声明(10篇博客合集) 第三篇:STRUCT结构声明全指南:嵌套结构与深层结构的差异与选型在ABAP开发中,结构体(Structure)是将多个字段组合成一个逻辑单元的核心手段。从简单的…...

3大核心技术:解密QMC音频文件的最优方案

3大核心技术:解密QMC音频文件的最优方案 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 在数字音乐版权保护日益严格的今天,QQ音乐采用的QMC加密格式…...