【网络安全】—Shell编程入门(1)

2023-12-19

在这里插入图片描述

Shell编程入门

Shell 是 Unix/Linux 操作系统下的一种命令行解释器,它接收用户输入的命令然后调用相应的程序。我们可以通过 Shell 脚本来自动执行一系列的命令。接下来,我们将详细介绍 Shell 编程的基本概念和技能。

基础

Shell编程是一种脚本编程语言,它运行在Unix和Linux系统上的命令行终端中。Shell编程可以用来操作文件、处理文本、管理进程、配置系统等,是Unix和Linux系统中非常重要和常用的工具之一。

Shell编程语言主要有两类:Bourne shell和C shell。其中,Bourne shell(/bin/sh)是Unix系统默认的命令行解释器,它支持命令替换、变量引用、逻辑运算、循环和分支等基本语法。而C shell(/bin/csh)则是另一种常见的Shell编程语言,它与Bourne shell类似,但更加易用和人性化。

Shell编程语言的基本语法非常简单,主要由命令和参数组成。例如,ls命令用于列出当前目录下的文件和子目录:

ls

其中, ls 是命令,没有参数时表示列出当前目录下的所有文件和子目录。

Shell编程还支持变量、条件判断、循环和函数等高级语法。例如,使用变量可以将命令的输出保存到变量中,便于后续操作:

files=$(ls)
echo $files

其中, $(ls) 将会执行 ls 命令并将结果保存到 files 变量中, echo 命令用于输出变量的值。

条件判断可以使用if语句实现,例如:

if [ $var -gt 10 ]
then
  echo "var is greater than 10"
else
  echo "var is less than or equal to 10"
fi

其中, $var 是一个变量, -gt 表示大于, -le 表示小于或等于。

循环可以使用for和while语句实现,例如:

for i in $(seq 1 10)
do
  echo $i
done

其中, $(seq 1 10) 将会生成一个从1到10的数字序列,并使用for循环依次输出每个数字。

Shell编程还支持函数定义和调用,例如:

function hello() {
  echo "Hello, World!"
}

hello

其中, hello() 定义了一个名为 hello 的函数, echo 用于输出一条消息, hello 函数的调用则在最后一行实现。

总之,Shell编程是一种强大而灵活的编程语言,它可以快速地实现各种系统管理和自动化任务,减少人工操作和提高工作效率。掌握Shell编程对于Unix和Linux系统的管理和运维人员来说是必不可少的技能。

变量概念介绍

在 Shell 中,变量是用来存储信息的。我们可以通过变量名来获取存储的信息。例如,我们可以创建一个名为 greeting 的变量,并赋值为 “Hello, World”:

greeting="Hello, World"
echo $greeting

在这个例子中,我们使用了 echo 命令来输出变量 greeting 的值。注意,当我们想要获取变量的值时,我们需要在变量名前面加上 $ 符号。

特殊变量进阶

Shell 提供了一些特殊的变量,这些变量在 Shell 脚本中有特殊的含义。

  • $0 :当前脚本的文件名。
  • $n :传递给脚本或函数的参数。n 是一个数字,表示第 n 个参数。例如, $1 表示第一个参数。
  • $# :传递给脚本或函数的参数个数。
  • $* :所有参数列表。 "$*" 是一个整体,所有参数作为一个字符串。
  • $@ :所有参数列表。 "$@" 是分开的,每个参数都是独立的字符串。
  • $? :上个命令的退出状态。0 表示没有错误,其他任何值表明有错误。

数值计算实践

Shell 提供了几种方式来进行数值计算。其中最常见的是使用 expr let 命令。例如:

# 使用 expr
sum=`expr 2 + 2`
echo "The sum is $sum"

# 使用 let
let sum=2+2
echo "The sum is $sum"

注意, expr 命令的操作符两边必须有空格。

条件测试比较

我们可以使用 test 命令来进行条件测试。例如,我们可以比较两个数值是否相等:

num1=10
num2=20
if test $num1 -eq $num2
then
    echo "The numbers are equal"
else
    echo "The numbers are not equal"
fi

在这个例子中, -eq 是一个比较操作符,表示等于。

条件判断语句

我们可以使用 if else elif 等关键词来进行条件判断。例如:

num=10
if [ $num -gt 5 ]
then
    echo "The number is greater than 5"
elif [ $num -eq 5 ]
then
    echo "The number is equal to 5"
else
    echo "The number is less than 5"
fi

流程控制语句

除了 if 语句,我们还可以使用 case 语句来进行多条件判断。例如:

echo "Enter a number:"
read num
case $num in
    1) echo "You entered one.";;
    2) echo "You entered two.";;
    *) echo "You did not enter one or two.";;
esac

循环语句应用

Shell 提供了 for while until 等循环语句。例如:

# for loop
for i in 1 2 3 4 5
do
   echo "Welcome $i times"
done

# while loop
count=1
while [ $count -le 5 ]
do
   echo "Welcome $count times"
   let count=count+1
done

# until loop
count=1
until [ $count -gt 5 ]
do
   echo "Welcome $count times"
   let count=count+1
done

以上就是 Shell 编程的基本概念和技能。通过学习这些,你应该能够编写一些简单的 Shell 脚本来自动化你的工作。

题外话

初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:

2023届全国高校毕业生预计达到1158万人,就业形势严峻;

国家网络安全宣传周公布的数据显示,到2027年我国网络安全人员缺口将达327万。

一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。

6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业报告》《2023年中国高职生就业报告》)正式发布。

2022届大学毕业生月收入较高的前10个专业

本科计算机类、高职自动化类专业月收入较高。2022届本科计算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科计算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。

具体看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技术、自动化等与人工智能相关的本科专业表现不俗,较五年前起薪涨幅均达到了19%。数据科学与大数据技术虽是近年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。

在这里插入图片描述

“没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。

网络安全行业特点

1、就业薪资非常高,涨薪快 2021年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!

在这里插入图片描述

2、人才缺口大,就业机会多

2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。

在这里插入图片描述

行业发展空间大,岗位非常多

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…

职业增值潜力大

网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。

随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。

从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。

黑客&网络安全该如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

需要的小伙伴也可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

在这里插入图片描述

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

需要的小伙伴也可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

需要的小伙伴也可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取


如果你对网络安全入门感兴趣,

①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

需要的小伙伴也可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【网络安全】—Shell编程入门(1) 的相关文章

  • 获取 Bash 中最后运行的程序的名称

    我有一个 bash 脚本 我使用 trap 命令捕获错误 并且我希望能够打印最后一个命令的名称 失败的命令 bin bash function error echo program name trap error ERR Some comm
  • Grep 搜索带有换行符的字符串

    如何使用 grep 输出下面给出的输入文件中出现的字符串 export to excel 具体来说 如何处理搜索字符串之间发生的换行符 grep 中是否有一个开关可以执行此操作或其他命令 输入文件 文件a txt 等等 导出到优秀 巴拉巴拉
  • sed 和 rev shell 命令转换为 Python 脚本 [重复]

    这个问题在这里已经有答案了 有一个shell命令 我正在尝试将逻辑转换为python 但我不知道该怎么办 我需要一些帮助 shell命令是这样的 cd tests src main test ls find name vrlp while
  • 如何在 Bash 中删除字符串的第一部分?

    该代码将给出第一部分 但是如何删除它并获取没有第一部分的整个字符串 echo first second third etc cut d f1 你应该看看info cut 这将解释什么f1 means 实际上我们只需要第二个字段之后的字段 f
  • 通过 Node.js 运行 bash 脚本 - 非法选项 -o pipelinefail

    我正在尝试使用 Node js 执行 bash 脚本child process exec 然而它在文件的第二行爆炸 usr bin env bash set eo pipefail TRACE set x echo we are here
  • 通过 ssh 运行 Bash 脚本

    我正在尝试编写一个 Bash 脚本 它将通过 SSH 连接到计算机并创建一个目录 长期目标有点复杂 但现在我从简单的开始 然而 虽然很简单 但我似乎不太明白 这是我的代码 bin bash ssh T email protected cdn
  • BASH 中带有千位分隔符的数字格式

    我有一个号码12343423455 23353 我想用千位分隔符格式化数字 所以输出将是12 343 423 455 23353 printf 3f n 12345678 901 12 345 678 901
  • 从文件中随机采样行

    我有一个大约 40gb 和 1800000 行的 csv 文件 我想随机采样 10 000 行并将它们打印到一个新文件中 现在 我的方法是将 sed 用作 sed n vars lt input txt gt output txt Wher
  • shell脚本中是否有互斥/信号量机制?

    我正在 shell 脚本中寻找互斥 信号量 并发机制 考虑以下情况 除非 a 用户不关闭共享文件 否则 b 用户应该无法打开 更新它 我只是想知道如何在 shell 脚本中实现互斥量 信号量 临界区等 在 shell 脚本中实现锁定机制 文
  • 将儒略时间戳转换为 UNIX 中的常规时间

    我需要使用 Bash 将 UNIX 中的 Julian 时间戳转换为常规时间戳 在 Tandem OS 上 转换非常简单 例子 212186319010244541 OLSAPP SYSTST 1 gt interprettimestamp
  • 带变量的 AWK 负正则表达式

    我在 bash 脚本中使用 awk 来比较两个文件以获取不匹配的行 我需要将第二个文件的所有三个字段 作为一个模式 与第一个文件的所有行进行比较 第一个文件 chr1 9997 10330 HumanGM18558 peak 1 150 1
  • 如何使用 jq 和 Bash 将 JSON 展平为 Key=Selector 的 Bash 关联数组?

    作为后续展平任意 JSON https stackoverflow com questions 42299905 using jq flatten arbitrary json to delimiter separated flat dic
  • 如何获取 bash 中从 Ping 接收到的数据包的百分比?

    当 ping 主机时 我希望输出仅显示收到的数据包 已发送 5 个 的百分比 我想我需要使用grep不知怎的 但我不知道如何 我是 bash 编程的新手 这是我所在的地方 ping c 5 q host grep grep 中应该包含什么
  • bash - 检查特定列中的单词,检查该行其他列中的值,将该行剪切并粘贴到新文本文件中

    我的文本文件包含约 20k 行 如下所示 file A ATOM 624 SC1 SER 288 54 730 23 870 56 950 1 00 0 00 ATOM 3199 NC3 POP 487 50 780 27 750 27 5
  • 如何迭代 Bash 中变量定义的数字范围?

    当范围由变量给出时 如何在 Bash 中迭代数字范围 我知道我可以做到这一点 在 Bash 中称为 序列表达式 文档 http www gnu org software bash manual bashref html Brace Expa
  • 有没有办法让 Linux CLI IO 重定向持久化?

    我有多个管道命令 如下所示 find options grep options xargs grep options 它们中的每一个都可能产生我不感兴趣的错误 权限错误 文件名空格错误等 因此 我想将所有错误重定向到 dev null 我知
  • 嵌入定义绑定变量的 Oracle PL/SQL 代码的 Shell 脚本

    如果我运行下面的脚本 我会收到错误SP2 0552 未声明绑定变量 OUTRES 那么 如何定义绑定变量OUTRES以及在哪里定义呢 usr bin bash sqlplus s scott tiger lt lt EOF declare
  • bash脚本ip主机

    在第一个中 如果我们希望显示主机名 这是文件中的第五个字段 然后 如果我们提供给主机命令的 IP 不存在 则该命令将返回消息 3 NXDOMAIN 脚本应该识别命令是否 未找到 在这种情况下 它将 必须简单地打印 bin bash ip 1
  • 从配置文件中读取分配

    我有配置文件 其中每行都包含用分号分隔的分配 像这样的东西 模仿正常的 shell 分配 VAR1 1 VAR2 2 VAR1 3 VAR2 4 每行包含相同的变量 并且旨在单独处理 这些配置文件都在系统管理员的控制之下 所以使用eval现
  • 我应该使用 AWK 或 SED 删除 CSV 文件中引号之间的逗号吗? (重击)

    我有一堆日常打印机登录CSV格式 我正在编写一个脚本来跟踪使用了多少纸张并将信息保存到数据库中 但我遇到了一个小问题 本质上 日志中的一些文档名称中包含逗号 全部用双引号引起来 并且由于它采用逗号分隔格式 所以我的代码搞乱了并将所有内容推到

随机推荐

  • word下划线空格不延长&对齐

    空格下划线不延长 文件 选项 常规与保存 勾选 为尾部空格添加下划线 确定 下划线对齐 首行 把第一行的下划线调到满意位置 按tab键 下面的行 删到比首行短一丢丢 按tab键
  • 【2024全网最火最全性能教程】一文搞懂性能测试!

    性能测试概念 我们经常看到的性能测试概念 有人或称之为性能策略 或称之为性能方法 或称之为性能场景分类 大概可以看到性能测试 负载测试 压力测试 强度测试等一堆专有名词的解释 针对这些概念 我不知道你看到的时候会不会像我的感觉一样 乱 一个
  • 【Proteus仿真】【Arduino单片机】视力保护仪

    文章目录 一 功能简介 二 软件设计 三 实验现象 联系作者 一 功能简介 本项目使用Proteus8仿真Arduino单片机控制器 使LCD1602液晶 DS18B20温度传感器 按键 蜂鸣器 继电器开关 HC05蓝牙模块等 主要功能 系
  • @rollup/plugin-html 详解

    rollup plugin html 是 Rollup 的一个插件 用于生成 HTML 文件 并将打包后的 JS 文件引入到 HTML 文件中 该插件的配置选项如下 fileName 指定生成的 HTML 文件的文件名 默认为 index
  • 扬帆证券:如何投资股票市场?

    怎么出资股票商场 1 选择公司基本面比较强 盈余安稳的公司个股 上市公司较好的基本面会使商场资金逐渐注重 出资者增多 流入资金增多 带动个股上涨 公司的经营成绩较为安稳 商场震动也不会对它们形成过大冲击 在长期的商场趋势下 出资者可以获得较
  • 灰盒测试简要指南

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 9k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • uniapp 导入ucharts图表插件 H5项目, 使用echarts eopts配置

    先下载ucharts H5示例源码 uCharts 高性能跨平台图表库 支持H5 APP 小程序 微信小程序 支付宝小程序 钉钉小程序 百度小程序 头条小程序 QQ小程序 快手小程序 360小程序 Vue Taro等更多支持canvas的框
  • Linux操作系统基础

    Linux是一个强大的操作系统 广泛用于服务器 桌面电脑 移动设备和嵌入式系统 作为信息安全高级工程师 掌握Linux的基本操作至关重要 下面将详细介绍Linux的基本概念和命令 Linux操作系统目录结构 Linux有一个标准的文件系统层
  • UI 易用性测试 以及自动化实现!

    GUI 是指图形用户界面 UI 是指用户界面 对于纯软件系统 这两者没有本质的区别 GUI易用性测试与 UI 易用性测试内容一致 但是如果测试的对象是一个产品 这两者则存在区别 对于产品 UI 则不仅仅包括 GUI 还包括产品硬件部分的测试
  • 2.[BUU]rip

    1 检查文件 checksec 一下 查看之后发现是64位 直接放入IDA64进行反编译 2 IDA反编译 进行分析 发现是gets 函数可以造成栈溢出 从而可以覆盖栈上的内容 想法 通过gets函数 栈溢出 来篡改栈上的内容指令 从而达到
  • 网络安全日报 2023年12月19日

    1 谷歌Chrome测试新的跟踪保护可阻止第三方Cookie https blog google products chrome privacy sandbox tracking protection Google 周四宣布将开始测试一项名
  • 能够图片转word工具推荐哪一个?这些一定要试试看

    临近年末 公司上下都在为了年末盘点而忙到飞起 大家都被分配到满满的任务 我也不例外 老板交代让我把一些图片文件整理成电子文档 方便后续内容的编辑和修改 本来工作就多 加上老板的任务要得急 我也没想那么多 直接就把老板发过来的图片资料全部一股
  • 测试编排效率提升:掌握前置接口响应数据的引用方法

    宁波银行深圳分行综合柜员面经 三方寄过去了 告诉我停止24届招聘 全部毁约 牛的 he芯 毁约应届生 34316 地产投资岗上岸啦 经验分享 江西农发行市级支行信贷岗面试 最终还是搏了一把 2023届CV视觉算法岗求职记录贴 规划指南 实习
  • 计算机SSM毕设选题 在线音乐网站系统(含源码+论文)

    文章目录 1 项目简介 2 实现效果 2 1 界面展示 3 设计方案 3 1 概述 3 2 系统流程 3 2 1 系统开发流程
  • Redis HyperLogLog:数据统计的轻量级解决方案

    引言 在现代数据驱动的应用中 Redis 以其出色的性能和灵活性成为了不可或缺的工具 特别是在统计大量数据时 传统的计数方法往往既耗时又占用大量存储空间 这次 阿七将介绍一种名为 HyperLogLog 的算法 它在 Redis 中的实现让
  • “最美中国女生”——AI绘画还没上车的有难了!!!

    废话少说 先上图 前段时间 ChatGPT生成了一张自诩为 最美的中国女生 虽然审美是主观的 但不可否认 图片的客观美 不过 你不会还只是看到图片里的美女 肤浅地欣赏高颜值吧 别人都已经透过现象看本质 赶上新浪潮 get新技能了 好 进入正
  • 底层的“原始码农”注定会被ChatGPT取代!

    抓不住AI的风口 你就等着被淘汰吧 绝对不是危言耸听 时代车轮滚滚向向前 没有跟上节奏 等你回过神来 才发现时代已经换新篇 掂量掂量自己的斤两 不禁倒吸一口凉气 想想 取代 二字是何其刺耳又真实 遇到问题解决问题 那么 如何拥有不可替代性成
  • 计算机网络基础 走入计算机行业的重中之重

    计算机网络是指将地理位置不同的 功能独立的多台计算机通过通信线路连接起来 以功能完善的网络软件支撑 实现资源共享和信息传递的系统 对于信息安全高级工程师来说 理解计算机网络的基本原理是至关重要的 下面我们将逐一解析计算机网络的核心概念 网络
  • CCF编程能力等级认证GESP—C++5级—样题1

    CCF编程能力等级认证GESP C 1级 样题1 单选题 每题 2 分 共 30 分 判断题 每题 2 分 共 20 分 编程题 每题 25 分 共 50 分 小杨的锻炼 小杨的队列 参考答案 单选题
  • 【网络安全】—Shell编程入门(1)

    Shell编程入门 Shell 是 Unix Linux 操作系统下的一种命令行解释器 它接收用户输入的命令然后调用相应的程序 我们可以通过 Shell 脚本来自动执行一系列的命令 接下来 我们将详细介绍 Shell 编程的基本概念和技能