Linux 的文件与目录管理

小引

The rule of specialization is that the deeper you specialize, the fewer potential opportunities you’ll have, but the more likely you’ll be to get those opportunities.此文源自《Soft Skills The software developer’s life manual》第七章。

破船译:专业化的规则就是:专业程度越深,所拥有潜在的机会就越少,但获得这些机会的可能性越大。

最近在学习 Docker,Docker 缘起于 Linux,自然需要一些 Linux 的知识才好,所以学习 Docker 过程中,顺道学习一下 Linux 的基础知识,此文就是我学习《鸟哥的 Linux 私房菜》的读书笔记之二。

Linux 的文件与目录管理

目录与路径

我们在进行目录切换的时候,自然就涉及到了路径,路径分为绝对路径和相对路径。

  • 绝对路径:路径是从根目录 /开始写起,例如,/usr/share/doc 这就是一个绝对路径。
  • 相对路径:是相对于当前工作目录的路径,例如,由 /usr/share/doc 要到 /usr/share/man 目录时,可以写成: “cd ../man”。

目录的相关操作

首先我们来认识一些特殊的目录:

  • . 代表当前目录
  • .. 代表上一层目录
  • - 代表前一个工作目录
  • ~ 代表目前使用者身份所在的主文件夹
  • ~account 代表 account 这个账号的主文件夹

在所有目录中都存在 2 个目录:...

注意:根目录的上层目录..与根目录自己.是同一个目录。使用 ls -al / 可以看到这两个目录的存在。

下面是一些常见的目录操作指令:

  • cd(change directory) :变换目录
  • pwd (Print Working Directory):显示当前的目录
  • mkdir:创建一个新的目录
  • rmdir:删除一个空的目录,如果目录非空,则需要使用命令rm -r 才行,不过这个命令很危险,慎用。

mkdir -p /home/bird/testing/test1在这个命令中,如果各级目录不存在,加上 -p 参数,系统会自动创建不存在的目录。

pwd -P 这个命令会取得正确的目录名称(而不是以链接文件的路 径来显示的)。

环境变量$PATH

当我们执行某个指令(ls)时,系统会依照环境变量的设置去每个 PATH 定义的目录下搜寻文件名为 ls 的可执行文件,如果在 PATH 定义的目录中含有多个文件名为 ls 的可执行文件,那么先寻到的同名指令先被执行。

利用 echo $PATH 可以查看环境变量中有那些目录,每个目录之间用冒号:隔开。将目录(/root)添加到环境变量中只需要使用如下命令即可:

1
PATH="${PATH}:/root"

文件与目录管理

文件与目录的管理主要包括:属性查看、拷贝、删除和移动等。

  • 文件与目录的查看ls:比较常用的 ls -al ~(列出主目录中所有的文件,包含文件的属性和权限等数据)。由于 ls 使用频率很高,一般安装的 Linux 都将 ll(L 的小写) 设置成为 ls -l,所以在命令行直接输入 ll 就可以很方便的列出文件的相关属性和权限数据。
  • 文件与目录的复制cp
    1
    2
    cp [-adfilprsu] 源文件(source) 目标文件(destination)
    cp [options] source1 source2 source3 .... directory

不同身份者执行这个指令会有不同的结果产生。

  • 文件与目录的删除rm
    1
    rm [-fir] 文件或目录

上面的指令中,-f 就是 force 的意思,忽略不存在的文件,不会出现警告讯息;-i 互动模式,在删除前会询问使用者,-r 递回删除,最常用在目录的删除。

  • 文件与目录的移动和重命名
1
2
mv [-fiu] source destination
mv [options] source1 source2 source3 .... directory

上面指令中,-fforce 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;-i若目标文件 (destination) 已经存在时,就会询问是否覆盖;-u若目标文件已经存在,且 source 比较新,才会更新。

  • 获取路径中的文件名和路径名
1
2
3
4
basename /Users/BeyondVincent/Desktop/hehe.txt
hehe.txt
dirname /Users/BeyondVincent/Desktop/hehe.txt
/Users/BeyondVincent/Desktop

查看文件内容

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写
  • nl 显示的时候,顺道输出行号
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页
  • head 只看头几行
  • tail 只看尾几行
  • od 以二进制的方式读取文件内容