(文章目录)

一、重定向

1.输出重定向:>

1.写入指定文件

[root@VM-8-8-centos lesson5]#  cat file.txt
[root@VM-8-8-centos lesson5]# echo "hello world" > file.txt
[root@VM-8-8-centos lesson5]#  cat file.txt
hello world
[root@VM-8-8-centos lesson5]# cat file.txt > test.c
[root@VM-8-8-centos lesson5]#  cat test.c
hello world

将 cat file.txt默认到显示器上的内容 显示到了 test.c文件中

2. 覆盖写

[root@VM-8-8-centos lesson5]# cat file.txt
hello world
[root@VM-8-8-centos lesson5]#  echo "you can see you" > file.txt
[root@VM-8-8-centos lesson5]#  cat file.txt
you can see you

file.txt文件的原来内容是 hello world,被变成了 you can see me 将原来的文件内容清空,再重新写

2.追加重定向 :>>

[root@VM-8-8-centos lesson5]#  echo "you can see you" > file.txt
[root@VM-8-8-centos lesson5]#  cat file.txt
you can see you
[root@VM-8-8-centos lesson5]# echo "you can see me" >> file.txt
[root@VM-8-8-centos lesson5]#  cat file.txt
you can see you
you can see me
[root@VM-8-8-centos lesson5]#  echo "you can see me" >> file.txt
[root@VM-8-8-centos lesson5]# cat file.txt
you can see you
you can see me
you can see me

把file.txt文件的内容 you can see me 打印后, 使用 >> 发现会在文件结尾 追加内容

3.输入重定向:<

1.键盘显示

[root@VM-8-8-centos lesson5]# cat
abcdefhgjkl
abcdefhgjkl

cat 不跟文件,默认从键盘读到什么就显示什么。

2.文件显示

使用 < 变为 从 指定文件中读取数据



```c

[root@VM-8-8-centos lesson5]# cat < file.txt
you can see you
you can see me
you can see me
[root@VM-8-8-centos lesson5]#  cat file.txt
you can see you
you can see me
you can see me

cat < file.txt 与 cat file.txt等价 cat < file.txt :从fille.txt文件中读取数据

4.重定向的一些认知误区

1. test.c只显示错误的

find /home -name test.c > msg.c

寻找 主目录中的 test.c文件 并重定向到 msg .c文件中

在这里插入图片描述

发现只能显示出权限不够而不能访问的 即错误的

2. msg.c只显示正确的

打印 cat msg.c文件 只显示正确的

在这里插入图片描述

结论:显示器输出的信息中,有正确的,也有错误的, 只把正确的进行了重定向

3.分析

在这里插入图片描述

标准输出 和 标准错误输出 都是在显示器上打印,是两个不同的文件, 所以 >只重定向 标准输出

find /home -name test.c > msg.c 默认重定向 是 find /home -name test.c 1> msg.c 只不过把代码是1省略了 ,而代码1对应标准输出

4.显示出正确的

find /home -name test.c 2> msg.c 这里就代表将代码为2重定向到 msg.c文件,代码2代表标准输出 此时 test.c只显示正确的 在这里插入图片描述

二 、xshell命令及原理

1.过程

在这里插入图片描述

  • <font color="blue" size="3">用户并不是直接访问操作系统,而是通过外壳程序 外壳程序通过指令的方式收到,外壳程序把收到的指令传递给操作系统 操作系统进行处理,执行完后 再通过shell 返回给用户</font>

2. xshell的意义

意义1

在这里插入图片描述

假设你叫张三,你找到了一份很好的工作,你的村长父亲非常高兴,可如今还没有女朋友, 你的村长父亲问你有没有相中的,你说你喜欢邻居如花,但是 <font color="red" size="3">不善于直接跟如花打交道</font>,不敢向她表达心意,你的村长父亲说,咱们村东头有个非常有名的媒婆叫王婆, 找王婆帮你传递信息,王婆来了后,问你喜欢相中谁,你一口确定就相中了如花,
于是王婆就找到了如花,说你长的挺精神的,并且还有一份不错的工作,让如花考虑一下,如花

却拒绝了来自王婆的说媒,王婆回来跟你说,如花没有相中你。

在这里插入图片描述

<font color="blue" size="3">用户把自己的需求给外壳,外壳对于需求加工处理 交给操作系统操作系统对指令进行执行,执行完毕禁止访问,把结果反馈给外壳, 外壳再将结果反馈给用户</font>

  • <font color="red" size="3">帮忙进行命令行的传递和返回结果</font>

意义2

王婆跟你说如花没有相中你后,你依旧没有放弃,想要王婆再尝试下,王婆说不过你,更碍于你的村长父亲,王婆只能再次前去如花家,但是还没等进去就看见了 如花和李四在一在牵手看电视,甚至双方的父母都在傍边,两人应该到了谈婚论嫁的地步了, 王婆只好返回,并跟你说,如花不可能相中你了,还是而打消这个念头吧

<font color="blue" size="3">用户给外壳的要求不可能执行到,外壳直接就给拦截了,不会把非法请求传递给操作系统</font>

  • <font color="red" size="3">保护操作系统</font>