泷羽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 后面可以跟着路径来查看指定目录下的文件或目录的
相关推荐
ue星空1 天前
逆向分析光与影:33号远征队使用的UE技术栈
笔记·学习
---学无止境---1 天前
Linux中在字符串中查找指定字符的第一次出现位置的汇编实现
linux
立志成为大牛的小牛1 天前
数据结构——二十二、并查集(王道408)
c语言·数据结构·笔记·学习·考研
二十三之歌1 天前
Redis 中文学习手册
数据库·redis·学习
tianyuanwo1 天前
虚拟机监控全攻略:从基础到云原生实战
linux·云原生·虚机监控
别或许1 天前
在centos系统下,安装MYSQL
linux·mysql·centos
青衫码上行1 天前
【从0开始学习Java | 第21篇】网络编程综合练习
java·网络·学习
丁丁丁梦涛1 天前
CentOS修改MySQL数据目录后重启失败的问题及解决方案
linux·mysql·centos
黑马金牌编程1 天前
Jenkins的Linux与window部署方式
linux·运维·windows·jenkins·持续集成·cicd
web安全工具库1 天前
告别刀耕火种:用 Makefile 自动化 C 语言项目编译
linux·运维·c语言·开发语言·数据库·算法·自动化