泷羽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 后面可以跟着路径来查看指定目录下的文件或目录的
相关推荐
Sheffield9 小时前
Docker的跨主机服务与其对应的优缺点
linux·网络协议·docker
Sheffield17 小时前
Alpine是什么,为什么是Docker首选?
linux·docker·容器
Johny_Zhao1 天前
centos7安装部署openclaw
linux·人工智能·信息安全·云计算·yum源·系统运维·openclaw
haibindev1 天前
在 Windows+WSL2 上部署 OpenClaw AI员工的实践与踩坑
linux·wsl2·openclaw
0xDevNull3 天前
Linux切换JDK版本详细教程
linux
进击的丸子3 天前
虹软人脸服务器版SDK(Linux/ARM Pro)多线程调用及性能优化
linux·数据库·后端
Johny_Zhao4 天前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
chlk1236 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑6 天前
Ubuntu系统安装CodeX出现问题
linux·后端