Linux 文件、目录与磁盘格式

文件权限与目录配置


用户与用户组

  • 用户:即某个文件的拥有者,可以管理自己账号下的文件,另有一个超级账号 root,可以统一管理全局,利用 su root 命令登录该账号。
  • 用户组:相当于群组,多个用户之间可以组成用户组,组内数据可共享,并且对外不共享。

用户身份、用户组记录文件:
默认情况下,系统账号以及 root 的相关信息,都记录在 /etc/passwd 文件夹内,个人的密码记录在 /etc/shadow 文件夹内,所有的组名记录在 /etc/group 文件夹内。



文件权限

ls 命令可以列出当前目录下的所有文件,ls -al 则可以更详细的列出所有文件以及权限等信息。

  • 第一列代表文件类型与权限:
    • 第一列一共有 10 个字符
    • 第一个字符表示文件类型
      • 如果为 d 则是目录
      • 如果为 - 则是文件
      • 如果为 l 则表示链接文件
      • 如果为 b 表示设备文件里面的存储设备
      • 如果为 c 则表示串口设备,如键盘鼠标
    • 接下来的 9 个字符,三个为一组,且均为 rwx 三个参数组合,没有该权限则为 -。分别表示文件拥有者、用户组内其它账号、非本人且没有加入组的其它账号的权限。
  • 第二列表示有多少文件名链接到此节点。每个文件都会将它的权限与属性记录到文件系统的 inode 中,每个文件名会链接到一个 inode,这个属性就是记录有多少不同文件名链接到相同的 inode 号码。
  • 第三列表示文件拥有者的账号
  • 第四列表示文件的所属用户组
  • 第五列为文件大小(Bytes)
  • 第六列为创建日期或修改日期。这个时间如果距离现在太久,会仅显示年份,不具体到小时。如果想要显示完整的时间,可以使用 ls -l --full-time
  • 第七列为文件名,如果前面有 .,则为隐藏文件。

修改文件属性与权限

  • chgrp [-R] [group name] [file name]:修改文件所属用户组
  • chown [-R] [account name] [file name] or chown [-R] [account name]:[group name] [filename]:修改文件拥有者
  • chmod:修改文件的权限。方法有两种,分别是使用数字和使用符号。
    • 使用数字 chmod [-R] [number] [filename] :数字对照表关系为 r:4 w:2 x:1,这三种权限加起来为一个数,分别有三个数,来表示用户、用户组、其他人对应的权限。
    • 使用符号 chmod [u/g/o/a] [+/-/=] [r/w/x] [file name]

-R 表示递归,即连同该目录下的所有目录与文件一并修改



目录配置

FHS (Filesystem Hierarchy Standard) 标准用于规范每个特定的目录下应该要放置什么样的数据。

  • 根目录 /:根目录所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录在同一分区。
    • FHS 要求必须存在的目录
      • /bin:用于放置在单人维护模式下还能够被使用的命令
      • /boot:用于放置在启动时会使用到的文件,包括 Linux 内核文件、启动选项以及相关配置文件
      • /dev:任何设备都以文件的形式存放在这个目录。读写这个目录下的某个文件,就相当于读写某个设备。
      • /etc:存放系统主要的配置文件。另外 FHS 还规范几个重要的目录:
        • /etc/opt:必要。放置第三方辅助软件 /opt 的相关配置文件
        • /etc/x11:建议。与 X Window 有关的各种配置文件。尤其是 xorg.conf 这个 X server 的配置文件
        • /etc/sgml:建议。与 SGML 格式有关的配置文件
        • /etc/xml:建议。与 XML 格式有关的配置文件
      • /lib:存放在启动时会用到的函数库,以及 /bin/sbin 下的命令需要调用的函数库
      • /media:放置的是可删除的设备,如 软盘、光盘、DVD 的挂载
      • /mnt:用来暂时挂载一些额外设备,与 /media 相似
      • /opt:给第三方辅助软件放置的目录
      • /run:保存系统启动后产生的信息,可以使用内存来模拟
      • /sbin:系统启动过程中需要的,包括启动、修复、还原系统所需要的命令。某些服务器软件程序放置在 /usr/sbin 中,本机自行安装的软件所产生的系统执行文件放置在 /usr/local/sbin
      • /srv:一些网络服务启动后,需要使用的数据目录
      • /tmp:让一般用户或正在执行的程序暂时放置文件的地方。任何人都可存取,所以需要定期清理。
    • FHS 建议可以存在的目录
      • /home:系统默认的用户目录,此目录有两种代号:
        • ~:代表目前这个用户的家目录
        • ~username:代表 username 这个用户的家目录
      • /lib<qual>:用来存放与 /lib 不同的格式的二进制函数库,例如支持 64 位的 /lib64
      • /root:root 的家目录
    • FHS 没有规定,但仍重要的目录
      • /proc:一个虚拟文件系统,它的内容储存在内存中。存储系统内核、进程信息、外接设备的状态、网络状态
      • /sys:虚拟文件系统,记录内核和系统硬件信息
  • /usr:UNIX Software Resource 内部数据不可分享、不可变动。是 UNIX 操作系统软件资源所放置的目录,所有软件的数据应该合理的放置在此目录下的子目录中
    • FHS 要求必须存在的目录
      • /usr/bin:所有一般用户能够使用的命令。FHS 要求在此目录下不能有子目录
      • /usr/lib:与 /lib 相同,由其链接到该目录
      • /usr/local:系统管理员在本机将自己的软件安装到此目录
      • /usr/sbin:非系统正常运行所需要的命令。由 /sbin 链接到此目录
      • /usr/share:放置只读的数据文件,不分系统架构都可读取的文本文件,以及共享文件
        • /usr/share/man:在线帮助文件
        • /usr/share/doc:软件的说明文档
        • /usr/share/zoneinfo:与时区有关的时区文件
    • FHS 建议可以存在的目录
      • /usr/games:与游戏相关数据
      • /usr/include:C/C++ 等语言的头文件和包含文件,在我们用 Tarball(*.tar.gz)的方式安装软件时会用到
      • /usr/libexec:不被一般用户常用的执行文件和脚本
      • /usr/lib<qual>:由 /lib<qual> 链接到此目录
      • /usr/src:一般将源代码放置在这里,内核源代码放在 /usr/src/Linux
  • /var:该目录主要存放在系统运行时经常变动的内容,包括缓存和日志以及一些运行产生的文件
    • FHS 要求必须存在的目录
      • /var/cache:应用程序缓存
      • /var/lib:执行过程中需要用到的数据文件,此目录下各软件有各自的目录
      • /var/lock:某些设备或资源的进程锁
      • /var/log:日志文件,非常重要
      • /var/mail:放置个人电子邮箱,该目录与 /var/spool/mail 互为链接
      • /var/run:某些程序或服务启动后,会将它们的 PID 放在此目录下,此目录链接到 /run
      • /var/spoot:放置一些队列数据

文件与目录管理


相关指令

目录相关

  • cd:切换目录
  • pwd:显示当前目录
  • mkdir:建立一个新目录
  • rmdir:删除一个空目录

环境变量 $PATHPATH = "${PATH}:dir" 可以将 dir 路径添加到环境变量。不同身份的用户默认的 PATH 不同。目录 . 最好不要放到环境变量中。

文件相关

  • cp:复制
    • -i:若目标文件存在,则会在覆盖时进行询问
    • -l:进行硬链接的链接文件建立
    • -p:连同属性一起复制(权限、用户、时间),备份常用
    • -r:递归复制,用于目录
  • rm:删除
  • mv:移动
  • basename:获得文件名
  • dirname:目录名

查看文件内容

  • cat:直接查看一个文件的内容
    • -n:打印出行号
  • tac:反向打印
  • nl:添加行号,比 cat -n 好看
  • more:一页一页的翻页查看
    • 空格:下一页
    • 回车:向下翻一行
    • /字符串:向下查找
    • :f:显示文件名和行数
    • q:退出
    • b:往前翻一页
  • less:比 more 灵活一些

非纯文本文件

  • od


命令与文件查找

  • which [-a] [command]:在环境变量内查找某一命令,-a 将所有找到的命令列出,而不是第一个
  • find:全局搜索,速度很慢
  • whereis [-lbmsu]:主要查找 /bin/sbin 以及 /usr/share/man 下面的 man page 文件
    • -l:确认 whereis 查找了多少目录
    • -b:只找 binary 格式文件
    • -m:只找在说明文件 manual 路径下的文件
    • -s:只找 source 源文件
    • -u:查找不在上面三个项目当中的其它特殊文件
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SP FA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值