Linux | 文件系统 & 权限

§1 综述

  • Linux 的文件系统采用层级式树状目录结构
  • Linux 的文件系统的最上层是根目录 “/”
  • Linux 是一个文件至上的系统,“一切皆文件
§1.1 一切皆文件

一切皆文件是 Linux 系统的设计理念,即将系统中的一切都挂在文件系统上
系统中的一切 包括 Linux 中任意资源、信息、概念。比如正常的文件和目录,以及比较抽象的进程(/proc)、设备(/dev)、Socket等
挂在文件系统上 的意思是上述内容都可以通过文件的形式存在或呈现(即使其中有些不是文件)。
挂在文件系统上意味:

  • 可以通过访问文件的方式访问上述内容,甚至修改属主和属性。
  • 对系统的操作最终都会在文件系统上有相关呈现,比如为 Linux 增加了一个硬件。
  • 不能反向理解上一条,不能通过操作系统中的相关文件,实现所有功能,比如新建文件试图同时创建一个新磁盘

此处内容的文字参考自 知乎(Linux中“一切皆文件”是什么意思?)


§2 Linux 常见默认目录与简介

§2.1 概述图

在这里插入图片描述

§2.2 详情
  • /bin
    bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
  • /boot
    这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
  • /dev
    dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
  • /etc
    etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
  • /etc/rc.d
    启动的配置文件和脚本
  • /home
    用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
  • /lib
    lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
  • /lost+found
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  • /media
    linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
  • /mnt
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
  • /opt
    opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
  • /proc
    proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • /root
    该目录为系统管理员,也称作超级权限者的用户主目录。
  • /sbin
    s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
  • /selinux
    这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
  • /srv
    该目存放一些服务启动之后需要提取的数据。
  • /sys
    这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
    sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
    该文件系统是内核设备树的一个直观反映。
    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
  • /tmp
    tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
  • /usr
    usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
    • /usr/X11R6 存放X window的目录
    • /usr/bin 系统用户使用的应用程序
    • /usr/sbin 超级用户使用的比较高级的管理程序和系统守护程序
    • /usr/doc linux文档
    • /usr/include linux下开发和编译应用程序所需要的头文件
    • /usr/lib 常用的动态链接库和软件包的配置文件
    • /usr/man 帮助文档
    • /usr/src 内核源代码默认的放置目录,linux内核的源代码就放在/usr/src/linux里
    • /usr/local/bin 本地增加的命令
    • /usr/local/lib 本地增加的库
  • /var
    var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
  • /run
    是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
§2.3 需要区分的目录

/opt /usr /usr/local 都用于安装软件,/usr 和 /usr/local 具有相同的结构
/opt 中安装的软件会将所有的数据、库文件等都放在一个目录中,方便卸载。常用于尝试软件
/usr 常用于存放通过安装管理器获取的软件
/usr/local 常用于存放手动安装的软件


§3 文件的所有者、所在组、其他组

linux中每一个文件/目录,按照系统操作人对其的亲疏远近,划分了三个层次,分别为:

  • 所有者
  • 所在组(的用户)
  • 其他组(的用户)
    在这里插入图片描述
    所有者通常是创建文件/目录的用户,
    所有组通常是所有者所在的组,
    其他组是所在组以外的组,
    文件/目录的所有者和所有组可以通过 chown(change owner) 指令修改
    相关指令查看 Linux 常用指令(§10.3)

文件/目录的所有组可以通过 chgrp(change group) 指令修改
相关指令查看 Linux 用户管理(§2.7)

§4 权限

§4.1 权限说明

Linux 的权限,通常是指对文件和目录的权限
权限的表示如下图:
在这里插入图片描述
Linux 每个文件/目录通常有三组权限,依次为:

  • 所有者 对其的权限
  • 所在组的用户 对其的权限,文件/目录的所在组 ≠ 所有者所在的组,groupmod 可修改
  • 其他组的用户 对其的权限

每组权限有三个权限位,每位上具体标记和含义:

  • r位 :read 读
    • 文件:可读取,查看
    • 目录:可读取,可以用 ls 查看目录内容
  • w位 :write 写
    • 文件:可以修改,但不一定能删除、移动,这要求对文件所在目录具有写权限
    • 目录:可以目录内创建、删除,可以对目录重命名
  • x位 :execute 执行
    • 文件:可以被执行
    • 目录:可以进入目录
  • - :没有上述三种权限时,在对应位记做 -

权限的数字表示法

  • 将三个权限位视为一个三位的2进制数,则 r位权重4,w位权重2,x位权重1
  • 每个权限位上的权限,具有时计算为此位权重,不具有时计算为 0
  • 三个权限位的值求和即为这一组权限的数字表示
  • 三组权限按3位数表示,如751
  • 通常项目下权限为 755 ,即 rwx r-x r-x
  • 可按下表速查
数字权限
0- - -
1- - x
2- w -
3- w x
4r - -
5r - x
6r w -
7r w x
§4.2 chmod [修改权限]

全称:change mode 改变模式
指令chmod 赋权表达式1,赋权表达式2… 文件/目录名
说明:

  • 赋权表达式由 目标、操作、权限组成
  • 目标
    • u :所有者
    • g :所在组
    • o :其他组
    • a :全部,同时所有者、所在组、其他组
  • 操作
    • + :原权限基础上增加权限
    • - :原权限基础上减少权限
    • = :重新赋予权限,忽略原有权限
  • 权限,即 r w x -
  • 三种操作方式可以混用
    在这里插入图片描述在这里插入图片描述
    指令chmod 权限数字 文件/目录名,如 chmod 755 aa
    说明:参考上文内容 权限的数字表示法

§5 软件安装位置

linux 通常将软件放在以下三个地方

  • /opt
  • /usr
  • /usr/local

首先将同一个软件放到这三个地方后,使用上没什么区别
其他方面的差别如下

/opt 下的软件,其数据、配置、程序都是放在一起的,因此非常容易对他们进行移动和删除
因此非常适合放置如下软件

  • 你只是在单纯的尝试或学习某种软件
  • 只是临时使用,后面就不需要了的软件
  • 在关键时刻,可以用来牺牲以腾出一定的磁盘空间的软件

/usr 下通常用于存放自动获取的软件,比如通过 rpm 获取的
/usr/local 此目录下结构和 /usr 一致,适合放置自己手动安装的的软件,比如自己通过源码编译的或通过压缩包解压的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值