面向监狱编程之 rm / -rf

今天我们通过一道常见的高频面试题引出今天的主要内容。面试题如下:请你说说rm / -rf的作用?

相信 90% 的同学是知道这个指令的。这里先预警一下,你千万不要轻易在服务器上尝试。

什么是 Shell

在我们学习 Linux 指令之前,先来说一下什么是 Shell?Shell 把我们输入的指令,传递给操作系统去执行,所以 Shell 是一个命令行的用户界面。

早期程序员没有图形界面用,就用 Shell。而且图形界面制作成本较高,不能实现所有功能,因此今天的程序员依然在用 Shell。

你平时还经常会看到一个词叫作bash(Bourne Again Shell),它是用 Shell 组成的程序。这里的 Bourne 是一个人名,Steve Bourne 是 bash 的发明者。

我们今天学习的所有指令,不是写死在操作系统中的,而是一个个程序。比如rm指令,你可以用which指令查看它所在的目录。如下图所示,你会发现rm指令在/usr/bin/rm目录中。

如上图所示,ramroll是我的英文名字,ubuntu 是我这台机器的名字。我输入了which rm,然后获得了/usr/bin/rm的结果,最终执行这条指令的是操作系统,连接我和操作系统的程序就是 Shell。

Linux 对文件目录操作的指令就工作在 Shell 上,接下来我们讲讲文件目录操作指令。

Linux 对文件目录的抽象

Linux 对文件进行了一个树状的抽象。/代表根目录,每一节目录也用/分开,所以在上图所展示的/usr/bin/rm中,第一级目录是/根目录,第二级目录是usr目录,第三级是bin目录。最后的rm是一个文件。

路径(path)

/usr/bin/rm称为可执行文件rm的路径。路径就是一个文件在文件系统中的地址。如果文件系统是树形结构,那么通常一个文件只有一个地址(路径)。

目标文件的绝对路径(Absolute path),也叫作完全路径(full path),是从/开始,接下来每一层都是一级子目录,直到定位到目标文件为止。

如上图所示的例子中,/usr/bin/rm就是一个绝对路径。

工作目录

为了方便你工作,Shell 还抽象出了工作目录。当用户打开 Shell 的时候,Shell 就会给用户安排一个工作目录。因此也就产生了相对路径。

相对路径(Relative path)是以工作目录为基点的路径。比如:

  • 当用户在/usr目录下的时候,rm文件的相对路径就是bin/rm

  • 如果用户在/usr/bin目录下的时候,rm文件的路径就是./rm或者rm,这里用.代表当前目录;

  • 如果用户在/usr/bin/somedir下,那么rm的相对路径就是../rm,这里用..代表上一级目录。

我们使用cd(change directory)指令切换工作目录,既可以用绝对路径,也可以用相对路径。这里我要强调几个注意事项:

  • 输入cd,不带任何参数会切换到用户的家目录,Linux 中通常是/home/{用户名}。以我自己为例,我的家目录是/h

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值