目录结构和文件管理指令: rm / -rf指令的作用是什么?

cd命令

  • 输入cd,不带任何参数会切换到用户的家目录,Linux 中通常是/home/{用户名}。以我自己为例,我的家目录是/home/ramroll;
  • 输入cd .什么都不会发生,因为.代表当前目录;
  • 输入cd..会回退一级目录,因为..代表上级目录。

几种常见的文件类型

  • 普通文件
  • 目录文件
  • 可执行文件: 上面的rm就是一个可执行文件
  • 管道文件
  • Socket文件
  • 软链接文件
  • 硬链接文件

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

  • * 结尾的是可执行文件;
  • = 结尾的是 Socket 文件;
  • @ 结尾的是软链接;
  • | 结尾的管道文件;
  • 没有符号结尾的是普通文件;
  • / 结尾的是目录。

设备文件

  • Socket 是网络插座,是客户端和服务器之间同步数据的接口
  • 其实,Linux 不只把 Socket 抽象成了文件,设备基本也都被抽象成了文件。
  • 因为设备需要不断和操作系统交换数据。
  • 而交换方式只有两种——读和写。所以设备是可以抽象成文件的,因为文件也支持这两种操作。
  • Linux 把所有的设备都抽象成了文件,比如说打印机、USB、显卡等。这让整体的系统设计变得高度统一。

文件的增删改查

增加

最常见的有touch指令。比如下面我们创建了一个 a.txt 文件。

  • touch指令本来是用来更改文件的时间戳的,但是如果文件不存在touch也会帮助创建一个空文件。
  • 如果你拿到一个指令不知道该怎么用,比如touch,你可以用man touch去获得帮助。man意思是 manual,就是说明书的意思,这里指的是系统的手册。
  • 如果你不知道man是什么,也可以使用man man。

另外如果我们需要增加一个目录,就需要用到mkdir指令( make directory)。 mkdir -p

查看

ls -l

删除

rm -r hello 递归删除hello文件夹

修改

可以使用nano或者vi编辑器

查阅文件内容

cat命令

  • 当文件较小时,比如一个配置文件,想要快速浏览这个文件,可以用cat指令。cat /etc/hosts. cat指令将文件连接到标准输出流并打印到屏幕上。
  • 标准输出流(Standard Output)也是一种文件,进程可以将要输出的内容写入标准输出流文件,这样就可以在屏幕中打印。
  • 如果用cat查看大文件,比如一个线上的日志文件,因为动辄有几个 G,控制台打印出所有的内容就要非常久,而且刷屏显示看不到东西。
  • 而且如果在线上进行查看大文件的操作,会带来不必要的麻烦:
  • 首先因为我们需要把文件拷贝到输入输出流,这需要花费很长时间,这个过程会占用机器资源;
  • 其次,本身文件会读取到内存中,这时内存被大量占用,很危险,这可能导致其他应用内存不足。因此我们需要一些不用加载整个文件,就能查看文件内容的指令

more命令

  • more可以帮助我们读取文件,但不需要读取整个文件到内存中。
  • 本身more的定位是一个阅读过滤器,比如你在more里除了可以向下翻页,还可以输入一段文本进行搜索

  • 如上图所示,我在more查看一个 nginx 日志后,先输入一个/,然后输入192.168看到的结果。
  • more帮我找到了192.168所在的位置,然后又帮我定位到了这个位置。
  • 整个过程 more 指令只读取我们需要的部分到内存中。

less命令

  • less是一个和more功能差不多的工具,打开man能够看到less的介绍上写着自己是more的反义词(opposite of more)
  • less支持向上翻页,这个功能more是做不到的

head/tail

  • head和tail是一组,它们用来读取一个文件的头部 N 行或者尾部 N 行。
  • 比如一个线上的大日志文件,当线上出了 bug,服务暂停的时候,我们就可以用tail -n 1000去查看最后的 1000 行日志文件,寻找导致服务异常的原因。
  • 如果你想看一个实时的nginx日志,可以使用tail -f 文件名,这样你会看到用户的请求不断进来。查一下man,你会发现-f是 follow 的意思,就是文件追加的内容会跟随输出到标准输出流

grep命令

有时候需要查看一个指定ip的nginx日志,或者查看一段时间内的nginx日志。如果不想用less和more进入文件中去查看,就可以用grep命令。

  • g- global 全局
  • re-regular expression 正则表达式
  • p patter-模式

通过正则表达式全局搜索一个文件找到匹配的模式

例子1: 通过grep命令定位到某个ip地址的用户都做了什么

 例子2:查找时间段的日志;可以通过grep命令查找某个时间段内用户都做了什么事情

查找文件

which

  • 查询一个指令文件所在的位置,比如which grep, 可以查看到grep指令被安装的位置是/usr/bin.

find

帮助我们在文件系统中查找文件,比如想要查找所有.txt扩展名的文件,可以使用 find / -iname *.txt

rm  /  -rf 的作用是什么?

  • /是文件系统根目录;
  • rm是删除指令;
  • -r是 recursive(递归);
  • -f是 force(强制),遇到只读文件也不提示,直接删除。

删除整个文件系统上的所有文件,而且不给用户提示。

面试题: 搜索文件系统中所有以包含std字符串且以.h扩展名结尾的文件。

find / -iname '*.h' | grep -rl 'std'

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值