05-12-shell编程(完结)

声明!

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

文章为个人学习笔记。

sh文件调用

删除所有的shs文件

┌──(root㉿kali)-[~/work]
└─# rm *.sh    

创建2.sh

vim 2.sh
echo "hello word"

创建 3.sh​

  1. 打开终端。

  2. 输入 vim 3.sh​ 来创建并编辑 3.sh​ 文件。

  3. 在 3.sh​ 文件中输入以下内容:

vim 3.sh
name="xiaoyu"
age="23"

创建 4.sh​

  1. 确保你还在终端中。

  2. 输入 vim 4.sh​ 来创建并编辑 4.sh​ 文件。

  3. 在 4.sh​ 文件中输入以下内容:

vim 4.sh

source 3.sh
echo "my name is $name i an $age years old"

┌──(root㉿kali)-[~/work]
└─# chmod +x 3.sh 4.sh  
chmod: 无法访问 '3.sh': 没有那个文件或目录

┌──(root㉿kali)-[~/work]
└─# bash 4.sh
my name is xiaoyu i an 23 years old
                                     

输出重定向

输出重定向用于将命令的输出发送到文件或设备,而不是终端。这里有两种常见的符号:

  1. ​>​:如果文件不存在,会创建一个新文件;如果文件已存在,会覆盖原有内容。

  2. ​>>​:如果文件不存在,同样会创建一个新文件;如果文件已存在,会将内容追加到文件末尾,而不是覆盖。

覆盖

┌──(root㉿kali)-[~/work]
└─# ls > 1.txt                                                                    
                                                                                                                                                         
┌──(root㉿kali)-[~/work]
└─# cat 1.txt        
1.txt
2.sh
3.sh
4.sh
                                                                                                                                                         
┌──(root㉿kali)-[~/work]
└─# who > 1.txt                                                                   
                                                                                                                                                         
┌──(root㉿kali)-[~/work]
└─# cat > 1.txt
asfalsfhasfh
asfajksfhkjaf
afhkjafh
afjkahfkas
^Z
zsh: suspended  cat > 1.txt
                                                                                                                                                         
┌──(root㉿kali)-[~/work]
└─# cat 1.txt  
asfalsfhasfh
asfajksfhkjaf
afhkjafh
afjkahfkas

  • ​ls > 1.txt​:列出当前目录的内容,并将输出重定向到1.txt​文件中,如果1.txt​已存在,其内容会被覆盖。

  • ​cat 1.txt​:显示1.txt​文件的内容。

  • ​who > 1.txt​:获取当前登录的用户列表,并将输出重定向到1.txt​文件中,同样会覆盖原有内容。

  • ​cat > 1.txt​:这是一个交互式命令,提示用户输入内容,输入结束后(通过Ctrl+D结束),内容会被写入1.txt​,覆盖原有内容。

追加内容

┌──(root㉿kali)-[~/work]
└─# ls >> 1.txt
                                                                                                                                                         
┌──(root㉿kali)-[~/work]
└─# cat 1.txt
asfalsfhasfh
asfajksfhkjaf
afhkjafh
afjkahfkas
1.txt
2.sh
3.sh
4.sh
  • ​ls >> 1.txt​:列出当前目录的内容,并将输出追加到1.txt​文件的末尾,而不是覆盖原有内容。

输出重定向到 /dev/null​

在Linux和类Unix系统中,/dev/null​是一个特殊的设备文件,它被称为“黑洞”,因为任何写入到/dev/null​的数据都会被丢弃,不会显示或保存任何地方。这通常用于丢弃不需要的输出或防止命令输出显示在终端上。ls

┌──(root㉿kali)-[~/work]
└─#  ls > /dev/null
                           

当你执行命令 ls > /dev/null​ 时,ls​ 命令的输出(即当前目录的内容)被重定向到 /dev/null​。这意味着输出不会被显示在终端上,也不会被写入任何文件。这个命令执行后,你不会看到任何输出,因为所有的输出都被“丢弃”了。

输出重定向示例

例子1

┌──(root㉿kali)-[~/work]
└─# cat <  1.txt
asfalsfhasfh
asfajksfhkjaf
afhkjafh
afjkahfkas
1.txt
2.sh
3.sh
4.sh

这会显示 1.txt​ 文件的内容。

例子2

vim 5.txt

/root/
/root

┌──(root㉿kali)-[~/work]
└─# vim 5.txt
                                                                                                                                                       
┌──(root㉿kali)-[~/work]
└─# ls -la < 5.txt
总计 28
drwxr-xr-x  2 root root 4096 11月24日 21:16 .
drwx------ 21 root root 4096 11月24日 21:16 ..
-rw-r--r--  1 root root   68 11月24日 21:04 1.txt
-rw-r--r--  1 root root   18 11月24日 20:49 2.sh
-rw-r--r--  1 root root   23 11月24日 20:57 3.sh
-rwxr-xr-x  1 root root   56 11月24日 20:54 4.sh
-rw-r--r--  1 root root   13 11月24日 21:16 5.sh
                                                  

例子3

文件描述符用于标识打开的文件。每个进程都有三个标准文件描述符:

  • ​0​:标准输入(stdin),通常关联到键盘。

  • ​1​:标准输出(stdout),通常关联到终端屏幕。

  • ​2​:标准错误输出(stderr),用于错误信息,也通常关联到终端屏幕。

例子:

  1. 标准输出重定向:使用 >​ 符号,可以将标准输出重定向到文件。如果文件已存在,会被覆盖;如果不存在,会创建新文件。

  2. 错误输出重定向:使用 2>​ 符号,可以将错误输出重定向到文件。同样,如果文件已存在,会被覆盖;如果不存在,会创建新文件。

┌──(root㉿kali)-[~/work]
└─# ls -la > 6.txt 
                                                                                                                                                         
┌──(root㉿kali)-[~/work]
└─# coo >6.txt 2> 7.txt
                                                                                                                                                         
┌──(root㉿kali)-[~/work]
└─# cat 7.txt        
找不到命令 “coo”,您的意思是:
  “co” 命令来自 Debian 软件包 rcs
  “col” 命令来自 Debian 软件包 bsdextrautils
  “cdo” 命令来自 Debian 软件包 cdo
  “goo” 命令来自 Debian 软件包 goo
  “cog” 命令来自 Debian 软件包 cog
  “cow” 命令来自 Debian 软件包 fl-cow
尝试 apt install <deb name>
                                                                                                                                                         
┌──(root㉿kali)-[~/work]
└─# 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值