linux学习笔记[华电](7)——文件操作

本文介绍了Linux系统中文件的重要性和管理方式,包括MBR分区方案、文件系统的格式化、挂载与卸载、文件类型及权限管理。重点讲述了如何在Linux上使用新硬盘,如通过fdisk创建分区,用mkfs格式化,然后用mount挂载。还提到了文件权限的UGO管理方式和umask设定,以及文件操作的基本系统调用。此外,简要讨论了软链接和硬链接的区别。
摘要由CSDN通过智能技术生成

文件操作

在linux上,文件的作用远远大于在windows上的文件。
在windows上,如果要使用一个新的硬盘,需要先找到物理分区,再建立新的逻辑分区,再选择某个文件系统。
那么,在linux上又是如何操作的呢?


linux上的MBR方案:

物理分区

格式:

  • /dev/sda:第一块物理硬盘,不代表任何分区。
  • /dev/sdb
  • /dev/sdc
逻辑分区

格式:

  • /dev/sda1:第一个分区(一般是主分区)。
  • /dev/sda2
  • /dev/sda3

主分区:sda1~sda3
扩展分区:sda4
逻辑分区:sda5sda6sda7…(只能在扩展分区上创建)任何一个逻辑分区的最小编号都是5

文件系统

linux支持的文件系统:ext2,ext3,ext4,ZFS…

挂载点

挂载到相应目录上。


在linux使用一块新硬盘的步骤(重要)

1、插上硬盘后,使用fdisk查看和调整磁盘分区

sudo fdisk /dev/sda

2、使用mkfs进行分区的格式化、创建文件系统

sudo mkfs -t ext3 /dev/sda5 #使用-t选项指明文件系统类型

3、使用mount挂载到某个目录上,使用umount解除挂载。

sudo mount /dev/sda5 myproject #挂载sda到myproject目录上

分区和目录的顺序不能颠倒,先写分区,再写目录。
系统启动时自动挂载——修改/etc/fstab文件。

在这里插入图片描述


linux文件系统结构

FHS标准,所有linux发行版都遵循的标准。

在这里插入图片描述


虚拟文件系统

虚拟文件系统VFS可以让不同的文件系统,对用户进程来说都有统一的API。


ext2文件系统

每个文件只有一个索引节点,每个索引节点都有唯一的标识符。

  • 引导块
  • 超级块
  • inode块
  • 目录块
  • 数据块

文件类型

文件类型代表字符
普通文件-
目录文件d(directory)
设备文件(字符设备)c(character)
设备文件(块设备)b(block)
链接文件l(link)
管道文件p(pipe)

链接文件类似于windows下的快捷方式。


文件权限管理

UGO方式——简单

3类:

  • Uesr,文件拥有者
  • Group,用户组
  • Other,其他用户

3种权限:

  • 普通文件的权限:
    • r:读文件
    • w:写文件
    • x:在shell下执行文件
  • 目录文件的权限:
    • r:可以ls到目录中去
    • w:可以在目录中创建和删除文件
    • xcd到目录中去,一般是和其他两个配合使用,组合设置上
ls -l #可以查看目录底下文件的详细信息
ls -ld testp/ #查看目录本身的信息

在这里插入图片描述
其中一条记录的前10个字符为:
-(普通文件) r w -(文件拥有者权限) r - -(用户组权限) r - -(其他用户权限)

chmod u-x testp/ #剥夺了可执行权限
cd testp #无法cd,显示权限不够
ls -ld testp/ #但是可以查看目录信息

在这里插入图片描述

chmod u-r testp/ #剥夺了r权限
ls testp #无法ls
touch a #但是可以创建文件

在这里插入图片描述

chmod u-w testp/ #剥夺w权限
touch b #无法创建文件

在这里插入图片描述
使用chmod修改文件权限。

chmod u=rwx,g=rx,o=rx testp/
chmod 755 testp/
chmod u+x,g+r,o+r testp/
chmod u-x,g-r,o-r testp/
chmod a=rwx testp/
chmod a-w testp/

文件默认权限(怎么来的,请参考《关于文件权限的八进制表示》

  • 目录文件:777 &(~umask
  • 普通文件:666 &(~umask

umask的默认值0022

在这里插入图片描述

ACL方式——复杂全面
  • getfacl:获取控制列表
  • setfacl:设置控制列表
  • chacl:修改控制列表

不详细展开。


文件基本操作

文件描述符

OPENMAX:同时打开的文件数上限。

ulimit -a #查看所有限制
ulimit -n #查看同时打开的文件数

普通用户可以使用ulimit把数量下调,只有root用户才能往上调。

标准输入输出

宏定义:

  • STDIN_FILENO:0
  • STDOUT_FILENO:1
  • STDERR_FILENO:2
用户进程的ID

用户启动的进程是否能打开文件,取决于进程的有效用户决定。
通常情况下,用户的有效ID——实际用户ID。
如果文件执行权限设置为s的话,有效ID——文件所有者的用户ID

在这里插入图片描述
s位分为suidsgid等。

chmod u+s 1.txt
chmod u-s 1.txt

在这里插入图片描述

文件有关的系统调用函数(不是bash命令)

1、文件的创建与打开:creatopenmkdirmknod
2、文件读写:readwrite
3、关闭和删除文件:closeunlink文件引用计数变为0

  • 软链接
ln -s sum0.c ll #软链接
ln -s 文件/目录 ll

在这里插入图片描述

  • 硬链接
ln sum0.c dd #硬链接
# 为了避免ls -R出现死循环,不允许创建目录的硬链接

指向同一个i结点,可以发现文件计数器+1。

在这里插入图片描述

4、移动文件读写指针:lseek
5、改变文件属性:chownfchownlchown
6、设置文件权限:chmodfchmodumaskaccess
7、获取文件状态:statfstatlstat

  • 把stat结构体中的成员变量st_mode作为参数传入宏定义中,进行测试,返回非0值,执行成功。
  • S_ISREG(m)
  • S_ISDIR(m)

8、修改文件时间:utime
9、目录操作:mkdirrmdirchdirfchdirgetcwd
10、读取目录:opendirreaddirrewinfdirclosedir


总结

这一期就到这了。内容还是很多的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值