推荐书籍:刘遄老师的《Linux就该这么学》
一、存储结构
在Linux系统中,一切都是文件,目录、字符设备、块设备、网络设备等都被抽象为文件。
Linux系统中,一切文件都是从“根(/)“目录开始的,并按照文件系统层次化标准(FHS,Filesystem Hierarchy Standard)采用树形结构来存放文件,以及定义目录的用途。
注1:Linux系统中,文件和目录名称是严格区分大小写的,并且文件名称中不得包含斜杠(/)。
注2:FHS是Linux系统用户及开发者经验总结,在Linux系统中存储文件时需要遵守的规则。
目录名称 | 对应内容 |
---|---|
/ | 虚拟目录的根目录,通常不会在这里存储文件。 |
/bin | 存放所有用户可以操作的命令 |
/boot | 开机所需文件——内核、开机菜单以及所需配置文件等 |
/dev | 以文件形式存放的任何设备和接口 |
/etc | 配置文件 |
/home | 用户家目录 |
/lib | 开机时用到的函数库,以及/bin和/sbin下面命令需要调用的函数 |
/media | 通常用于挂载可移动媒体设备挂载目录 |
/mnt | 通常用于挂载文件系统相关存储设备挂载目录 |
/opt | 用于放置第三方的软件 |
/proc | 虚拟文件系统,例如系统内核、进程、外部设备及网络状态 |
/root | 系统管理员的家目录 |
/sbin | 开机过程中需要的命令 |
/run | 运行目录,存放系统运行时的运行时环境 |
/srv | 服务目录,存放系统本地服务的相关文件 |
/tmp | 临时目录,存放系统运行或用户所需的临时文件 |
/usr/local | 用户自行安装的软件 |
/usr/sbin | Linux系统开机时不会使用到的软件/命令/脚本 |
/usr/share | 帮助与说明文件,也可以放置共享文件 |
/var | 主要存放经常变化的文件,如日志 |
二、文件权限
在Linux系统中,对于所有的文件,使用不同的字符区分文件的类型。
符号 | 类型 |
---|---|
- | 普通文件 |
d | 目录文件 |
l | 链接文件 |
b | 块设备文件 |
c | 字符设备文件 |
p | 管道文件 |
在Linux系统中,每个文件都有所属的所有者和所有组,并且规定了文件所有者、所有组以及其他人对文件可以拥有可读®、可写(w)、可执行(x)权限。 | |
对于一般文件来说: |
- 可读:表示能够读取文件的实际内容。
- 可写:表示能够在目录内新增、删除、重命名文件。
- 可执行:表示能够运行一个脚本程序。
对于目录文件来说: - 可读:表示能够读取目录中的文件列表。
- 可写:表示能够在目录中新增、删除、重命名文件。
- 可执行:表示能够进入该目录。
文件的读、写、执行权限可以简写为rwx,亦可分别用数字4、2、1来表示。对于数字表示法,使用权限的数字表示的累加和表示文件权限。如权限7表示可读、可写、可执行权限;权限6表示可读、可写权限。
注:文件所有者、所属组及其他用户权限间没有关联。
权限分配 | 文件所有者 | 文件所有者 | 文件所有者 | 文件所属组 | 文件所属组 | 文件所属组 | 其他用户 | 其他用户 | 其他用户 |
---|---|---|---|---|---|---|---|---|---|
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
字符表示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
基于树莓派系统上,执行“ls -l /”命令后查看长列表信息,运行结果如下。 |
pi@raspberrypi:~ $ ls -l /
total 71
drwxr-xr-x 2 root root 4096 Jul 19 2020 bin
drwxr-xr-x 3 root root 2560 Jan 1 1970 boot
drwxr-xr-x 15 root root 3620 Mar 23 23:17 dev
drwxrwxrwx 111 root root 4096 Mar 8 22:47 etc
drwxr-xr-x 3 root root 4096 Apr 25 2020 home
drwxr-xr-x 16 root root 4096 Apr 8 2019 lib
drwxr-xr-x 3 root root 4096 Mar 6 11:40 media
drwxr-xr-x 2 root root 4096 Apr 8 2019 mnt
drwxr-xr-x 4 root root 4096 Apr 8 2019 opt
dr-xr-xr-x 121 root root 0 Jan 1 1970 proc
drwx------ 5 root root 4096 Mar 10 22:17 root
drwxr-xr-x 26 root root 800 Mar 24 00:00 run
drwxr-xr-x 2 root root 4096 Mar 6 10:09 sbin
drwxr-xr-x 2 root root 4096 Apr 8 2019 srv
dr-xr-xr-x 12 root root 0 Mar 27 17:17 sys
drwxrwxrwt 8 root root 4096 Mar 27 17:17 tmp
drwxr-xr-x 11 root root 4096 Apr 8 2019 usr
drwxr-xr-x 11 root root 4096 Apr 8 2019 var
对于一个文件,“ls -l”命令共列出了7列信息,其中:
- 第一列共有10个字符,第一个字符表示文件类型,其他九个字符分别表示所有者、所属组、其他用户拥有的访问权限;
- 第二列表示文件的硬链接总数;
- 第三列表示文件所有者的名称;
- 第四列表示文件所属组的名称;
- 第五列表示文件大小(以字节为单位);
- 第六列表示文件上次修改的时间;
- 第七列表示文件的名称。
三、相关命令
命令 | 作用 |
---|---|
useradd | 创建新用户 |
userdel | 删除指定用户 |
usermod | 修改现有用户信息 |
passwd | 修改用户密码、认证等信息 |
groupadd | 创建新组 |
groupdel | 删除现有空组(无用户) |
groupmod | 修改现有组信息 |
chmod | 修改文件权限信息 |
chown | 修改文件属主信息 |
chgrp | 修改文件属组信息 |