我要学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 下令可以将变量界说为只读变量,只读变量的值不能被改变。
下面的例子实行更改只读变量,效果报错:

运行脚本,效果如下:


回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表