Linux文件系统介绍与操作

本文介绍 Linux 文件系统及常用的文件操作相关的命令, 了解虚拟目录根目录下的文件夹的作用.

关于 Linux 文件系统的常识

  • Linux 在路径名中不使用驱动器盘符
  • Linux 将文件存储在单个目录结构中, 这个目录叫虚拟目录
  • Linux 会在根驱动器上创建一些特别的目录, 我们称之为挂载点. 挂载点是虚拟目录中用于分配额外存储设备的目录. 虚拟目录会让文件和目录出现在这些挂载点目录中, 然而实际上它们却存储在另外一个驱动器中.

常用文件操作命令

文件目录查看

  • pwd: 显示 shell 会话的当前目录
  • ls: 显示当前目录下的文件和目录
    • -F: 会在目录名后面加上正斜线(/)
    • -a: 显示隐藏文件
    • -R: 显示递归选项, 显示子目录下所有的文件
    • -l: 列表显示附加信息
    • -i: 查看文件或目录的 inode 编号
    • ls test: 过滤输出
      • ls t?st: ‘?’ 代表匹配一个字符
      • ls t*st: ‘*‘ 代表匹配零个或多个字符
      • ls t[ai]st: 匹配 tast 或 tist
      • ls t[a-i]st: 匹配 tast ~ tist 所有字符
      • ls t[!a]st: 匹配 除了 tast 其他所有字符
    • --time=atime: 查看文件的访问时间

文件创建/复制/移动

  • touch: 创建文件, 还可以改变文件的修改时间
    • touch -a: 只修改文件的访问时间
  • cp test_one test_two: 复制一个 test_one 文件, 并命名为 test_two
    • cp -i test_one test_two: 询问是否覆盖
    • cp /home/test_one .: 将/home/test_one文件复制到当前目录
    • cp -R test_one/ test_two: 递归复制整个 test_one 下的内容到 test_two
    • cp test_? test_two: 使用通配符, 将前缀是’test_‘的所有文件都复制到’test_two’文件夹下
  • ln: 创建链接文件
    • ln test_one sl_test_one: 创建硬链接, 与原始文件相比, inode 编码相同, 文件大小相同, 只有统一存储媒体的文件才可创建, 是同一个文件
    • ln -s test_one sl_test_one: 创建符号链接, 与原始文件相比, inode 编码不同, 文件大小不同, 可以跨存储媒体创建, 与原始文件是两个不同的文件, 仅仅指向原始文件
  • mv test_one test_two: 将文件’test_one’重命名为’test_two’
  • rm: 删除文件
  • mkdir: 创建目录
    • -p: 同时创建多个目录和子目录
  • rmdir: 删除目录(只能删除空目录
    • -r: 删除子目录及目录本身(带提示)
    • -rf: 删除子目录及目录本身(不带提示)

查看文件

  • file: 查看文件类型
  • cat: 查看某个文件
    • -n: 显示行号
    • -b: 只给有文本的行显示行号
    • -T: 不显示制表符
  • more: 查看文件 显示一页
  • less: 查看文件 可以上下翻页
  • tail: 显示文件的最后 10 行
    • tail -n 2 test_file: 显示文件的最后 2 行
    • -f: 支持在其他进程使用该文件时查看文件内容. 用途:比如实时监测系统日志
  • head: 显示文件的开头 10 行
    • heand -2 test_file: 显示文件的开头 2 行, head 也可这样缩写

常见 Linux 目录名称

目录 用途
/ 虚拟目录的根目录, 通常不会再这里存储文件
/bin 二进制目录, 存放许多用户级的 GNU 工具
/boot 启动目录, 存放启动文件
/dev 设备目录, Linux 在这里创建设备节点
/etc 系统配置文件目录
/home 主目录, Linux 在这里创建用户目录
/lib 库目录, 存放系统和应用程序的库文件
/media 媒体目录, 可移动媒体设备的常用挂载点
/mnt 挂载目录, 另一个可移动媒体设备的常用挂载点
/opt 可选目录, 常用于存放第三方软件包和数据文件
/proc 进程目录, 存放现有硬件及当前进程的相关信息
/root root 用户的主目录
/sbin 系统二进制目录, 存放许多 GNU 管理员级工具
/run 运行目录, 存放系统运作时的运行时数据
/srv 服务目录, 存放本地服务的相关文件
/sys 系统目录, 存放系统硬件信息的相关文件
/tmp 临时目录, 可以在该目录中创建和删除临时工作文件
/usr 用户二进制目录, 大量用户级的 GNU 工具和数据文件都存储在这里
/var 可变目录, 用以存放经常变化的文件, 比如日志文件