Linux - 文件系统层次结构及常用文件管理命令

文件系统层次结构


目录结构


/ 整个文件系统层次结构的根目录
/bin 基本命令的二进制文件
/etc 特定主机、系统范围内的配置文件
/var 可变文件——例如日志、临时文件、缓存等
/lib 基本共享库和内核模块,例如 C 的头文件
/home 用户的家目录,包含保存的文件、个人设置等
/proc 内核和进程信息虚拟文件系统(将内核与进程状态归档为文本文件)

相对路径与绝对路径


绝对路径:从根目录“/”开始完整地描述文件位置,例如:/bin/ls

相对路径:从当前所在的路径开始描述文件位置,例如:tmp/test.cpp

如果是以“/”开头的路径,就是绝对路径,反之则是相对路径。

当前目录与上级目录


.”表示当前目录,“..”表示上级目录。例如:./tmp/test.cpp 或者 ../../bin/ls

~”表示当前登录用户的家目录。

常用文件管理命令


快捷键


Ctrl + C 取消命令并且换行

Ctrl + U 清空本行命令

Ctrl + Insert 复制文本

Shift + Insert 粘贴文本

tab 按一下补全命令和文件名;如果不能补全,说明有重名,此时按两下即可查看备选选项

命令


查看文件及目录(ls)


Usage: ls [OPTION]... [FILE]...

列出当前目录下所有文件,一般蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件。

常用参数

  • -l 详细信息

  • -h 将文件大小从字节转换为 KB, MB, TB 等(需要和 -l 搭配使用)

  • -a 显示隐藏文件(以 . 开头的文件),同时显示当前目录(.)和上层目录(..

  • -A 显示隐藏文件(以 . 开头的文件),但是不显示当前目录(.)和上层目录(..

查看当前路径(pwd)


Usage: pwd [-LP]

显示当前的绝对路径。

切换目录(cd)


Usage: cd [-L|[-P [-e]] [-@]] [dir]

进入到目录 dir 中,可以是相对路径,也可以是绝对路径。

常见用法

  • 如果后面不加任何路径,默认返回家目录(~)。

  • cd - 快速切换回上一个工作目录。

复制文件/目录(cp)


Usage: cp [OPTION]... [-T] SOURCE DEST

将文件/目录从 SOURCE 复制到 DEST。其中,SOURCE 和 DEST 可以是一个目录,也可以是一个文件。在复制的途中,可以完成重命名的操作。

  • 当 SOURCE 是目录,DEST 也必须是目录,同时使用参数 -r,表示把 SOURCE 整个目录复制到 DEST

    • 如果 DEST 是已经存在的目录的路径:直接把 SOURCE 这个目录复制到 DEST 下

    • 如果 DEST 中仅有最后一个目录不存在:把 SOURCE 这个目录复制到 DEST 下并重命名

    # 将 /var/log 复制到 ~/test,并重命名为 test_log
    cp -r /var/log ~/test/test_log # 仅有最后一个目录(test_log)不存在
  • 当 SOURCE 是文件

    • 如果 DEST 是已经存在的目录的路径:直接把 SOURCE 这个文件复制到 DEST 下

    • 如果 DEST 中仅有最后一个文件不存在:把 SOURCE 这个文件复制到 DEST 下并重命名

    # 将 /var/log/auth.log 复制到 ~/test,并重命名为 test.log
    cp /var/log/auth.log ~/test/test.log # 仅有最后一个文件(test.log)不存在

创建目录(mkdir)


Usage: mkdir [OPTION]... DIRECTORY...

创建一个目录。

常用参数

  • -p 可以创建一系列目录(自动创建父目录)

删除文件/目录(rm)


Usage: rm [OPTION]... [FILE]...

删除一个文件或者目录,支持正则表达式。

# 删除当前用户家目录下的所有文件
rm -r ~/*

如果要删除隐藏文件,需要加 .

# 删除当前目录下的所有隐藏文件(自动跳过 . 和 ..)
rm -r .*
# 删除单独的隐藏文件
rm -r .test

常用参数

-r 删除目录(递归删除)

-f 强制删除

移动文件/目录(mv)


Usage: mv [OPTION]... [-T] SOURCE DEST

将文件/目录从 SOURCE 移动到 DEST。其中,SOURCE 和 DEST 可以是一个目录,也可以是一个文件。在移动的途中,可以完成重命名的操作。

  • 当 SOURCE 是目录,DEST 也必须是目录,表示把 SOURCE 整个目录移动到 DEST 下

    • 如果 DEST 是已经存在的目录的路径:直接把 SOURCE 这个目录移动到 DEST 下

    • 如果 DEST 中仅有最后一个目录不存在:把 SOURCE 这个目录移动到 DEST 下并重命名

    # 将 ~/dir_a 移动到 ~/dir_b,并重命名为 dir_c
    mv ~/dir_a ~/dir_b/dir_c # 仅有最后一个目录(dir_c)不存在
    
  • 当 SOURCE 是文件

    • 如果 DEST 是已经存在的目录的路径:直接把 SOURCE 这个文件移动到 DEST 下

    • 如果 DEST 中仅有最后一个文件不存在:把 SOURCE 这个文件移动到 DEST 下并重命名

    # 将 /var/log/auth.log 移动到 ~/test,并重命名为 test.log
    mv /var/log/auth.log ~/test/test.log # 仅有最后一个文件(test.log)不存在

创建文件(touch)


Usage: touch [OPTION]... FILE...

创建一个文件。

查看文件中的内容(cat)


Usage: cat [OPTION]... [FILE]...

查看文件中的内容。

查看历史输入的指令(history)


Usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]

不带任何参数使用时,可以查看历史输入过的指令。

参考资料


AcWing - Linux 基础课

题外话


emm,这个主题对于 MarkDown 的显示有点一言难尽...不过暂时也没有时间(其实也不会)折腾这一块儿,就先凑合用吧(逃

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注