泷羽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 后面可以跟着路径来查看指定目录下的文件或目录的
相关推荐
降临-max27 分钟前
JavaSE---网络编程
java·开发语言·网络·笔记·学习
自由的好好干活39 分钟前
使用Qoder编写ztdaq的C#跨平台示例总结
linux·windows·c#·qoder
赖small强1 小时前
【Linux 网络基础】libwebsockets HTTPS 服务端实现机制详解
linux·网络·https·tls·libwebsockets
大白的编程日记.1 小时前
【计算网络学习笔记】MySql的多版本控制MVCC和Read View
网络·笔记·学习·mysql
optimistic_chen1 小时前
【Redis 系列】Redis详解
linux·数据库·redis·缓存·xsheel
低客的黑调2 小时前
了解JVM 结构和运行机制,从小白编程Java 大佬
java·linux·开发语言
想唱rap2 小时前
C++ map和set
linux·运维·服务器·开发语言·c++·算法
CodeByV2 小时前
【Linux】Ext 系列文件系统深度解析:从磁盘到软硬链接
linux·服务器
运维-大白同学3 小时前
2025最全面开源devops运维平台功能介绍
linux·运维·kubernetes·开源·运维开发·devops
梦在深巷、3 小时前
linux系统防火墙之iptables
linux·运维·服务器