鸟哥的Linux私房菜10.13 档案与目录管理

第7章 Linux档案与目录管理

相对路径与绝对路径

绝对路径:路径的写法一定由根目录写起,例如:/usr/share/doc这个目录

相对路径:路径的写法不是由根目录写起,例如由/usr/share/doc要到/usr/share/man可以写成:cd ../man

相对路径可以减少寻找路径时的输入量,而绝对路径可以保证正确性

*目录的相关操作: .代表此层目录; ..代表上一层目录; -代表前一个工作目录; ~代表目前用户的根目录; ~account代表account这个用户的根目录

根目录的上一层和自己是同一个目录,属性和权限完全一致

处理目录的指令: cd:变换目录; pwd:显示当前目录; mkdir:建立一个新的目录; rmdir:删除一个空的目录

关于 -p

如果写出 mkdir -p /home/bird/testing/test1的指令能自动建立一系列的目录……但是这样如果打错字很容易造成目录的比较严重的错误,所以还是一个个按顺序自己建立吧

umask能让我们了解到新建目录的权限

rmdir只能删除“空”的目录哦,目录要从底到上一层层地删除, 如果要清空当前目录,用 rm -r test就好,不过比较危险的说

执行文件路径的变量:$PATH————————————————————————————

PATH是为了要下达一些指令比如说ls这样的,就搜寻一个目录里面可以执行的文件显示给用户了

用户当前目录是不会假如PATH搜寻的目标目录的,因为要防止恶意用户了

1、不同身份的用户默认的PATH不同,默认能够随意执行的指令也不同

2、PATH是可以修改的,所以一般用户可以通过修改PATH来执行某些位于/sbin或者/usr/sbin下的指令来查询

3、使用绝对路径或相对路径指定某个指令的文件名来执行,会比搜寻PATH来得正确

4、指令要放在正确的目录下,执行才会比较方便

5、本目录(.)最好不要放到PATH当中


档案和目录的查看: ls
这里写图片描述

ls在linux系统中,就相当于dir在windows系统中

要复制档案的话,就使用cp指令
这里写图片描述
不过cp也不是能够随便执行的了,在复制之前必须了解清楚被复制文件是否需要完整保留,是否为连接档,是否为特殊档案,是否为目录等

rm(移除档案或目录) mv(移动档案或目录,或更名) -u可以用来测试新旧档案,rename可以用来更改文件名

basename +路径,得到的是档案名,dirname +路径,得到的是目录名


档案内容查阅:
这里写图片描述
cat(concatenate) 由第一行开始显示档案内容(后面可以加一些选项与参数的哦)

-A: 相当于 -vET的整合选项,可列出一些特殊字符而不是空白而已
-b: 列出行号,仅针对非空白行做行号显示,空白行不标行号
-E: 将结尾的断行字符$显示出来
-n: 打印出行号,连同空白行也会有行号,与-b的选项不同
-T: 将【tab】按键以^I显示出来
-v: 列出一些看不出来的特殊字符
tac 从最后一行开始显示,可以看出tac是cat的倒写
nl 显示的时候,顺便输出行号

-b (a 列出空行行号; b 不列出空行行号) -n (ln左方显示;rn右方显示不加0;rz右方显示加0) -w (行号占用位数)

more 一页一页的显示档案内容
less 与more相似,但是比more更好的是,他可以往前翻页
head 只看头几行
tail 只看最后几行

od 以二进制的方式读取档案内容

修改档案时间或新建档案: touch

一个档案下面,是有三个主要的时间哦——modification time(mtime)内容数据status time(ctime)状态时间access time(atime)读取时间

touch这个指令最常被用来使用:建立一个空的档案,将某个档案日期修订为目前


档案与目录的默认权限与隐藏权限

chattr可以设定系统的隐藏属性,而lsattr可以用来查看……

关于权限问题,看一下第六章的一个内容:如果系统有一个一般用户dmtsai,他的群组属于users,他的家目录在/home/dmtsai,作为root如果想要将~/.bashc复制给他,那么可以执行如下指令: 复制档案: cp ~/.bashrc ~dmtsai/bashrc 修改属性:chown dmtsai:users ~dmtsai/bashrc

chmod是什么指令呢?说是前一章有比较详细的介绍,不知道哦……待会儿去看看吧。?????


档案默认权限:umask(关于分数的一些计算方法)

直接输入这个指令出来一个四位数字表示数字形态的权限设定分数(一般权限有关的是后三位),加入一个-S(Symbolic)就会以符号类型的方式来显示出权限了。

若用户建立【档案】,则默认没有可执行权限x,那么最大值为666分 -rw-rw-rw-;

若用户建立【目录】,则默认为所有权限都开放,那么最大值为777分 drwxrwxrwx;

umask指的是“该默认值需要减掉的权限”,因为r、w、x分别是4、2、1分,所以输入的分数对应该位置上要禁止的权限。


档案的隐藏属性(chattr指令——配置文件隐藏属性只能在Ext2/Ext3文件系统上生效)
这里写图片描述
这里写图片描述
lsattr(显示文件隐藏属性) lsattr [-adR] 文件或目录

-a:显示隐藏文件的属性

-d:如果连接的是目录,仅列出目录本身的属性而非目录内的文件名

-R:同子目录的数据也一并列出来


档案特殊权限:SUID,SGID,SBIT

Set UID,即SUID是当s这个标志出现在档案拥有者的x权限上时。对于目录无效……它的限制与功能如下:1、SUID权限仅对二进制程序有效,2、执行者对于该程序需要具有x的权限,3、本权限仅在执行该程序的过程中有效,4、执行者将具有该程序拥有者的权限

Set GID,即SGID是当s这个标志出现在群组的x权限上时。它对于档案的限制与功能如下:1、SGID仅对二进制程序有效,2、程序执行着对于该程序具备x的权限,3、执行者在执行程序的过程中将会获得该程序群组的支持。 对于目录的功能:1、用户若对此目录具有r与x权限时,该用户能够进入此目录,2、用户在此目录下的有效群组将会变成该目录的群组,3、若用户在此目录下具有w的权限(可以新建档案),新档案的群组与该目录的群组相同。

Sticky Bit,即SBIT只对目录有效。它的限制与功能有:1、当用户对于此目录具有w和x权限,亦即具有写入的权限时,2.当用户在该目录下建立档案或目录时,仅有自己与root才有权力删除该档案

SUID/SGID/SBIT的权限设定

数字设定方法就是在三位数字形态的权限前面加一个数字:4为SUID,2为SGID,1为SBIT


观察文件类型:file

脚本文件名的搜寻: which type(cd)

档案名称的搜寻: 通常使用whereis或者locate来检查,实在不行采用find
这里写图片描述
whereis和locate是在数据库中搜寻文件,相当快速,但是数据库的建立默认是经常有更新(不同distribution不一样,CentOS 5.x是每天一次),所以可能搜不到

手动更新数据库:updatedb
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
*************************************************************************%¥#@

权限与指令间的关系:(极重要)

一、让用户能进入某目录成为【可工作目录】的基本权限:

    1.可使用的指令,2.目录所需权限(至少x),3.额外需求

二、用户在某个目录内读取一个档案的基本权限:

    1.可使用的指令,2.目录所需权限(至少x),3.档案所需权限(用户需要r)

三、让用户可以修改一个档案的基本权限:

    1.可使用的指令,nano或vi等,2.目录所需权限(至少x),3.档案所需权限(用户至少需要r和w)

四、让用户可以建立一个档案的基本权限:

    1.目录所需权限(用户在该目录需要x,w的权限,重在w)

五、让用户进入某目录并执行该目录下的某个指令的基本权限:

    1.目录所需权限(至少x),2.档案所需权限(至少x)

猜你喜欢

转载自blog.csdn.net/kongcheng_001/article/details/48683935