linux的重定向与xshell原理

简介: linux的重定向与xshell原理

一、重定向

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.过程


用户并不是直接访问操作系统,而是通过外壳程序

外壳程序通过指令的方式收到,外壳程序把收到的指令传递给操作系统 操作系统进行处理,执行完后 再通过shell 返回给用户

2. xshell的意义

意义1

假设你叫张三,你找到了一份很好的工作,你的村长父亲非常高兴,可如今还没有女朋友, 你的村长父亲问你有没有相中的,你说你喜欢邻居如花,但是 不善于直接跟如花打交道,不敢向她表达心意,你的村长父亲说,咱们村东头有个非常有名的媒婆叫王婆,

找王婆帮你传递信息,王婆来了后,问你喜欢相中谁,你一口确定就相中了如花,

于是王婆就找到了如花,说你长的挺精神的,并且还有一份不错的工作,让如花考虑一下,如花


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


用户把自己的需求给外壳,外壳对于需求加工处理 交给操作系统操作系统对指令进行执行,执行完毕禁止访问,把结果反馈给外壳,

外壳再将结果反馈给用户


帮忙进行命令行的传递和返回结果

意义2

王婆跟你说如花没有相中你后,你依旧没有放弃,想要王婆再尝试下,王婆说不过你,更碍于你的村长父亲,王婆只能再次前去如花家,但是还没等进去就看见了

如花和李四在一在牵手看电视,甚至双方的父母都在傍边,两人应该到了谈婚论嫁的地步了,

王婆只好返回,并跟你说,如花不可能相中你了,还是而打消这个念头吧


用户给外壳的要求不可能执行到,外壳直接就给拦截了,不会把非法请求传递给操作系统


保护操作系统


相关文章
|
1天前
|
Unix Linux Shell
【探索Linux】P.12(文件描述符 | 重定向 | 基础IO)
【探索Linux】P.12(文件描述符 | 重定向 | 基础IO)
13 0
|
1天前
|
存储 Linux 程序员
【操作系统原理】—— Linux内存管理
【操作系统原理】—— Linux内存管理
8 0
|
1天前
|
Linux C语言 UED
【Linux】开始了解重定向
上一篇文章我们复习了C文件IO相关操作,了解了linux下的文件系统调用(open write read ),认识了文件描述符fd值,今天我们来学习重定向和缓冲区,这个缓冲区之前遇到过很多次,比如进度条项目的刷新缓冲区操作。然后我们可以来尝试封装一下系统调用,模拟C语言的文件库。
15 2
|
1天前
|
Linux Shell 程序员
【Linux】权限(shell运行原理、概念,Linux权限)
【Linux】权限(shell运行原理、概念,Linux权限)
15 2
|
1天前
|
缓存 Linux C语言
[Linux打怪升级之路]-重定向
[Linux打怪升级之路]-重定向
|
1天前
|
存储 Linux 程序员
【Linux-14】进程地址空间&虚拟空间&页表——原理&知识点详解
【Linux-14】进程地址空间&虚拟空间&页表——原理&知识点详解
|
1天前
|
Shell Linux C++
【Linux】关于环境变量——你需要知道这些原理&指令
【Linux】关于环境变量——你需要知道这些原理&指令
|
1天前
|
Unix Linux
【Linux】一文了解【进程优先级相关知识点】&【PRI / NI值】背后的修正原理(13)
【Linux】一文了解【进程优先级相关知识点】&【PRI / NI值】背后的修正原理(13)
|
1天前
|
Shell Linux
【Linux】Bash支持各种指令选项的原理:命令行参数
【Linux】Bash支持各种指令选项的原理:命令行参数