shell(9)
声明!
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec
文章目录
- shell(9)
- 不同脚本的互相调用
- 方法一:
- 方法二:
- 示例:
- 重定向操作
- 重定向的基本概念
- 输出重定向
- 输入重定向
- 输出重定向和输出重定向区别
- 文件描述符
不同脚本的互相调用
方法一:
vim 1.sh 写入echo "hello world"
再创建一个2.sh脚本文件,写入. 1.sh
bash执行2.sh
你会发现输出了1.sh的内容
方法二:
创建的2.sh脚本文件,写入的是. 1.sh
我们可以把. 1.sh修改为source 1.sh
示例:
vim 3.sh写入
name="cyl"
age=99vim 2.sh写入
source 3.sh
echo "My name is $name and i am $age"
然后bash 2.sh执行脚本
重定向操作
重定向的基本概念
在 Linux 中,重定向是一种将命令的输入、输出或错误信息发送到不同位置的机制。常见的重定向操作符有:
>:用于将命令的标准输出重定向到一个文件。如果文件不存在,会创建新文件;如果文件存在,会覆盖原有内容。
>>:将标准输出重定向到一个文件,但不会覆盖原有内容,而是追加到文件末尾。
<:用于将文件内容作为命令的输入。
2>:用于将命令的错误输出重定向到一个文件。
&>:将标准输出和错误输出都重定向到一个文件。
输出重定向
ls > 1.txt:列出当前目录的内容,并将输出重定向到1.txt文件中,如果1.txt已存在,其内容会被覆盖。
cat 1.txt:显示1.txt文件的内容。
who > 1.txt:获取当前登录的用户列表,并将输出重定向到1.txt文件中,同样会覆盖原有内容。
cat > 1.txt:这是一个交互式命令,提示用户输入内容,输入结束后(通过Ctrl+D结束),内容会被写入1.txt,覆盖原有内容。
ls >> 1.txt:列出当前目录的内容,并将输出追加到1.txt文件的末尾,而不是覆盖原有内容。
输出重定向到 /dev/null
在Linux和类Unix系统中,/dev/null是一个特殊的设备文件,它被称为“黑洞”,因为任何写入到/dev/null的数据都会被丢弃,不会显示或保存任何地方。这通常用于丢弃不需要的输出或防止命令输出显示在终端上。
ls > /dev/null
输入重定向
输入重定向:是指不使用系统提供的标准输入端口,而进行重新的指定。换言之,输入重定向就是不使用标准输入端口输入文件,而是使用指定的文件作为标准输入设备。(重定向简单理解就是使用 “<”符来修改标准输入设备)
输出重定向和输出重定向区别
输出重定向影响命令的输出,输入重定向影响命令的输入
输出重定向用于改变输出的位置,输入重定向用于改变输入的来源
输出重定向是将数据从命令流向文件或其他命令,输入重定向是将数据从文件或其他命令流向命令
文件描述符
标识打开的文件的一个抽象的数字,每个打开的文件都会被分配一个文件描述符,用于后续的文件操作0 :标准输入,这是程序默认的输入来源,通常与键盘关联。在 shell 脚本中,你可以使用 < 操作符来重定向标准输入,将文件或其他命令的输出作为脚本的输入1 :标准输出这是程序默认的输出目的地,通常与屏幕关联。在 shell 脚本中,你可以使用 > 操作符来重定向标准输出,将脚本的输出保存到文件中。2 :错误输出,这是程序用于输出错误信息的文件描述符,通常也与屏幕关联。在 shell 脚本中,你可以使用 2> 操作符来重定向标准错误,将错误信息保存到文件中