linux文件系统
Posted bitwoods
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux文件系统相关的知识,希望对你有一定的参考价值。
# linux文件系统
linux由虚拟文件系统VFS提供同一套API操作不同的文件类型。
- 普通文件:存储设备上的文件,如C文件、目录、可执行文件等
- 字符设备文件:可以像文件一样访问的设备,如串口、控制台
- 块设备文件:需通过内存缓冲区且一次读写访问固定大小数据的设备,不直接对设备进行数据读写。如磁盘、软盘、光驱等
socket文件:通过文件描述符抽象实现对网络的访问
创建文件系统
查看分区情况
fdisk -l
建立分区(假设目标磁盘为dev/sdb)
fdisk /dev/sdb
之后根据提示输入对应命令字操作
- a 设置为启动分区
- b 编辑bsd磁盘
- c 设置兼容dos标志
- d 删除一个分区
- l 列出当前系统支持的分区方式
- m 打印命令/help
- n 增加一个分区
- o 建立新的dos分区表
- p 打印分区情况
- q 不保存退出
- s 建立一个新的Sun空磁盘
- t 改变分区ID
- u 改变显示单元
- v 修正分区表
- w 保存并退出
x 专家模式
格式化分区
mkfs.ext3 /dev/sdb1 //将dev/sdb1格式化为ext3类型文件系统
挂载分区
mount /dev/sdb1 /test //将/dev/sdb1 挂载到/test
mount命令用于挂载文件,其使用格式如下:
mount -t type mountpoint device -o options
上面的命令表示将文件类型为type的设备device按照options设置挂载到mountpoint上
查看分区挂载情况
df
文件操作
### 文件描述符(file descriptor)
linux通过一个整型数字文件描述符来表示文件,是一个与系统设置有关的有限资源,使用完毕后必修及时释放,其值仅在同一进程有效;
系统已分配3个文件描述符
- 0->标准输入(stdin)
- 1->标准输出(stdout)
2->标准错误(stderr)
打开/创建文件
//open()函数
int open(const char *pathname,int flags);
int open(const char *pathname,int flags,mode_t mode);
- 使用时需包含头文件sys/types.h、sys/stat.h、fcntl.h
- 成功返回文件描述符,失败返回-1
- pathname最大长度通常为1024,不同系统有差别,超长自动截断
- flags
- O_RDONLY 0 只读
- O_WRONLY 1 只写
- O_RDWR 2 可读可写
- O_APPEND 写操作时追加
- O_CREAT 不存在则创建,此时需设置mode参数以确定新文件权限
- O_TRUNC 将文件长度截断为0,若文件存在并成功打开,则文件长度截断为0
- O_NONBLOCK 以非阻塞方式打开文件,不指定是默认阻塞方式打开
- mode参数值与含义
选项 | 值 | 含义 |
---|---|---|
S_IRWXU | 00700 | 用户(文件所有者)有读写和执行权限 |
S_IRUSR | 00400 | 用户有读权限 |
S_IWUSR | 00200 | 用户有写权限 |
S_IXUSR | 00100 | 用户有执行权限 |
S_IRWXG | 00070 | 组用户(文件所有者)有读写和执行权限 |
S_IRGRP | 00040 | 组用户有读权限 |
S_IWGRP | 00020 | 组用户有写权限 |
S_IXGRP | 00010 | 组用户有执行权限 |
S_IRWXO | 00007 | 其他用户(文件所有者)有读写和执行权限 |
S_IROTH | 00004 | 其他用户有读权限 |
S_IWOTH | 00002 | 其他用户有写权限 |
S_IXOTH | 00001 | 其他用户有执行权限 |
以上是关于linux文件系统的主要内容,如果未能解决你的问题,请参考以下文章
LINUX PID 1和SYSTEMD PID 0 是内核的一部分,主要用于内进换页,内核初始化的最后一步就是启动 init 进程。这个进程是系统的第一个进程,PID 为 1,又叫超级进程(代码片段