Linux 文件目录管理
文件信息显示
ls -al
:用于显示文件的所有信息。
依次是:文件权限类型/链接数/文件所有者/文件所属群组/文件大小/文件最后修改时间/文件名,在 Linux 下,文件夹也是一个文件(类型为 d)。
文件类型由十个字符组成。
分别为:文件类型/文件所有者权限/文件所属群组权限/其他人权限。
权限由三个字符组成。
分别为:可读/可写/可执行。
文件类型:d(目录)/ -(文件)/ l(链接)/ b(存储设备)/ c(串行端口设备)
文件权限更改
chgrp
:改变文件所属群组,组名必须要在 /etc/group 文件中存在。
chown
:改变文件拥有者,如果需要连目录下的所有子目录或文件同时更改所有者,需要使用 -R 选项。此外,用户名需要在 /etc/passwd 文件中存在。
chmod
:改变文件权限,我们知道权限由三部分组成,文件所有者权限/文件所属群组权限/其他人权限,每一个部分可以看作一个二进制数,三个部分所对应的十进制数字代表了这个文件的最终权限。例如:770(rwxrwx---)、777(rwxrwxrwx)。除了可以使用数字进行更改外,也可以使用符号进行更改,u/g/o/a(用户/组/其他/所有),+/-/=(加入/删除/设定),rwx。chmod u=rwx,go=rx .bashrc
。
权限的意义
对于文件来说,r(可读)表示可以读取此文件的实际内容,w(可写)表示可以编辑、新增或者是修改该文件的内容(不含删除文件),x(可执行)表示文件能够被执行。
对于目录来说,r(可读)表示可以读取目录下的文件名,w(可写)表示可以改变目录结构列表(创建活删除文件和目录),x(可执行)表示用户可以进入该目录(工作目录)。
chmod u=rwx,go=rx .bashrc
Linux 目录结构
/(根目录)目录下
目录名 | 文件内容 |
---|---|
/bin | 存放单人维护模式下能够被操作的指令 |
/boot | 放置开机会使用到的文件 |
/dev | 装置和接口设备 |
/etc | 系统主要的配置文件 |
/lib | 系统的函数库 |
/media | 可移除的设备(CDROM) |
/mnt | 暂时挂载的设备 |
/opt | 存放第三方软件 |
/run | 开机后产生的各项信息 |
/sbin | 存放只有 root 用户才能使用的执行的指令 |
/srv | 存放服务所需的数据目录 |
/tmp | 暂时存放文件的地方 |
/home | 系统默认家目录,每个使用者都会将家目录规范到这个文件夹 |
/root | 系统管理员(root)的家目录 |
/lost+found | 使用日志文件系统格式产生的目录,存放当文件系统发生错误产生的遗失片段 |
/proc | 此目录的数据都在内存,不会占用任何硬盘空间,系统状态信息 |
/sys | 与 /proc 类似,记录核心与系统硬件信息相关的信息 |
/usr 目录下
目录名 | 文件内容 |
---|---|
/usr/bin | 所有一般用户都能使用的命令(centos 7 中与 /bin 目录一样) |
/usr/lib | 与 /lib 目录基本一致 |
/usr/local | 存放系统管理员自行安装的软件 |
/usr/sbin | 与 /sbin 目录基本一致 |
/usr/share | 存放只读架构的数据文件 |
/var 目录下
与 /usr 目录不同的是,/var 目录是在系统运作后才渐渐占用硬盘容量,而 /usr 是安装时会占用较大硬盘容量。/var 目录主要针对常态性变动的文件,包括缓存(cache)、日志(log file)以及某些软件运行所产生的文件。
终端显示文件内容
cat/tac/nl(可以显示行号)/more(向后翻页)/less(可以向后向前翻)/head(截取前 n 行)/tail(截取后 n 行)/od(一般来说针对非文本文件,可以 ASCII/各种进制来输出文件内容)
修改文件内容
对于一个文件,有三个时间,分别是 mtime(修改时间,内容变更)/ctime(权限或属性更改时变更)/atime(访问时变更)。使用 touch 指令可以修订文件的时间(atime 和 ctime)。
文件权限
umask(显示预设权限,该默认值为需要减掉的权限)。用户在创建文件和文件夹的时候默认权限属性是不同的。
- 文件默认没有 x 权限,因此最大为 rw-rw-rw-(666)。
- 文件目录默认为所有权限,因此最大为 rwxrwxrwx(777)。
特殊文件权限
Set UID:出现在文件拥有者的 x 权限上,简称 SUID 权限,仅可用于二进制程序上,不能用在 shell 脚本上。通过 SUID 程序可以取得临时的 root 权限,举个例子:
/etc/shadow 的权限为 rw-r-----,仅有 root 用户具有修改权限,那么普通用户修改密码是通过 passwd 指令,passwd 的权限为 rwsr-xr-x,即普通用户具有可执行权限,使用 SUID,普通用户在执行 passwd 时可以暂时获得 root 权限用于修改 shadow 文件。
Set GID:出现在群组的 x 权限上,简称 SGID 权限,与 SUID 类似,使用 SGID 普通用户可以获得文件所属组的支持。
Sticky Bit:SBIT 只针对目录有效。如果目录被加上了 SBIT 的权限时,则用户只能够针对自己建立的文件或目录进行删除/更名/移动操作,而无法删除他人的文件。
文件的搜寻
可执行文件搜寻:which,根据 $PATH 环境变量指定的目录进行搜寻。
普通文件搜寻:whereis(只搜索特定目录,bin/man/src)。locate(针对已建立的数据库进行搜寻,根据发行版的不同,数据库更新的周期也不相同)。find(直接从磁盘中搜寻)