首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
物联网/工业互联网
›
物联网
›
我要学kali-linux之shell脚本编程1
返回列表
发新帖
我要学kali-linux之shell脚本编程1
[复制链接]
发表于 2025-12-25 23:19:01
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
声明! 学习视频来自B站up主 **泷羽sec** 有爱好的师傅可以关注一下,如涉及侵权立即删除文章,条记只是方便各位师傅的学习和探究,文章所提到的网站以及内容,只做学习交换,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则结果自尊!!!!有爱好的小同伴可以点击下面毗连进入b站主页[B站泷羽sec](https://space.bilibili.com/350329294)
shell
脚本
1
,创建、实行、变量使用
1,创建一个脚本 1.sh vim 1.sh
Linux中三种常见的Shell表明器
1. Sh (Bourne Shell)
简介
Sh,即Bourne Shell,最早由Stephen Bourne在20世纪70年代为UNIX体系开发。
它是很多其他Shell的底子,包罗Bash。
特点
底子性
:作为最早的Shell之一,它的语法和
功能
相对简单,但非常高效。
兼容性
:险些全部UNIX和Linux体系都包罗Sh,且很多体系脚本都是用Sh编写的。
编程本领
:在脚本编程方面体现良好,但在用户交互方面相对较弱。
使用场景
实用于编写体系启动和关闭脚本。
用于编写须要在多种UNIX体系上运行的脚本,由于Sh险些在全部UNIX体系上都可用。
2. Bash (Bourne Again Shell)
简介
Bash是Bourne Shell的扩展,旨在提供更多的
功能
和更好的用户体验。
它是大多数Linux发行版的默认Shell。
特点
功能
强盛
:提供下令补全、下令编辑和下令汗青表等功能。
扩展性
:包罗了很多C Shell和Korn Shell中的优点,有机动和强盛的编程接口。
用户友好
:具有友好的用户界面,恰当新手和专家用户。
使用场景
实用于一样平常的下令行操纵和脚本编写。
恰当须要复杂下令和脚本处置惩罚的场景。
3. Dash (Debian Almquist Shell)
简介
Dash是Bash的一个轻量级更换品,最初从NetBSD的ash发展而来。
它被计划为尽大概小和高效,同时保持POSIX尺度的兼容性。
特点
小巧高效
:比Bash小得多,恰当资源受限的情况。
POSIX兼容
:严格依照POSIX尺度,确保脚本的可移植性。
安全
性
:由于
代码
简便,毛病较少,相对更
安全
。
使用场景
实用于嵌入式体系和其他资源受限的情况。
用于编写须要高效实行的脚本。
Shell名称
简介
特点
使用场景
Sh
最早的Shell之一
底子性、兼容性、编程本领强
体系脚本、多种UNIX体系
Bash
Bourne Shell的扩展
功能强盛、扩展性好、用户友好
一样平常操纵、复杂下令处置惩罚
Dash
Bash的轻量级更换品
小巧高效、POSIX兼容、
安全
性高
嵌入式体系、资源受限情况
可以发现这三种表明器末了调用的都是dash表明器
三种方法实行创建的脚本
1,实行第一步创建的1.sh脚本
注意权限的赋予。可以看看一个新创建sh脚本的初始权限
拥有者只有可读可写的权限,没有实行权限。
chmod +x new.sh默认给拥有者/拥有组/其他人都赋予了实行权限
2,直接新建一个sh文件默认是没有实行权限的,但是使用编辑器下令sh 2.sh/bash 2.sh/dash 2.sh就可以不须要给实行权限直接实行
脚本实行器可以或许直接实行没有实行权限的shell脚本,这通常是由于以下缘故原由:
表明器的权限
:在Linux体系中,表明器(如Bash、Sh等)本身具有实行权限。当使用表明器直接实行脚本时,比方通过bash script.sh 或sh script.sh ,表明器会读取脚本内容并逐行实行。这种方式并不依靠于脚本本身的实行权限,而是依靠于表明器的权限。
脚本的可读性
:纵然脚本没有实行权限,只要它具有读权限,表明器就可以或许读取脚本内容并实行。这是由于表明器只须要可以或许读取脚本内容,而不须要脚本本身具有实行权限。
特别情况
:在某些特别情况下,比方使用source下令或.下令来实行脚本,脚本的实行并不依靠于脚本的实行权限。这种方式通常用于在当前Shell情况中实行脚本内容。
3,source下令实行shell脚本
source下令是一个非常有效的工具,紧张用于在当前Shell情况中读取并实行指定文件中的下令。这个下令通常用于加载设置文件或实行脚本内容,而不须要启动一个新的子Shell。
紧张用途
source下令的紧张用途包罗:
加载设置文件
:比方,加载.bashrc或.profile等设置文件,以便在当前Shell情况中应用设置。
实行脚本内容
:可以直接实行脚本文件中的下令,而不须要赋予脚本实行权限。
使用方法
source下令的根本使用方法如下:
source filename
大概使用.下令:
. filename
这两种方式是等效的,都可以在当前Shell情况中读取并实行指定文件中的下令。
示例
以下是一些示例,展示了怎样使用source下令:
加载.bashrc设置文件
:
source ~/.bashrc
实行脚本内容
:
source script.sh
大概:
. script.sh
注意事项
权限要求
:使用source下令时,只须要文件具有读权限即可,不须要文件具有实行权限。
情况变量
:通过source下令加载的设置文件或实行的脚本内容,会影响到当前Shell情况中的变量。
shell
编程变量
在 Shell 编程中,变量是用于
存储
数据值的名称。
界说变量时,变量名不加美元符号($,PHP语言中变量须要),如:
your_name="cyber secruity"
变量名的定名规则:
只包罗字母、数字和下划线:
变量名可以包罗字母(巨细写敏感)、数字和下划线
_
,不能包罗其他特别字符。
不能以数字开头:
变量名不能以数字开头,但可以包罗数字。
克制使用 Shell 关键字:
不要使用Shell的关键字(比方 if、then、else、fi、for、while 等)作为变量名,以免引起肴杂。
使用大写字母体现常量:
风俗上,常量的变量名通常使用大写字母,比方
PI=3.14
。
克制使用特别符号:
只管克制在变量名中使用特别符号,由于它们大概与 Shell 的语法产生辩说。
克制使用空格:
变量名中不应该包罗空格,由于空格通常用于分隔下令和参数。
1,给变量赋值(无$符号)——打印输出变量(带$符号)
2,复杂的变量赋值打印输出
3,变量的改变,变量的赋值可以直接覆盖改变
4,变量的拼接
根本语法
在Shell中,变量拼接可以通过多种方式实现。以下是几种常见的方法:
1. 直接拼接
var1="Hello"
var2="World"
result="$var1 $var2"
echo $result
2. 使用双引号
var1="Hello"
var2="World"
result="$var1$var2"
echo $result
3. 使用单引号
var1="Hello"
var2="World"
result='$var1 $var2'
echo $result
# 输出: $var1 $var2
4. 使用花括号
var1="Hello"
var2="World"
result="${var1} ${var2}"
echo $result
# 输出: Hello World
注意事项
使用双引号时,Shell会主动剖析变量,而使用单引号时,变量不会被剖析。
使用花括号可以明确变量的界限,特别是在变量名背面紧跟其他字符时,克制歧义。
5,只读变量
使用 readonly 下令可以将变量界说为只读变量,只读变量的值不能被改变。
下面的例子实行更改只读变量,效果报错:
运行脚本,效果如下:
回复
使用道具
举报
返回列表
浏览过的版块
Java
备份
人工智能
DevOps与敏捷开发
公有云
分布式数据库
Nosql
Oracle
Postrge-SQL
络腮胡菲菲
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表