了解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#显示当前用户环境变量
更多信息 ,待定
---------------------------------------------------------------------------------------------------------------------------------本章完