在linux上,文件的作用远远大于在windows上的文件。 在windows上,如果要使用一个新的硬盘,需要先找到物理分区,再建立新的逻辑分区,再选择某个文件系统。 那么,在linux上又是如何操作的呢?
格式:
/dev/sda:第一块物理硬盘,不代表任何分区。/dev/sdb/dev/sdc…格式:
/dev/sda1:第一个分区(一般是主分区)。/dev/sda2/dev/sda3…主分区:sda1~sda3 扩展分区:sda4 逻辑分区:sda5、sda6、sda7…(只能在扩展分区上创建)任何一个逻辑分区的最小编号都是5。
linux支持的文件系统:ext2,ext3,ext4,ZFS…
挂载到相应目录上。
1、插上硬盘后,使用fdisk查看和调整磁盘分区
sudo fdisk /dev/sda2、使用mkfs进行分区的格式化、创建文件系统
sudo mkfs -t ext3 /dev/sda5 #使用-t选项指明文件系统类型3、使用mount挂载到某个目录上,使用umount解除挂载。
sudo mount /dev/sda5 myproject #挂载sda到myproject目录上分区和目录的顺序不能颠倒,先写分区,再写目录。 系统启动时自动挂载——修改/etc/fstab文件。
FHS标准,所有linux发行版都遵循的标准。
虚拟文件系统VFS可以让不同的文件系统,对用户进程来说都有统一的API。
每个文件只有一个索引节点,每个索引节点都有唯一的标识符。
引导块超级块inode块目录块数据块链接文件类似于windows下的快捷方式。
3类:
Uesr,文件拥有者Group,用户组Other,其他用户3种权限:
普通文件的权限: r:读文件w:写文件x:在shell下执行文件 目录文件的权限: r:可以ls到目录中去w:可以在目录中创建和删除文件x:cd到目录中去,一般是和其他两个配合使用,组合设置上 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。
不详细展开。
OPENMAX:同时打开的文件数上限。
ulimit -a #查看所有限制 ulimit -n #查看同时打开的文件数普通用户可以使用ulimit把数量下调,只有root用户才能往上调。
宏定义:
STDIN_FILENO:0STDOUT_FILENO:1STDERR_FILENO:2用户启动的进程是否能打开文件,取决于进程的有效用户决定。 通常情况下,用户的有效ID——实际用户ID。 如果文件执行权限设置为s的话,有效ID——文件所有者的用户ID。
s位分为suid和sgid等。
chmod u+s 1.txt chmod u-s 1.txt1、文件的创建与打开:creat,open,mkdir,mknod 2、文件读写:read,write 3、关闭和删除文件:close,unlink(文件引用计数变为0)
软链接 ln -s sum0.c ll #软链接 ln -s 文件/目录 ll 硬链接 ln sum0.c dd #硬链接 # 为了避免ls -R出现死循环,不允许创建目录的硬链接指向同一个i结点,可以发现文件计数器+1。
4、移动文件读写指针:lseek 5、改变文件属性:chown,fchown,lchown 6、设置文件权限:chmod,fchmod,umask,access 7、获取文件状态:stat,fstat,lstat
把stat结构体中的成员变量st_mode作为参数传入宏定义中,进行测试,返回非0值,执行成功。S_ISREG(m)S_ISDIR(m)…8、修改文件时间:utime 9、目录操作:mkdir,rmdir,chdir,fchdir,getcwd 10、读取目录:opendir,readdir,rewinfdir,closedir
这一期就到这了。内容还是很多的。