泷羽sec-----shell编程(完结)

声明!

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

对于shell编程当然还有很多的用法,不过这里把主要的学习了,后面可自己深入学习,比如循环中的其他操作,以及打开文件等操作

脚本互相调用

前言

shell中,与python中一样,像是导入的形式一样,可以加载其他文件中的资源,可以互相调用

实操

脚本间的互相调用

创建一个1.sh

shell 复制代码
vim 1.sh 

echo "hello word"

创建一个2.sh文件

shell 复制代码
vim 2.sh

bash 1.sh    或./1.sh,但是这需要有执行权限

或者这里使用bash执行
使用source使得文件生效
source ./1.sh  //因为1.sh有输出,所以会导致执行echo
这里需要指定路径,./表示当前路径,或者使用绝对路径
如果不加路径,会显示当前目录下的文件和目录,这个可以自己测试
脚本调用变量

创建一个1.sh脚本

shell 复制代码
vim 1.sh

name="dijia"
age=999

这时候再创建2.sh脚本

shell 复制代码
vim 2.sh

source 1.sh
echo "my name is $name and i am $age years old"

解释,这里的source在这里是用于加载文件的作用,类似于python中的importc中的include

因为加载了1.sh,所以1.sh中的变量是可以在2.sh中使用的

重定向

前言

输入重定向和输出重定向

输出重定向是指把前面命令执行的结果重定向到某处

输入重定向是指,把文件中的数据重定向到某处

>是输出重定向,若指定的文件有内容,会覆盖原内容

>>是输出重定向,若指定的文件有内容,会在文件末尾追加内容

<是输入重定向,可以把文件中的内容作为某个命令的参数,或者循环的范围等

实操

输出重定向

shell 复制代码
ls > 1.txt	//把当前目录下的文件或目录重定向到1.txt文件中
cat 1.txt	//验证

who > 1.txt
cat 1.txt

echo "test" > 1.txt
cat 1.txt

echo "555" >> 1.txt
cat 1.txt
shell 复制代码
ls >/dev/null	一般使用ls会有回显,但是重定向到这里,相当于垃圾箱,无回显

这里有一个find命令,可以使得在使用find命令寻找的时候,只显示正确数据,其他的数据不显示

find / -name "nmap" 2>/dev/null

2>/dev/null:这是一个重定向操作。

在 Linux/Unix 系统中,文件描述符

  1. 0通常代表标准输入,
  2. 1代表标准输出,
  3. 2代表标准错误输出。

这里的2>表示将标准错误输出重定向,/dev/null是一个特殊的设备文件,它就像一个 "黑洞",任何写入其中的数据都会被丢弃。所以将标准错误输出重定向到/dev/null,就使得查找过程中产生的如权限不足、文件系统某些部分无法访问等错误信息不会在终端上显示出来,而只会显示符合条件的查找结果(如果有的话)到标准输出(也就是终端屏幕上,如果没有进一步重定向标准输出的话)。

当然如果想要知道哪些错误输出,可以把错误输出到一个文件中,而不是/dev/null

输入重定向

以简单的一个ls命令测试

首先创建一个文件

shell 复制代码
vim dir.txt
/home/kali
/home/var

然后在终端执行ls

ls -l < dir.txt	//注意这里只会把文件第一行的去进行输入,因为命令单条执行,并非循环
这里是在dir.txt的目录下,所以没有其他路径
这里会把dir.txt文件中的内容,传递给ls -l命令,就会显示这些目录下的文件或目录
因为ls -l 后面可以跟着路径来查看指定目录下的文件或目录的
相关推荐
薄荷椰果抹茶34 分钟前
【网络安全基础】第一章---引言
安全·网络安全
许白掰1 小时前
【stm32】HAL库开发——CubeMX配置RTC,单片机工作模式和看门狗
stm32·单片机·嵌入式硬件·学习·实时音视频
future14121 小时前
C#学习日记
开发语言·学习·c#
即将头秃的程序媛2 小时前
centos 7.9安装tomcat,并实现开机自启
linux·运维·centos
fangeqin2 小时前
ubuntu源码安装python3.13遇到Could not build the ssl module!解决方法
linux·python·ubuntu·openssl
DIY机器人工房2 小时前
0.96寸OLED显示屏 江协科技学习笔记(36个知识点)
笔记·科技·stm32·单片机·嵌入式硬件·学习·江协科技
爱奥尼欧3 小时前
【Linux 系统】基础IO——Linux中对文件的理解
linux·服务器·microsoft
超喜欢下雨天4 小时前
服务器安装 ros2时遇到底层库依赖冲突的问题
linux·运维·服务器·ros2
我是小哪吒2.04 小时前
书籍推荐-《对抗机器学习:攻击面、防御机制与人工智能中的学习理论》
人工智能·深度学习·学习·机器学习·ai·语言模型·大模型
00后程序员张4 小时前
免Mac上架实战:全平台iOS App上架流程的工具协作经验
websocket·网络协议·tcp/ip·http·网络安全·https·udp