鸟哥的私房菜基础篇--第二部分 读书笔记

     Linux里面,每个文件都有User,Group,Other三个身份权限。

     su 可以用于切换用户,后面不加命令时为切换到root    

     Linux的文件属性:
         -ls list的意思。显示文件名和相关属性。一般会显示7项。
         从左到右如下:
         -rw-r--r-- 1 root root 1024 sep 4 19:00 hello.txt
          文件权限 连接数 文件所有者 所属用户组 文件大小 最后修改日期 文件名

         其中文件权限是最复杂的部分。一共有10个字符。
         第一个表示这个文件是目录,文件或者链接文件等:
              d代表目录;-代表是文件;l代表是连接(不是链接)文件(类似与快捷方式的东西);b代表是设备文件里面的可供应的接口设备;
              c代表设备文件里面的串行端口设备,如键盘鼠标等一次性读取设备。
         接下来的九个字符,以每三个为一组‘rwx’的组合,代表可读,可写,可执行三种权限。三个组分别是          所有者的权限;同用户组的权限;其他的权限。

         chgrp 改变所在用户组
         chown 改变文件所有者
         chmod 改变文件权限 :r 4;w 2; x 1.利用数字修改 当然可以直接用符号改变
         例如: chmod 771 test.txt 或 chmod ug=rwx,o=x test.txt

          目录的权限
         目录的权限与文件的稍有不同:
         r代表具有读取该目录结构列表的权限,即查询该目录下的文件名,而且仅仅只是查询文件名
         w代表你具有更改该目录结构列表的权限:新建新的文件和目录;删除文件与目录(不管该文件的     权限如何);重命名;转移位置。总之,就是与该目录下面的文件名变动有关。
         x代表的是用户能否进入该目录,成为工作目录。即是切换cd到该目录下。

     FHS linux目录配置标准。规范每个特定的目录下应该要放置什么样子的数据。
     / :root根目录,与开机系统有关。
     /usr :unix software resource 与软件安装执行有关
     /var :与系统运行过程有关

     有5个必须与根目录不能分开:
     /etc 配置文件
     /bin 重要执行文件,单用户维护模式下还能被执行的指令
     /dev 设备文件
     /lib 执行文件所需的函数库与内核所需的模块
     /sbin 重要的系统执行文件 如开机,修复,还原系统所需的指令

     根目录的上一层 . .和根目录自己 . 是同一个目录
         mkdir 创建一个目录 :-m 添加权限,-p递归创建目录
         pwd :print working directory :打印当前目录
         rmdir :删除目录,只能删除空的
         cp :复制
         rm : 删除
         mv:移动

     打开文件的相关指令:cat,tac,nl.more.less.head,tail.od.
     man就是调用less 来显示说明文件的内容的。
     touch指令用于:创建一个空个的文件 或者 将某个文件日期修改为目前日期(mtime和atime)

     umask 文件默认权限,四个数字,第一个是特殊权限,后三个是普通权限,一般看后三个。
     这些数字分别表示要去掉的权限。如2就是去掉w,这里涉及文件和目录的默认权限。
     文件的默认权限为666 -rw-rw-rw umask为022则表示 现在的权限应该为 -rw-r--r--
     目录的默认权限为777 同理。
     要设置umask的话直接设置输入 umask 022

     文件隐藏属性:chattr +a表示只能新增数据,+i表示完全不能改动文件。lsattr显示隐藏属性。

     SUID,SGID,SBIT略繁琐 以后再看。

     查看文件类型 : file指令
     查找执行文件 : which which是通过PATH目录下的路径去查找相应的可执行文件名。
     查找文件名:     whereis 或者 locate 都是通过查找系统中的数据库文件 速度较快
     其中locate寻找的是/var/lib/mlocate 所以查找的内容可能和实际硬盘有误差,可以使用updatedb来更新数据库文件。
     find指令则是直接查找硬盘,而且可以使用更复杂的参数,还能嵌套使用额外的命令。


     super block 记录文件系统的整体信息。
     inode 记录文件的属性,一个文件占用一个inode
     block 实际记录文件的地方,一个文件可占用多个block
     把super block当成一个登记本,记录这户人家的整体信息,有多少间房,有多少人,房间使用量还有其他相关信息。
     把inode当成类似于户口的每一页,记录每个人的属性,所住的房间号
     把block当成房间号,即人实际住的地方,去找人的地方。一个人可能有两个block及以上。
     把文件当成人。
     所以查找文件(人)时,就去找inode(户口),通过里面inode的block(房间)号,去找到文件。

     经常使用的磁盘碎片管理就是因为文件写入的多个block太过离散了,需要把他们重新汇合在一起,这样读取比较容易。
     文件名并不是记录在文件的inode中,而是记录在目录的block中,因此才有了文件的增删与该文件所在目录的w权限有关。

     将文件系统与目录树结合的操作我们称为挂载。文件系统要能够链接到目录树才能被我们使用。挂载点一定是目录,该目录为进入该文件系统的入口。

linux里,没有盘符这个概念,我们用目录的形式进行管理,把每一个分区和某一个目录对应.

那么,我们对这个目录的操作就是对这个分区的操作,这样就实现了硬件管理手段和软件目录管理手段的统一,这个把分区和目录对应的过程就叫做挂载,也就是-mount.

挂载可以由用户随时中断和改变 . 详见linux挂载。

     ext3相较于ext2最大的区别在于日志文件系统。
     df : 列出文件系统的整体磁盘使用量。
     du:评估文件系统的磁盘使用量。(常用于评估目录所占容量。文件数目)

     在linux下面的连接文件有两种,一种是类似于win的快捷方式功能的文件,这种称为软连接;另一种是通过文件系统的inode连接来产生新的文件名,而不是产生新文件,这中称为硬连接。
     硬连接:每个文件会占用一个inode,所以要读取文件必须去访问inode,这个过程是 通过目录下记录的文件名来指向正确的inode号码。也就是说,其实文件名只与目录有关,而文件的内容呢,只与inode有关。所以硬连接就是 在某个目录下新建了一个文件名连接到了某个已经存在的inode号码。在用ls时,第二项的数目就是有多少文件名连接到该inode的意思。
     硬连接只是在目录下的block下写入一个文件名关联数据,不会增加inode也不会耗用block。而软连接要创建一个新的文件,自然就要耗用inode和block,其实整个文件的大小就和连接文件的文件名有关。

     一个空目录里面有什么?存在.  和.. 两个目录,所以当我们创建一个新的目录时,基本上会有/test /test/. /test/.. (/test 和 /test/.是一样的)三个目录存在。所以新的目录连接数为2,上层的目录连接数增加1.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值