文件系统
在Linux中,一切都是文件,linux所有存储空间和设备共享一个根目录
1文件的层次结构
## 1.1树形文件结构
apt install tree
tree /home
目录是逻辑上分区,分区是物理上分区,创建分区 提升搜索效率
1.2路径名
1.2.1绝对路径
从根目录开始计算
#打印当前工作路径
pwd
1.2.2相对路径
相对于当前路径而言
1.2.2.1四种表示方法
- ./doc 当前路径 .
- ../log 父路径..
- ~chun 某个用户的主目录
- ~ 当前用户主目录
好处:不受绝对路径的限制 配置文件常用
简化路径的输入
改变当前工作路径
cd
常见的系统目录
cdrom 光盘挂载点
media 移动介质的挂在点
mnt 文件系统的临时挂载点
opt 可选程序的安装
sys 各种系统配置信息
var(日志文件 根目录的子目录)和 usr
dev 当前设备支持的所有设备文件 sda 第一个磁盘 mem系统物理内存
etc linux 控制中心
2文件类型
2.1普通文件
文件名256字内
文件名 由 字母 数字 点 下划线 连字符
2.1.1.纯文本文件
2.1.2.二进制文件 可执行文件几乎都是二进制文件 cp cat su rm 不能直接阅读,而是给计算机执行
shell属于文本文件
2.1.2.3.其他特定数据格式的文件 Mysql数据库文件 只能通过Mysql管理系统来读取和修改 ll
file命令查看文件的具体属性
file /etc/profile
2.2目录文件 开头显示d
ll | grep '^d'
将ll的输出结果给后面 做筛选
2.3字符设备文件 c 开头是c 有序
硬件设备 以字符流发送 包括键盘 鼠标 打印进
ls -l /dev
2.4块设备文件 乱序 磁盘可以随机访问
可以随机访问 配置了高级缓存 磁盘 U盘 sd卡
ll /dev |grep '^b'
### 辨析 os 对硬盘的读写按块执行 缓存
磁盘裸设备 应用程序来直接访问 此时是字符使用 oracle 就是这样
## 2.5管道 连接管子与管子 转换管 以p开头
###分类 :匿名管道和命名管道
| 连接两个命令的
ls- l /etc |more
命名管道的创建和读写数据的方法
在shell通过命令交互式创建管道
通过调用系统函数命名管道
- mknod
mknod fifo p # fifo 命名管道文件 #p表示为管道文件
ls - fifo
ls -l fifo
- mkfifo
mkfifo fifo
ls -l fifo
gcc m.c
./a.out
cat<info
# <重定向 将后面重定向给cat
2.6 套接字
是一种方便进程之间通信的特殊文件 用于编写程序 MySQL套接字
以s开头
2.7文件链接
就是对文件的引用
链接就是他所对应的原始文件
2.7.1符号链接 软连接 开头是l
相当于一个指针
可以跨系统
用户需要对文件具有访问权限
2.7.2硬链接
当用户删除或移动原始文件 硬链接不会被破坏
第三列为 硬链接数
3.文件权限
3.1基本权限和特殊权限
3.1.2基本权限
- 3个权限组: 文件所有者u,文件所属组g 以及其他用户o 所有用户用a
- 3个基本权限类型: 读r 写w(写入修改 目录内容) 执行x(进入某个目录)
没有权限用连字符表示
二进制表示法 100 010 001 4 2 1
3.1.3特殊权限
setuid setgid 黏滞位 允许用户暂时提高权限
使用常在 执行某个特殊任务 暂时提升权限
存储账户和密码 /etc/passwd /etc/shadow
setuid setgid 用s表示
setuid 占用所有者权限的第3个字符即x所在的位置
如何setuid或者gid和x权限同时拥有 2种权限叠加要小写s表示 一种用S表示
数字表示法setuid在权限的最高位用十进制数字4表示
setgid 在权限的最高位用十进制2表示
同时设置setid 和可执行权限
黏滞位 切切与2种特殊权限相反
功能只有文件所有者才能修改或者删除/tmp目录中的文件
在文件权限用t表示 占用其他用户权限第3个字符 即x所在位置
如果设置可黏滞位和执行权限用t表示 用十进制1表示
3.2显示文件权限
ls -l
bash 权限 755
3.3修改文件权限
R递归修改文件权限
chmod -R 755 /123
+ 增加 -删除
chmod g+w /123
chmod g+w,o+w /123
mkdir -p 递归创建
touch 创建一个空白文件
遵循 最小权限的原则
3.4更改文件所有权
chown -R 实现递归更改
sudo chown -R root dir1
同时更改文件所有者或所属组
sudo chown root:root dir1
所属组和所属用户没有必然联系
3.5文件特殊权限
if 目录文件和目录同时设置执行 则用小写字母 s和t表示
只有特殊权限用 S和T表示
chmod u+s data 为data文件设置setid权限
+s 表示设置setuid 权限
setgroudid
chomod g+s /123
setxxx 通常在可执行文件上面 黏滞位通常在非可执行文件或者目录
黏滞位位于其他用户权限组 表示方法为t
chmod o+t data
设置setid
chmod 4751 dir1 4是setuid 权限
S或者T 没有个执行权限