目录
1 管道符 |
1.1 | grep [要检索的东西]
1.2 echo | tee
2 重定向
2.1 输出重定向覆盖 >
2.2 输出重定向添加 >>
2.3 文件输入重定向 <
2.4 多行文本输入重定向 <<
2.5 常用搭配
2.5.1 终端不显示 > /dev/null
1 管道符 |
我们举个例子 A命令 | B命令
这样写A命令的结果就会作为b命令的输入
我们下面介绍几个常见的使用方式
1.1 | grep [要检索的东西]
你在终端上看到了一些内容,你感觉东西太多了,自己找很麻烦,那么就可以用这个
比如我向在当前目录下查看有没有 something.txt 这个文件,那么我可以这样写 ls | grep something.txt
要检索的东西默认区分大小写
- ps -ef | grep python 查看python的所有进程,这里不只能挂python,比如你要查看uwsgi的所有进程,你就写 ps -ef | grep uwsgi
- pip list | grep opencv 查看python库中opencv的版本情况
1.2 echo | tee

这样可以让 hello world 写入 test.txt。写入的东西会覆盖掉之前的东西

2 重定向
重定向有 > >> < << 四个符号,你别把他们当作大于号和小于号看,你把他们当作箭头来看。比如 A > B 就是把A的结果给B。再比如 A < B 就是把B的结果给A
2.1 输出重定向覆盖 >
举个例子,echo默认会把结果输出到终端上

现在我不想让结果输出在终端上了,而是输出在一个txt中,那我们可以这样写
![]()
这样我们发现终端上就不显示东西了,之后在指定的目录下会出现test.txt这个文件(如果test.txt之前存在会覆盖掉之前的内容,如果text.txt之前不存在会自动创建)


2.2 输出重定向添加 >>
如果没有test.txt那么就自动创建一个test.txt并写下相关的内容
![]()

与 > 不同的是,>>会将内容添加到最后,而不是进行覆盖
![]()

2.3 文件输入重定向 <
把后面的结果给前面的,比如我现在想找test.txt的wo的部分

那么我们可以这样写

我们再举个例子加强一下理解,我现在有两个文本文件 test.txt 与 test1.txt

test.txt的内容是这样的

test1.txt的内容是这样的

我现在想用test1.txt的内容覆盖掉test.txt的内容,我们可以这样写

test.txt的内容改变了

test1.txt的内容没有变化

2.4 多行文本输入重定向 <<
执行命令前的test.txt内容是这样的

之后执行重定向的命令,EOF是多行文本的结束标识,运行之后出现了输入多行文本的地方
- 一般都是用EOF作为结束标识,我们也可以用其他的字符,效果一样
- 使用 <<- EOF 与 << EOF 相似,只是关于制表符的处理上不一样。在一些终端中<<-EOF与<<EOF作用相同
![]()
我们随便输入一些内容,然后最后以EOF结尾,然后按回车

之后打开test.txt发现之前的内容被覆盖掉了

2.5 常用搭配
2.5.1 终端不显示 > /dev/null
/dev/null 就是一个扔垃圾的地方,不想要的终端输出都可以给这个文件
![]()
这样写会保存想要的内容,并且在终端上不显示任何的东西










![[记录]-共享gpu和专用gpu的区别](https://img-blog.csdnimg.cn/2a2013b1ebfa48fa90566dbef8825e6c.png)
![【问题解决!】OSError: [WinError 1455] 页面文件太小,无法完成操作。Error loading “c:\Anaconda3\lib](https://img-blog.csdnimg.cn/direct/eab3b7cdacb24c23a81eaed03af24db5.png)








