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 命令

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/227839.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

为什么越来越多的网站使用https,有什么好处?什么是https加密协议?

首先回答“什么是https加密协议?” HTTPS(HyperText Transfer Protocol Secure)是一种通过加密传输数据的安全版本的HTTP协议。它使用了SSL(Secure Sockets Layer)或TLS(Transport Layer Security&#xf…

IntelliJ IDEA 2023.3 最新变化

关键亮点 AI Assistant 预览阶段结束 全面推出 Ultimate JetBrains AI Assistant 现已全面推出,搭载大量新功能和改进,助力提高您在 JetBrains IDE 中的工作效率。 最新更新包括编辑器中增强的直接代码生成、无需复制代码即可回答项目相关查询的上下文…

网络监控:网络故障告警通知

网络警报是向网络管理员发出的指示,表明设备已达到其设置的阈值或面临任何性能异常,网络警报可以通过不同的渠道通知网络管理员,例如电子邮件、短信、松弛、网络警报等。 通过网络监控警报,可以快速了解网络问题,通过…

低代码与MES:智能制造的新篇章

一、引言 随着工业4.0和智能制造的兴起,企业对于生产过程的数字化、智能化需求日益迫切。制造执行系统(MES)作为连接计划层与控制层的关键信息系统,在提升生产效率、优化资源配置、保障产品质量等方面发挥着重要作用。然而&#…

前端开发常用的Vscode插件整理(持续更新)

本文记录用vscode进行前端开发时,常用到的有用的vscode插件,将不定时更新~ 1、Chinese (Simplified) 将编辑器变成简体中文 2、vscode-icon 让 vscode 资源树目录加上图标,官方出品的图标库 3、Import Cost 引入包大小计算,对于…

hadoop安装与配置-shell脚本一键安装配置(集群版)

文章目录 前言一、安装准备1. 搭建集群 二、使用shell脚本一键安装1. 复制脚本2. 增加执行权限3. 分发脚本4. 执行脚本5. 加载用户环境变量 三、启动与停止1. 启动/停止hadoop集群(1) 复制hadoop集群启动脚本(2) 增加执行权限(3) 启动hadoop集群(4) 停止hadoop集群(5) 重启hado…

直播预告|StarRocks 3.2 全面解读:易用性和性能的双重提升

StarRocks 3.2 版本即将发布,这是 StarRocks 的又一次重大升级,除了进一步完善存算分离架构、数据湖分析和物化视图等重要特性,我们还聚焦于运维操作细节,大大提升了 StarRocks 的易用性,从建表、表变更、数据导入、查…

数据清洗、特征工程和数据可视化、数据挖掘与建模的应用场景

1.5 数据清洗、特征工程和数据可视化、挖掘建模的应用场景 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解1.5节内容。本书已正式出版上市,当当、京东、淘宝等平台热销中,搜索书名即可。内容涵盖数据科学应…

给孩子选台灯需要注意什么?专业的学生台灯推荐

现在的孩子近视率非常高,不少还在上小学的都已经存在佩戴眼镜的现象了,这也让很多家长开始重视起了孩子的视力健康问题。其实孩子近视的主要原因用眼过度,细心的家长可能发现,现在的孩子作业都变多了,经常需要晚上挑灯…

Hive安装步骤

目录 1、安装前提:hadoop全分布 2、卸载MariaDB数据库 (1)设置防火墙服务开启不启动 (2)查看linux自带的MariaDB数据库 (3)卸载linux自带的MariaDB数据库 3、安装mysql数据库 &#xff0…

MySQL系列(十):主从架构

一:主从架构 常见的主从架构模式有四种: 一主多从架构:适用于读大于写的场景,采用多个从库来分担数据库系统的读压力。多主架构:适用于读写参半的场景,采用多个主库来承载数据库系统整体的读写压力。多主…

使用Notepad++编辑器,安装AnalysePlugin搜索插件

概述 是一款非常有特色的编辑器,Notepad是开源软件,Notepad中文版可以免费使用。 操作步骤: 1、在工具栏 ->“插件”选项。 2、勾选AnalysePlugin选项,点击右上角“安装”即可。 3、 确认安装插件 4、下载插件 5、插件已安装…

Leetcode—337.打家劫舍III【中等】

2023每日刷题(五十二) Leetcode—337.打家劫舍III 算法思想 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(null…

可视化工具Datart小妙招(1)——妙用计算字段

加gzh“大数据食铁兽”,了解更多Datart小妙招 作为目前国内开源版本最好用的可视化工具之一,Datart无疑是低成本高效率可供二开的可视化神兵利器。经过一段时间的使用及磨合,现在总结一些使用的小妙招分享给大家。本篇我们来讲一讲可视化工具…

基于Python guI的学生信息管理系统的设计与实现

基于Python guI的学生信息管理系统的设计与实现 摘要 讲述的是一个使用Python GUI的学习资料管理工具。通过使用Python的Tkinter库和mysql数据库,这个工具可以方便地记录、检索、更新学习资料。本文详细描述了系统的架构设计和实现过程,并对系统进行了功…

语聚AI知识库支持连接数据库,无需上传知识文档,数据分析更高效

数据库系统是企业信息技术基础架构的关键部分,它帮助企业管理和处理其数据,目前已有大量企业通过数据库保存数据,例如员工信息、客户数据、产品销售数据等等。但企业运营变得越来越复杂,数据库中的数据量也在持续增长,…

GPTs的创建与使用,自定义GPTs中的Actions示例用法 定义和执行特定任务的功能模块 通过API与外部系统或服务的交互

Name 等 Logo:自动生成 Name 介绍 Description 介绍 Instructions 要求或命令等 比如用中文回复,角色。 Knowledge 上传你的知识库,如果你有某一垂直行业的数据,基于数据来回答。比如我有某个芯片的指令集。 Capabilities 都要 Actions&…

分享 | 顶刊高质量论文插图配色(含RGB值及16进制HEX码)(第一期)

我在很早之前出过一期高质量论文绘图配色,但当时觉得搜集太麻烦于是就没继续做,后来用MATLAB爬了上万张顶刊绘图,于是又想起来做这么一个系列,拿了一个多小时写了个提取论文图片颜色并得出RGB值和16进制码并标注在原图的代码&…

Django的logging-日志模板的简单使用方法(配置并使用根日志记录器-不显示实例化logging对象)

扩展阅读: Python-Django的“日志功能-日志模块(logging模块)-日志输出”的功能详解 现在有下面的Python代码: # -*- coding: utf-8 -*-content "i love you" print(content)现在要把代码中print语句中的内容以日志文件的形式输出&#xff…

静电ESD整改:如何让企业避免损失?|深圳比创达电子EMC

一、静电ESD整改的背景 静电是指物体之间因摩擦或分离而产生的电荷,而静电放电ESD(Electrostatic Discharge)则是指静电在物体间突然放电的现象。静电放电造成的瞬态高电流和高电压可能会损坏电子设备,从而给企业带来损失。因此,进行静电ESD…