0
点赞
收藏
分享

微信扫一扫

3.Linux重定向 管道命令 环境变量PATH

janedaring 2022-02-18 阅读 54

了解Linux目录配置标准FHS

是什么? FHS 本质一套规定 Linux 目录结构,软件建议安装位置的标准

为什么? 使用 Linux 来开发产品或者发布软件的公司、个人太多,如果每家公司或者个人都按照自己的意愿来配置文

件或者软件的存放位置,这无疑是一场灾难。我们可不想学完我们的 Linux 之后,去公司发现看不懂别人的目录结

构,更别谈开发了。

怎么办?

linux目录结构详细说明--基于FHS与CentOS7.0_lzq00277的博客-CSDN博客

Linux数据重定向的理解与操作  

基本准备

基本大部分计算机,要与人交互,都要默认打开三个设备 ( 文件 )

为什么? Linux一切皆文件 ,交互需求,输入输出信息分类

除了上面的三个标准设备 ( 文件 ) , 我们可能经常有从文件读取数据,或者将数据写入文件的场景

重定向的理解

是什么?

  • 这里的 >  就是输出重定向,意思是把hello linux输出到test.c

  •  和上面的对比发现 > 是会覆盖的,

  •  这里的 >> 就是追加重定向,不会覆盖写,会追加到尾部

  • 这里的  <  就是输入重定向,在这里就是把test.c的内容输入给cat,而cat作为一条指令就会在屏幕中显示内容

  •  这里的tac和cat是向反的,tac是倒着把内容显示在屏幕的

代码0,1,2?什么鬼

 

  •  这里的find是一条查找命令

  •  这里我不好演示,感兴趣的话可以试试

/dev/null

垃圾桶黑洞设备,如果我知道有错误信息,但是我不想要,我想凡是错误信息直接丢弃,习惯写法是

感兴趣的话再试试下面的这条命令

Linux管道命令的理解与操作 

命令是可以产生数据的,如果我们还要多输出数据进行加工,甚至想多次加工,就需要使用管道

样例

  •  #显示正在或者最近登录linux的用户信息

  • 登录linux的用户信息前5条信息 

  • 只看root的历史登录信息 ,这里的grep是按照行为单位,进行关键字筛选,这里的 | 就是管道

  • 只看到root的历史登录时间

可见,管道是可以级联多条命令的,每条命令的结果输出,都作为输入,导入下一条命令。有点像流水线

 Linux 环境变量与PATH

假设我们想用 C 写一个输出 ‘hello world’ 的程序

  •  './' 是什么东西?test.o从构成上,也可以认为是一个命令
  • 但是为什么不能直接test.o?
  • 还有一个问题,为什么可以ll

环境变量PATH

是一个路径集,命令再被执行时,系统会在环境变量 PATH 中进行路径查找,如果找到,就停止查找,执行命令。

  •  #不同环境,平台可能内容会有不同
  • $: 用来显示 PATH 环境变量的内容

  • #各个路径以 : 作为分隔符,每个区域代表一个搜索路径

这也就解释了,为何ls不需要带路径,因为ls所在的路径,本身就在PATH环境变量列表当中。

  •  这里的which是一条查看命令在什么路径下的命令

 那么问题来了,如果我想直接test.o就能出现hello world行不行?答案是可以的

方案一

既然命令都在环境PATH下的某个路径里面,那直接把自己新增的命令放在PATH下的某个路径里面,这样不就行了吗

  • #但是千万不要这样干,因为会‘污染’指令集 

方案二

  •  这里推荐直接把路径放在环境变量PATH中

那还有没有其他的环境变量呢,答案是还有

感兴趣的话可以试试env#显示当前用户环境变量

更多信息 ,待定

---------------------------------------------------------------------------------------------------------------------------------本章完

举报

相关推荐

0 条评论