重学操作系统(五)

重学操作系统(五)

前言

上面几篇文章,学习了关于计算机的基本理论,计算机原理,底层一些知识点。也算为我打开一扇大门。其中很多知识点和思想,都是曾经没学到的。之前几篇文章,让我受益匪浅。接下来几篇是介绍Linux指令相关的。Linux指令在面试中,不一定都会问到,但是就我的经验,问到后,答得越多,越准确,是十分加分的一项,尤其是社招。


贯穿全文的问题:rm / -rf什么意思?


什么是Shell

简单来说,就是一个命令行的用户界面。

Bash:Bourne Again Shell,是Shell的组成程序。由Steve Bourne发明的。

Linux对文件目录的抽象

Linux对文件进行了一个树状的抽象。/代表根目录,每一层目录用/分开。

路径(Path)

路径就是一个文件在文件系统的地址。目标文件的绝对目录(Absolute Path),也叫完全路径(Full Path),是从/开始,接下来每一层都是一级子目录,直到定位到目标文件为止。

工作目录

Shell抽象出得目录。相对路径是以工作目录为基点的路径比如如果在/usr目录内,rm文件的相对路径是bin/rm。

.代表当前目录,..代表上级目录。

cd指令(Change Directory):切换工作路径,既可以是绝对路径,也可以是相对路径。

cd(不加参数):回到home

cd .:什么都不发生

cd..:返回上级目录

pwd:查看当前目录

几种常见的文件类型

  1. 普通文件(比如文本文件)
  2. 目录文件(特殊文件,存储文件清单,/也是一个文件)
  3. 可执行文件(rm这种命令文件就是可执行文件)
  4. 管道文件
  5. socket文件
  6. 软链接文件(相当于指向另一个文件所在路径的符号)
  7. 硬连接文件(指向另一个文件的指针)

ls -F 可以看到当前目录下文件和它的类型:

  1. *结尾是可执行文件
  2. =结尾是socket文件
  3. @结尾是软链接
  4. |结尾是管道文件
  5. 没有符号的是普通文件
  6. /结尾是目录文件

设备文件

Socket是网络插座,是客户端和服务端之间同步数据的接口。 Linux把设备抽象成文件,因为设备和操作系统交换数据就是有读,写两个操作。类似文件的操作。Linux把设备,如打印机,显卡等抽象成文件,使文件系统设计变得统一。

文件的增删改查

tips: man [指令] 可以查看相应指令的帮助,man是manual。比如man rm,man touch等。

增加

  1. touch:用来改变时间戳,但是如果没有文件,就会创建文件。
  2. mkdir: 创建目录(mkdir 目录名)
  3. mkdir -p:递归创建,比如创建A/B/C

查看

  1. ls: list缩写,查看文件夹内容
  2. ls -l: 展示详细信息,比如权限,大小,修改时间
  3. ls -a:显示所有
  4. ls -al:显示所有的详细信息

删除

  1. rm:删除文件
  2. rm -r:递归删除,删除目录
  3. rm -f:强制删除,-f force(删除不给提示)

修改

  1. nano,vim:Linux自带编辑器

查阅文件内容

  1. cat:适合浏览比较小的文件,比如配置文件。cat指令将文件连接到标准输出流并打印到屏幕
  2. 标准输出流(Standard Output)也是一种文件。
  3. more:定位是一个阅读过滤器,可以支持翻页,也支持文本搜索
  4. less:和more类似,less支持向上翻页,因此less用途比较多
  5. head/tail:head和tail是一组,他们读取头部N行或者尾部N行(tail -n 1000)
  6. tail -f:f是follow,会自动输出追加的内容(tailf)
  7. grep:g = global,re = regular expression,p = pattern,所以它的作用是通过正则全局搜索一个文件找到的匹配模式
    1. grep [一段ip] ./nginx_logs.txt
    2. grep [一个时间(20/April/2021:19:20)] ./nginx_logs.txt

查找文件

  1. which:文件所在位置(which grep =》返回grep指令文件所在位置)
  2. find:在文件系统中查找文件(find / -iname “*.txt”, -iname是用来匹配查找,i忽略大小写,-name是不忽略大小写)

总结

全文下来,收获很丰富,了解了很多知道,但是知之不深的一些指令。回到前面的问题,rm -rf /,会删除根目录及其下所有文件和文件夹,并不给任何提示。所以不要乱用啊~~

参考

[1] https://kaiwu.lagou.com/course/courseInfo.htm?courseId=478&sid=20-h5Url-0&buyFrom=2&pageId=1pz4#/detail/pc?id=4612


 上一篇
重学操作系统(六) 重学操作系统(六)
重学操作系统(六)前言通过上一篇文章,帮助我巩固了Linux一些简单的命令的使用和原理。接下来,后面这个文章,介绍些和进程,重定向,以及管道指令相关的事情。 贯穿全文的问题:xargs指令的作用是什么? 进程应用的可执行文件是在文件系统中
下一篇 
重学操作系统(四) 重学操作系统(四)
重学操作系统(四)前言这篇文章,记录下存储器相关的一些知识,涉及到L1 Cache,SSD,内存的一些问题。接下来还是贯穿全文的一个问题 SSD、内存和 L1 Cache 相比速度差多少倍?存储器分级为什么有存储器分级策略因为我们希望的存储
  目录