鸟哥Linux私房菜基础学习篇(第四版)第六章 Linux文件与目录管理 笔记

一 目录与路径

1. 文件与路径

路径(PATH)分为绝对路径和相对路径:

绝对路径:路径的写法一定从根目录开始写起,如:/usr/shar/doc
相对路径:路径写法不是由根目录写起,如/usr/share/doc要到usr/share/man下面时,就可以写成:cd . ./man

很显然,相对路径可以当我们在比较长的目录后需要跳转目录时,提供便利

2.目录的相关操作

首先,我们先记住几个比较特殊的目录:

.			代表此层目录
..			代表上一层目录
-			代表前一个工作目录
~			代表目前使用者身份所在的家目录
~account	代表account这个使用者的家目录(account是个账号名称)

那么根目录有没有上一层目录(. .)的存在呢?

用" ls -al/ "命令查询发现,确实存在 . 和 . .这两个目录的存在,但是他们的属性和权限完全一致,这代表根目录的上一层与根目录自己是同一个目录

常用的处理目录指令

1. cd(切换目录)
cd后面直接跟所需要到达的目录名称即可,配合上面提到的几个特殊目录可以在系统大部分地方自由穿行。

>由于一些目录过长,我们常用 【TAB】 键来补全目录路径,可以极大我们的提高速度和准确率
2. pwd(显示当前所在位置)
单纯地显示出当前路径

参数:-P:不显示链接文件的路径
3. mkdir (建立新的目录)
参数:-p 帮你递归创建当前目录
4. rmdir (删除“空”目录)
参数: -p 连同上层的”空目录“也一同删掉

二 文件与目录管理

1.文件和目录的查看:ls

-a :显示全部文件,连同隐藏文件(.开头的文件)
-d :仅列出目录本身,而不是列出文件数据
-l : 详细信息显示
-t :按照修改时间顺序列出目录

2.复制文件或目录:cp

-i:当目标文件存在时,覆盖前询问是否进行操作
-a:在保留原文件属性的前提下复制文件
-p:连同文件属性(用户,权限,时间)一起复制过去
-r:递归赋值,用于目录复制的操作
-s:复制为符号链接文件(即”快捷方式“文件)

3.删除文件或目录:rm

-r:递归删除,最常用与目录的删除(十分危险的一个选项)
-i:删除时会主动询问,避免删除到错误的文件名
-f:删除时不会出现警告信息

一个很坑爹的梗

说到这里就不得不提起那个经常引发“血案”的梗了:rm -rf /*

“/” 是根目录,"*"指的是目录下的所有文件,执行以上指令后,整个LInux都会被删除
恩,想想就很刺激的样子!!

4.移动文件与目录,或者重命名:mv

-f:将目标文件直接覆盖
-i:若目标文件已经存在,执行前进行询问

三 文件内容的查看

1.由第一行开始显示文件内容:cat

-n:打印出行号(连同空白行)
-b:打印行号(不包括空白行)

tac指令,从后往前显示文件内容(倒过来的指令就是反向显示?太草率了吧)

2.翻页查看文件内容的指令有:more less (个人比较喜欢less)

less:

空格键:向下翻页
小键盘的上下键:向上向下翻页
/字符串:向下查找字符串
?字符串:向上查找字符串
n:重复前一个查找(与/或?有关)
q:离开less这个程序

3.非文本文件:od

-t:后面可以接各种类型的输出:
a 利用默认字符输出
c 使用ASCII码输出
d 十进制
f 浮点数值
o 八进制
x 十六进制

这个指令可以将数据文件或者二进制文件的内容数据读出来,对于我们一(菜)般(鸟)用户来说,这个指令的用处不打,但对于一些其(大)他(佬)用户,比如工程师来说,他们可以看懂其中的意义。

当我们想知道一个字符串的ASCII码,却又不想上网查的时候,我们可以这样操作:

zzy@zzy-Lenovo-Legion-Y7000:~/C/AC$ echo password | od -t oCc
0000000 160 141 163 163 167 157 162 144 012
          p   a   s   s   w   o   r   d  \n
0000011

4.修改文件时间或者创建新的文件:touch

文件的时间是是很重要的(默认情况下显示的是修改时间),因为文件的时间如果错误的话,可能会导致某些程序无法运行

我们的文件有可能会来自"未来"!!

如果你和我一样想到了 星际穿越 的那个书架的话,那么恭喜你,你想的很对,这个原因和那个书架没有半毛钱关系

我们的系统在安装过后时间有可能会发生改变,因为北京时间和格林威治时间相差八小时,所以如果安装不当,系统会快8小时,这时候,文件就可能来自八小时以后了。

在这里我们先看一下,Linux文件下的时间参数分类:

修改时间:mtime

文件数据变更时,会更新这个时间

状态时间:ctime

文件状态(如:权限和属性)被更改,更新这个时间

读取时间:atime

每次我们读取这个文件时,就会更改这个时间

要修改时间,首先我们总得知道它当前的时间是什么:

输入以下指令(以1.c文件为例):date ; ll 1.c ; ll --time=atime 1.c ; ll --time=ctime 1.c
会有如下输出:
2019年 05月 25日 星期六 10:40:08 CST
-rw-r--r-- 1 zzy zzy 7596 5月  24 19:19 1.c
-rw-r--r-- 1 zzy zzy 7596 5月  24 19:19 1.c
-rw-r--r-- 1 zzy zzy 7596 5月  24 19:19 1.c
ll 相当于 ls -l
;代表连续命令的执行

设置时间:

-t 后面可以接自定义的时间,格式为[YYYYMMDDhhmm]
注意:它只能修改文件的修改时间和读取时间

先建立一个文件 end 并设置时间(对没错,就是“世界末日”那天创建的):
touch -t end 201212230000
我们再查看时间:
date ; ll end ; ll --time=atime end ; ll --time=ctime end
输出:
2019年 05月 25日 星期六 10:55:59 CST
-rw-r--r-- 1 zzy zzy 0 12月 23  2012 end
-rw-r--r-- 1 zzy zzy 0 12月 23  2012 end
-rw-r--r-- 1 zzy zzy 0 5月  25 10:55 end

5.文件默认权限:umask

Linux文件的隐藏属性在保护系统文件的安全性上非常重要。先强调的是,chattr命令只能在Ext2,Ext3,Ext4的文件系统生效

chattr(设置文件的隐藏属性)
参数

+:增加某个参数

-:删除某个参数

=:仅有后面接的参数

-a 当设置a后,文件只能增加数据,既不能删除也不能修改数据,只有root才能设置这个属性
-i 属性可使文件不能被删除、改名,设置连接也无法写入或添加数据。对于系统安全性有很大帮助。只有root能设置此属性

lsattr(显示文件隐藏属性)

-a:将隐藏文件的属性也显示出来
-d:如果接的是目录,仅列出目录本身的属性而不是目录内的文件名
-R:连同子目录的数据也显示出来

6.文件的特殊权限

本节部分内容摘抄源于 https://www.cnblogs.com/zhangjianghua/p/9067168.html 感谢博主!

在复杂多变的生产环境中,单纯设置文件的rwx权限无法满足我们对安全和灵活性的需求,因此便有了SUID、SGID与SBIT的特殊权限位。这是一种对文件权限进行设置的特殊功能,可以与一般权限同时使用,以弥补一般权限不能实现的功能。下面具体解释这3个特殊权限位的功能以及用法。

x ----------s t 如果rwx(读 写 执行) 第三位有x权限,则rwx(读 写 执行)中的x变为s或者t(SUID,SGID,是s,SBIT是t)
“-” ----------S T   如果rwx(读 写 执行) 第三位没有x,则rwx(读 写 执行)中的x变为S或者T (SUID,SGID是S,SBIT是T)

SUID:u+s

SGID:g+s

SBIT:o+t

1.SUID

SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。例如,所有用户都可以执行passwd命令来修改自己的用户密码,而用户密码保存在/etc/shadow文件中。仔细查看这个文件就会发现它的默认权限是000,也就是说除了root管理员以外,所有用户都没有查看或编辑该文件的权限。但是,在使用passwd命令时如果加上SUID特殊权限位,就可让普通用户临时获得程序所有者的身份,把变更的密码信息写入到shadow文件中。

简单来讲就是:
在古装剧中见到的手持尚方宝剑的钦差大臣,他手持的尚方宝剑代表的是皇上的权威,因此可以惩戒贪官,但这并不意味着他永久成为了皇上。因此这只是一种有条件的、临时的特殊权限授权方法。

查看passwd命令属性时发现所有者的权限由rwx变成了rws,其中x改变成s就意味着该文件被赋予了SUID权限。另外有读者会好奇,那么如果原本的权限是rw-呢?如果原先权限位上没有x执行权限,那么被赋予特殊权限后将变成大写的S。

[root@zhangjh ~]# ll /etc/shadow
----------. 1 root root 1203 May 21 13:42 /etc/shadow
[root@zhangjh ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jan 30  2014 /usr/bin/passwd
[root@zhangjh ~]# 

2.SGID

当s标志在文件的拥有者的x项为SGID
主要实现两个功能:

1.让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);
2.在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。

与SUID不同,SGID可以针对文件或目录来设置。

1.如果用户对此目录具有r和x权限时,该用户能够进入此目录
2.用户在此目录下的有效用户组将会变成该目录的用户组
3.用途:用户在此目录下具有w的权限(可以新建文件),则用户所建立的新文件的用户组与目录的用户组相同。

3. SBIT

SBIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件

我们进行一个简单的测试:
1.以root登录系统,并且进入 /tmp 中;
2.touch tese,并更改 test 的权限为777;
3.以一般用户登录,并进入 tmp;
4.尝试删除这个 test 文件

root@zzy-Lenovo-Legion-Y7000:/tmp# touch test
root@zzy-Lenovo-Legion-Y7000:/tmp# ls -l test
-rw-r--r-- 1 root root 0 5月  25 14:18 test
root@zzy-Lenovo-Legion-Y7000:/tmp# chmod 777 test
root@zzy-Lenovo-Legion-Y7000:/home/zzy# ls -l /tmp/test
-rwxrwxrwx 1 root root 0 5月  25 14:18 /tmp/test
root@zzy-Lenovo-Legion-Y7000:/home/zzy# exit 
exit
zzy@zzy-Lenovo-Legion-Y7000:~$ rm /tmp/test
rm: 无法删除'/tmp/test': 不允许的操作

4.修改权限

权限设置:

4表示SUID
2表示SGID
1表示SBIT

使用 chmod 更改其权限,其中参数第一位即为本节所提到的权限数字
以1.c为例更改其权限:

chmod 4777 1.c

5.观察文件类型

如果想要知道某个文件的基本信息 file 指令可以实现这一点

zzy@zzy-Lenovo-Legion-Y7000:~/C/AC$ file 1.c
1.c: C source, UTF-8 Unicode text

7.命令与文件的查找

1.脚本文件的查找:which

这个命令是根据【PATH】这个环境变量所规范的路径,去查找执行文件的文件名

2.文件的查找
由一些特定的目录中查找文件,直接在硬盘中查找:whereis
不用从硬盘中查找,是由已建立的数据库里面的数据所查找到的,速度较快:locate
更新数据库:updatedb

find可以查找一定时间点内的文件

可以查找-atime ,-ctime, mtime
-mtime n:n为数字,表示n天之前被修改的文件
+n:列出几天之前
-n:列出几天之内
-newer file :file 为一个存在的文件,列出比 file 还要新的文件

具体时间线:
在这里插入图片描述

十分重要的复习

1.让用户进入目录成为工作目录的基本权限:
命令:cd
目录所需权限:至少需要x
额外要求:如果用户想要在这个目录中用ls,则必须要r权限

2.用户在某个目录读取一个文件:
命令:cat less more
目录所需权限:对这个目录要有x权限
文件所需权限:至少要有r

3.用户修改一个文件的基本权限:
命令:vi vim nano
目录权限:x
文件权限:至少r , w

4.用户建议一个文件所需权限:
目录:要有w,x,重点在于w

5.进入目录所执行该目录的某个命令的基本权限:
目录:x
文件:x

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值