Qin darkstone
Linux的文件概念

Linux的文件概念

Linux的文件概念

  • 文件挂载

    • 将设备文件中的顶级目录i连接到Linux根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。
    • 比如主硬盘,挂载点被设定为/根目录
  • 所有文件都位于根目录(/)下

    • /bin 可执行二进制文件的目录,如常用命令ls,tar,mv,cat等,实际上是一些小的应用程序
      • ls 查看目录
      • ll 查看详细信息
    • /home普通用户的主目录,对应windows下的c盘users
    • /root root用户的主目录(root用户是具有最高权限的用户)
    • /boot 内核文件的引导目录,放置linux系统启动时所用的文件
    • /sbing 超级用户使用的指令文件
    • /tmp 临时文件目录,一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
    • /dev 设备文件目录,在linux中万物皆文件,实际上插入的U盘等设备都会在dev目录下生成一个文件,可以很方便的通过文件IO方式去操作外设,对嵌入式开发极为友好
    • /lib 共享库,系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
    • /usr 第三方程序目录
    • /etc 配置程序目录,系统配置文件存放的目录
    • /var 可变文件,放置系统执行过程中经常变化的文件
    • /opt 用户使用目录,给主机额外安装软件所摆放的目录
  • 文件列表

    1
    2
    3
    4
    5
    6
    7
    8
    9
    drwxr-xr-x  4 root         root               4096 3月   2 11:21 ..
    drwxr-xr-x 2 qindarkstone qindarkstone 4096 3月 2 19:24 公共的
    drwxrwxr-x 31 qindarkstone qindarkstone 4096 3月 2 15:07 anaconda3
    -rw------- 1 qindarkstone qindarkstone 4805 3月 3 00:00 .bash_history
    -rw-r--r-- 1 qindarkstone qindarkstone 220 3月 2 11:21 .bash_logout
    drwxrwxr-x 2 qindarkstone qindarkstone 4096 3月 2 15:28 .conda
    -rw-rw-r-- 1 qindarkstone qindarkstone 23 3月 2 15:24 .condarc
    drwx------ 22 qindarkstone qindarkstone 4096 3月 2 22:43 .config
    drwxrwxr-x 3 qindarkstone qindarkstone 4096 3月 2 15:24 .continuum
    • 第一栏字符串用于表示文件的属性

      • 第一个字符表示此文件的类型

        • -表示普通文件
        • l为链接文件
        • d表示目录(文件夹)
        • c表示字符设备
        • b表示块设备
        • 还用用于进程间通信使用的:p有名管道,f堆栈文件,s套接字等
      • 第2-4个字符表示文件的拥有者(User)对该文件的权限

      • 第5-7个字符表示文件所属用户组(Group)内用户对该文件的权限

      • 最后8-10个字符表示其他用户(Other)对该文件的权限

      • 顺序为UGO

        • r为读权限,如获取目录列表
        • w为写权限,如在目录中新建文件
        • x为执行权限
    • 第二栏是一列数字,表示文件创建的链接文件(快捷方式)的数量

      • 一般1表示只有当前文件
    • 第三栏为该文件或是目录的拥有者

    • 第四栏数据表示所属的组

    • 第五栏数据表示文件大小,以字节为单位

    • 第六栏数据为文件的最后一次修改时间

    • 最后一栏为文件名称

      • ../表示上级目录
      • ./表示当前目录
      • 最前面有一个.开头的文件为隐藏文件
  • 常用文件操作命令

    • mkdir(make directory)创建目录

    • touch更新或创建文件

    • ls(list):列出所有文件

      • -a(all) 列出隐藏文件(以.开头的都是隐藏文件)
      • -l(long)列出文件详细信息,文件类型(例如:普通文件、目录、链接等),权限(例如:读、写、执行权限),所有者,所属组,文件大小(以字节为单位),最后修改时间,文件名或目录名,功能与ll相同
      • alias列出相关操作别名
    • ln创建链接文件(硬链接或符号链接)

      • 创建硬链接:ln [选项] 目标文件 链接名称

      • 创建符号链接:ln -s [选项] 目标文件 链接名称

    • cp复制文件或目录

      • cp [选项] 源文件或目录... 目标目录
        • -r对目录文件夹中的所有文件进行递归复制。即复制整个目录
    • mv移动或重命名文件和目录

      • 移动 mv ol
      • ddir /home/user/newlocation/
      • 重命名 mv oldfile.txt newfile.txt
    • rm删除命令

      • rm -rf /*表示删除根目录下所有的文件
        • -f表示强制删除文件或忽略不存在的文件
        • *为通配符,表示任意文件
    • find进行文件的搜索,支持通配符

    • chmod对文件属性进行修改

      • chmod [选项] 模式 文件或目录...
        • chmod u+x,g-w file.txt会为文件 file.txt 的所有者添加执行权限,同时移除所属组的写权限。
        • 还有数字表示法:r=4,w=2,x=1,需要什么权限就让对应权限的数字相加,一个数字表示一个rwx 的权限状态,比如想修改为 -rw-rw-r-,对应的数字就是664
    • chownchgrp修改文件的拥有着或是所属组

Author:Qin darkstone
Link:https://qindarkstone.github.io/2024/01/21/Linux/文件操作/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可