LINUIX//Linux 文件与目录管理

1.目录与路径

在这里插入图片描述
根目录下有没有上层目录存在?

可以看到根目录下确实存在 . 与 … 两个目录,再仔细的查阅,
可发现这两个目录的属性与权限完全一致,这代表根目录的上一层(…)与根目录自己(.)是同一个目录。

1.1目录的相关操作

指令作用
pwd显示当前目录,可加-P选项,显示完整路径而不是链接路径
mkdir-m 创建目录的同时设置目录的权限 -p 递归创建所需目录
rmdir-p 递归删除所有目录,连同“上层”“空的”目录也一起删除

在这里插入图片描述
在这里插入图片描述

1.2 关于可执行文件路径的变量: $PATH

为了安全起见,不建议将“.”加入PATH的搜寻目录中

工作目录并非固定(常常会使用cd来切换到不同的目录), 因此能够执行的指令会有变动(因为每个目录下面的可可执行文件都不相同),这对使用者来说并非好事。
若有人在公共目录加入一些和常用指令同名的危险性的可执行文件,会导致漏洞

总结

不同身份使用者默认的PATH不同,默认能够随意执行的指令也不同
PATH是可以修改的
使用绝对路径或相对路径直接指定某个指令的文件名来执行,会比搜寻PATH来的正确
${PATH} 里面哪个目录先被查询,则那个目录下的指令就会被先执行

2.文件与目录管理

2.1 ls命令:

在这里插入图片描述

2.2 cp命令

在这里插入图片描述

    在默认的条件中, cp 的来源文件与目的文件的权限是不同的,目的文件的拥有者通常会是指令操作者本身。举例来说, 上面的范例二中,操作者是root的身份,因此复制过来的文件拥有者与群组就改变成为 root 所有了。

    要注意一点,复制行为不能超出操作者本人的权限:
在这里插入图片描述
这里即使使用了-a来试图完整复制文件的属性高信息,但是鉴于dmtsai自身的权限限制,并不能修改文件所有者和文件所有组。

2.3 rm命令

在这里插入图片描述

2.4 mv命令

在这里插入图片描述
在这里插入图片描述

3.文件内容查阅

3.1 无翻页指令(一次性的将数据一口气显示到屏幕上):

指令名用法
cat (concatenate)在这里插入图片描述
tac (反向列示)在这里插入图片描述
nl (添加行号打印)在这里插入图片描述

3.2 可翻页检视

指令名用法
more在这里插入图片描述
less在这里插入图片描述

4.文件内容截取

指令名用法
head在这里插入图片描述默认只显示十行(不加n),如果接的是带“-”的数,表示除了后 -n 行外全部显示
tail (取出后面几行)在这里插入图片描述默认只显示后十行(不加n),如果接的是带“+”的数,表示从n行后全部显示

5.非纯文本文件:od

在这里插入图片描述

6.修改文件时间或创建新文件: touch

文件具有三种修改时间:

名称含义
modification time (mtime)文件的“内容数据”变更时间
status time (ctime)文件的“状态 (status)”改变时间,比如属性与权限
access time (atime)“该文件的内容被取用”时间

复制文件时,mtime不变(内容不变),ctime是当前时间(新建文件)

使用ls指令可以查看文件的三种时间:

默认情况,显示mtime
可以加上命令行参数- -time=atime/ctime 来修改所要查看的时间种类

考虑一种情况:由于BIOS的设置错误,导致系统时间跑到未来时间,并且你又创建了某些文件。 等你将时间改回正确的时间时,该文件不就变成来自未来了?
为了纠正这些错误,可使用touch指令修改文件时间:
在这里插入图片描述

7.文件和目录的默认和隐藏权限

7.1 默认权限

可使用指令umask查看默认权限,加上-S以符号方式显示默认权限:
在这里插入图片描述
注意单独使用umask会有四个数字,第一个为特殊权限
umask 的分数指的是该默认值需要减掉的权限,如上述的022,即为u需要去掉0的权限,也就是不需要去掉任何权限,而g和o需要去掉2的权限,2表示w的权限。所以:
在这里插入图片描述
注意,在创建文件时,会默认没有x权限,也就是无论在umask中有没有指出要去掉x,默认都不会有x权限

7.2 隐藏权限

使用chattr设置隐藏属性:
在这里插入图片描述
需要 lsattr 才能看到隐藏属性。+a与+i尤为重要

在这里插入图片描述

7.3 文件特殊权限

7.3.1 SUID:
如果某个用户具有SUID权限,那么:

在如下两个前提下:

目标文件为二进制文件;本权限仅在执行过程中有效

如果该用户对目标文件有执行权限,那么用户将具有目标文件所有者的权限。

例子,有用户dmtsai,文件/usr/bin/passwd,passwd的所有者为root,且dmtsai对文件有SUID特殊权限:
在这里插入图片描述
在查看权限时,如果用户对文件有SUID权限,那么会在对应的位置将x换成s

7.3.2 SGID:
SGID于SUID类似,只是是对应文件的所有组:
在这里插入图片描述
在这里插入图片描述
SGID 也能够用在目录上。:若使用者在此目录下具有 w 的权限(可以新建文件),则使用者所创建的新文件,该新文件的群组与此目录的群组相同

7.3.3 SBIT(Sticky Bit)

仅对目录有效。
在这里插入图片描述
在这里插入图片描述
7.3.4 观察文件类型:file
在这里插入图片描述

7.4 指令与文件的搜寻

7.4.1 which搜寻指令:
在这里插入图片描述
注意,which只能搜寻PATH所规范的指令,比如history 是“bash 内置的指令”(有 bash 就有 history) 但是 which 默认是找 PATH 内所规范的目录,所以使用which history找不到。

7.4.2 whereis搜寻文件:
去某些主要目录查找:
在这里插入图片描述
7.4.3 locate / updatedb
去数据库查找:
在这里插入图片描述locate 寻找的数据是由“已创建的数据库 /var/lib/mlocate/” 里面的数据,数据库的创建默认是在每天执行一次 (每个 distribution 都不同,CentOS 7.x 是每天更新数据库一次),可使用updatedb手动更新。updatedb 指令会去读取 /etc/updatedb.conf 这个配置文件的设置,然后再去硬盘里面搜寻文件名, 最后就更新整个数据库文件

7.4.4 find
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对-exec的补充说明:
![在这里插入图片描述](https://img-blog.csdnimg.cn/76b8438bacba4d2990dc42422051be5a.png?x-ss-
process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARENWRkdWQg==,size_20,color_FFFFFF,t_70,g_se,x_16)
不过由于 find 在寻找数据的时后相当的操硬盘。所以没事情不要使用find 。有更棒的指令可以取代。那就是上面提到的 whereis 与 locate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值