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

零基础学安全--shell脚本学习(1)脚本创建执行及变量使用

目录

学习连接

什么是shell

shell的分类

查看当前系统支持shell

学习前提

开始学习

第一种执行脚本方法

​编辑 第二种执行脚本方法

 第三种执行脚本方法

变量声明和定义

​编辑 查看变量

删除变量


学习连接

声明!
学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec]

shell编程

什么是shell

Shell又称命令解释器,它能识别用户输入的各种命令,并传递给操作系统。它的作用类似于Windows操作系统中的命令行,但是,Shell的功能远比命令行强大的多。在UNIX或者localhost中,Shell既是用户交互的界面,也是控制系

shell的分类

Bourne Shell:标识为sh,该Shell由Steve Bourne在贝尔实验室时编写。在许多Unix系统中,该Shell是root用户的默认的Shell。

Bourne-Again Shell:标识为bash,该Shell由Brian Fox在1987年编写,是绝大多数localhost发行版的默认的Shell。

Korn Shell:标识为ksh,该Shell由贝尔实验室的David Korn在二十世纪八十年代早期编写。它完全向上兼容 Bourne Shell 并包含了C Shell 的很多特性。

C Shell:标识为csh,该Shell由Bill Joy在BSD系统上开发。由于其语法类似于C语言,因此称为C Shell。

查看当前系统支持shell

下面代码执行都在kali中执行

cat /etc/shells

学习前提

学习shell需要学习vim编辑器,这个东西就是类似于windows记事本的东西,依照vim编辑器的规则去编写文件内容(vim编辑器这个大家可以在网络上搜索,一个小时就可以简单掌握)

熟练掌握Linux命令

开始学习

第一种执行脚本方法

创建文件

这里vim打开一个文件后,并且在里面写入了内容后就会直接将这个文件创建出来

第一行写声明,声明当前的shell脚本使用哪个命令解释器去解释:#!/bin/bash(这个#不是注释)

 

第二行开始写入你要执行的命令,这里写的是hello world

保存并退出加权,在图片里面可以看到文件拥有者已经有执行文件的权限了

./1执行文件,这里执行所使用的路径是相对路径,当然也可以使用绝对路径

 第二种执行脚本方法

创建2文件

文件中直接吸入 echo hello world

直接bash执行,注意我此时并没有加权

 我们执行后这里提示权限不够

我们使用脚本解释器直接执行,全部都可以执行,这里是因为脚本解释器自己就有权限

 第三种执行脚本方法

利用source命令,source命令是一个shell内部命令,其功能是读取指定的shell程序文件,并且依次执行其中的所有的语句,并没有创建新的子shell进程,所以脚本里面所有创建的变量都会保存到当前的shell里面,这个命令也不需要执行权限

变量声明和定义

定义:变量名=变量内容

使用:$变量名

(一般来说这里加不加引号效果是相同的,但是如果你在引用变量时加''就会直接把这个$变量名当作字符串输出,相当于一个转义字符)

双引号和花括号括起来可以进行字符串的拼接

 查看变量

set

set | grep 变量名

查看指定变量


删除变量

unset old 

这里删除了再看就没有了

http://www.lryc.cn/news/492369.html

相关文章:

  • C#对INI配置文件进行读写操作方法
  • 华为鸿蒙内核成为HarmonyOS NEXT流畅安全新基座
  • 请求响应(学习笔记)
  • JavaScript核心语法(5)
  • 2024年第15届蓝桥杯C/C++组蓝桥杯JAVA实现
  • MongoDB 和 Redis 是两种不同类型的数据库比较
  • CLIP-Adapter: Better Vision-Language Models with Feature Adapters 论文解读
  • Spring Boot 开发环境搭建详解
  • 网络安全中的数据科学如何重新定义安全实践?
  • 安装数据库客户端工具
  • GoogleTest做单元测试
  • 深入解析 EasyExcel 组件原理与应用
  • JSON数据转化为Excel及数据处理分析
  • (计算机网络)期末
  • 【AI技术赋能有限元分析应用实践】将FEniCS 软件安装在Ubuntu22.04
  • 快速识别模型:simple_ocr,部署教程
  • 【C/C++】数据库链接入门教程:从零开始的详细指南!MySQL集成与操作
  • C#中面试的常见问题005
  • 使用Redis生成全局唯一id
  • pnpm:包管理的新星,平替 npm 和 yarn
  • Android调起系统分享图片到其他应用
  • 详解Qt QBuffer
  • Python基础学习-11函数参数
  • GTK#框架让C# Winform程序跨平台运行
  • 在Kubernetes使用CronJob实现定时删除指定天数外的文件(我这里使用删除备份mysql数据库文件为例)
  • 使用 Elastic 收集 Windows 遥测数据:ETW Filebeat 输入简介
  • 力扣-位运算-4【算法学习day.44】
  • Stable Diffusion 3详解
  • c#异步编程(async/await)
  • TCP/IP学习笔记