一、文件管理
1.文件系统得目录结构
1.1 文件系统的目录结构
/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录
/home/USERNAME:普通用户家目录
/root:管理员的家目录
/media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/dev:设备文件及特殊文件存储位置
b: block device,随机访问
c: character device,线性访问
/opt:第三方应用程序的安装位置
/srv:系统上运行的服务用到的数据
/tmp:临时文件存储位置
/usr: universal shared, read-only data
bin: 保证系统拥有完整功能而提供的应用程序
sbin:
lib:32位使用
lib64:只存在64位系统
include: C程序的头文件(header files)
share:结构化独立的数据,例如doc, man等
local:第三方应用程序的安装位置
bin, sbin, lib, lib64, etc, share
/var: variable data files
cache: 应用程序缓存数据目录
lib: 应用程序状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据
lock: 锁文件
log: 日志目录及文件
opt: 专用于为/opt下的应用程序存储可变数据
run: 运行中的进程相关数据,通常用于存储进程pid文件
spool: 应用程序数据池
tmp: 保存系统两次重启之间产生的临时数据
/proc: 用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置
1.2 Linux下的文件类型
- 普通文件
d 目录文件
b 块设备
c 字符设备
l 符号链接文件
p 管道文件pipe
s 套接字文件socket
注:文件系统目录结构需要理解,不能只是记忆,灵活运用才是关键。
2.文件操作命令
1.绝对和相对路径需要重点掌握,理解绝对和相对的含义,在什么情况下用哪个才是关键。
2. 更改目录命令 cd
切换至父目录: cd …
切换至当前用户主目录: cd
切换至以前的工作目录: cd -
…也可以理解为通配符,一个.表示当前目录。
- ls 命令可以列出当前目录的内容或指定目录
- 查看文件状态 stat
- 确定文件内容 file
- 文件通配符可以用来匹配符合条件的多个文件,方便批理管理文件。需要多多练习
- 创建空文件和刷新时间。touch
- 复制文件和目录 cp
- 移动和重命名文件 mv
- 删除文件 rm
rm 为危险命令,可以用别名定义为mv从而避免误操作
3.文件目录操作命令
- 显示目录树 tree
- 创建目录 mkdir
- 删除目录 rmdir
4.文件元数据和节点表结构
- inode表结构
每个文件的属性信息,比如:文件的大小,时间,类型等,称为文件的元数据(meta data)。这此元数
据是存放在node(index node)表中。node 表中有很多条记录组成,第一条记录对应的存放了一个文
件的元数据信息 - 硬链接 ln
- 符号(或软)链接
- 硬链接和软链接区别总结
- 本质:
硬链接:本质是同一个文件
软链接:本质不是同一个文件 - 跨设备
硬链接:不支持
软链接:支持 - inode
硬链接:相同
软链接:不同 - 链接数
硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
软链接:创建或删除,链接数不会变化 - 文件夹
硬链接:不支持
软链接:支持 - 相对路径
硬链接:原始文件相对路径是相对于当前工作目录
软链接:原始文件相对路径是相对于链接文件的相对路径 - 删除源文件
硬链接:只是链接数减一,但链接文件的访问不受影响
软链接:链接文件将无法访问 - 文件类型
ln -s filename [linkname] #绝对路径 ln -s /data/dir /data/dirlink #相对路径 cd /data ln -s …/data/dir /root/dirlink rm -rf /data/dirlink #删除软链接本身,不会删除源目录内容 rm -rf /data/dirlink/ #删除源目录的文件,不会删除链接文件
硬链接:和源文件相同
软链接:链接文件,和源文件无关
5.标准I/O重定向和管道
- 标准输入和输出
程序:指令+数据
读入数据:Input
输出数据:Output
打开的文件都有一个fd: file descriptor (文件描述符)
Linux给程序提供三种 I/O 设备
标准输入(STDIN) -0 默认接受来自终端窗口的输入
标准输出(STDOUT)-1 默认输出到终端窗口
标准错误(STDERR) -2 默认输出到终端窗口 - I/O重定向redirect
- tr 命令 转换和删除字符
- 利用“<” 可以将标准输入重定向
- 使用 “<<终止词” 命令从键盘把多行重导向给STDIN,直到终止词位置之前的所有文本都发送给
STDIN,有时被称为就地文本(here documents) - 管道(使用符号“|”表示)用来连接多个命令
- 管道中有时会使用 - 符号
- 利用tee命令可以重定向到多个目标
二、文件权限及用户、组
- 用户和组的主要配置文件
/etc/passwd:用户及其属性信息(名称、UID、主组ID等)
/etc/shadow:用户密码及其相关属性
/etc/group:组及其属性信息
/etc/gshadow:组密码及其相关属性 - 用户和组管理命令
用户管理命令
useradd
usermod
userdel
authconfig --passalgo=sha256 --update
组帐号维护命令
groupadd
groupmod
groupdel - gpasswd -a user 将user添加至指定组中
- newgrp命令可以临时切换主组, 如果用户本不属于此组,则需要组密码
- groupmems可以管理组成员关系
- chown 命令可以修改文件的属主,也可以修改文件属组
- chgrp 命令可以只修改文件的属组
- 每个文件针对每类访问者都定义了三种权限
r Readable
w Writable
x eXcutable - 对目录的权限:
r 可以使用ls查看此目录中文件列表
w 可在此目录中创建文件,也可删除此目录中的文件
x 可以使用ls -l查看此目录中文件元数据(须配合r),可以cd进入此目录
X 只给目录x权限,不给无执行权限的文件x权限 - 修改文件权限chmod
- umask的值可以用来保留在创建文件权限
- 特殊权限SUID
特殊权限SGID
特殊权限 Sticky 位 - 设置文件的特殊属性,可以访问root 用户误操作删除或修改文件
不能删除,改名,更改
只能追加内容
显示特定属性
范例:
4.6 访问控制列表
4.6.1 ACL权限功能
chattr +i - ACL:Access Control List,实现灵活的权限管理
除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
CentOS7 默认创建的xfs和ext4文件系统具有ACL功能
CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加 - 主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 参数。但是tar等常见的备份工具是不
会保留目录和文件的ACL信息