Linux基础知识与实操-篇二:初识Linux目录管理与操作


在经过上篇 篇一:初识Linux文件权限与配置 后,我们已经基本熟悉并使用了Linux关于文件管理相关的内容,本篇则继续从文件深入,探究目录管理,这里一定要记住: 在Linux系统中,一切皆文件!

文件与目录管理

相对路径与绝对路径

  • 绝对路径:
    由 根目录/写起,例如 /usr/share/doc
    一般来说,如果是 shell脚本等类似的程序,务必使用 绝对路径的写法
  • 相对路径:
    不是由/写起,. 表示当前目录,.. 表示上一级目录(父目录)

关于目录的基本常识:
使用命令cd - 就可以回到上一个工作目录,实现直接跳回的操作了
image

在所有目录底下都会存在的两个目录,分别是『.』与『..』 分别代表此层与上层目录的意思

那么在Linux 的根目录下,是否也存在上层目录呢?
若使用『 ls -al / 』去查询,可以看到根目录下确实存在 . 与 … 两个目录,再仔细的查阅, 可发现这两个目录的 属性与权限完全一致,这代表根目录的上一层(…)与根目录自己(.)是同一个目录

目录相关操作

cd  	变换目录

pwd  	见识当前目录,pwd -P 可以取得正确的目录名称,而不是以链接文件的路径来显示

mkdir  	建立一个新目录
-m 选项,配置文件的权限,直接设定,不需要看预设权限
-p 选项,直接将所需要的多层目录,递归建立起来

rmdir  	删除一个空目录

image

执行文件路径的变量:
为什么在Linux系统的任何地方都可以执行 基础命令,比如 ls 命令

因为,我们在写入命令后,系统会按照 PATH 的设定去设定每个 PATH定义的目录下搜寻文件名为 ls 的可执行文件,如果在 PATH 定义的目录中含有多个文件名为 ls 的可执行文件,那么先搜寻到的同名指令先被执行。
image

因为基本都包含在 PATH 这个变量内了,所以基本在任何地方都可以使用 这些基本命令了

查看文件的基本操作:ls
更多选项如下:
image

复制文件或目录:cp
image

cp 指令在不同身份的人执行,会有不同的结果产生,而且差异很大
一般在备份文件的时候,如果使用cp 命令,默认 cp 的 来源档和目的档 的权限是不同的,目的档 的拥有者通常会是指令的操作者本身,就是说如果 root 用户 cp 了其他用户的目录,那么目的目录的拥有者就变为 root用了,不再是 其他用户了
所以在备份的时候,需要特别注意 特殊权限和文件,例如 密码文件(/etc/shadow), 需要 -a-p 选项才可以完整复制问价权限的选项

如果遇到 连接文件,cp 命令是默认 复制源文件,而不是复制 链接文件的属性,如果非要链接文件,就需要指定 -d 选项了

移除文件或目录:rm
image

rm 指令前 加上 \,可以忽略 alias 的指定选项

移动文件目录或更名:mv
image

重命名文件,也可以使用 rename 命令

查阅文件相关操作

查阅一个文件的命令,不仅仅是 cat 命令(这个是连续 c o n c a t e n a t e concatenate concatenate的简写

  • cat: 从第一行开始显示文件内容
    image
  • tac: 从最后一行开始显示,cat 命令的反写
  • nl: 显示的时候,可以输出行号
    image
  • more: 一页一页的显示文件内容
    image
  • less: 与 more 类似,但是可以向前翻页
    image
  • head: 只看开头几行,如果 n 是负数,那么就不列出从尾计算的n行,打印从头开始的剩余行
    image
  • tail: 只看后面几行,如果要获取 中间的几行,可以配合管道符,使用 headtail 实现
    image
  • od: 以二进制方式读取文件内容
    image

修改文件时间或创建文件:touch
image

要注意一点,我们在复制一个文件时,复制左右的属性,唯独无法复制 ctime 属性
image

文件预设权限

我们可以通过 chmod 更改权限,但是在建立目录 或 文件 的时候,默认会有一个权限,这个权限的赋予,就是通过 umask 命令实现的:

# 八进制数字表示权限,第一位表示特殊权限,可以先忽略,重点关注后面三个
[root@AliComputer william]# umask
0022
# -S 选项执行使用字母表示权限
[root@AliComputer william]# umask -S
u=rwx,g=rx,o=rx
[root@AliComputer william]# 

在默认权限属性上,umask 表示的是 该默认值需要减掉的权限,因为 r w x 可以分别用八进制数字 4 2 1 来表示,比如上面的 022, 就表示 当前用户拥有全部权限,同组其他用户被去掉了 写权限,其他组用户被去掉了 写权限

如果要修改默认权限, 只需要 umask num 就可以了,其中 num 为 八进制权限表示数字

配置文件隐藏属性:chattr
image

这个指令在 系统的数据安全上有很重要的作用,最重要的就是 +i+a 属性了

显示文件隐藏属性:lsattr
image

显示文件类型:file
image

搜索与文件

搜寻指令或文件:which
image

which 预设是找 PATH 内所规范的目录 , 所以有些 bash 命令是无法通过 which 命令找到的

文件的搜索

一般是不采用 find 命令搜索文件的,不仅仅是因为速度慢,也是因为 对硬盘操作很多,所以一般是使用 whereislocate 命令来获取 文件,实在找不到了,才会考虑使用 find 命令

在特定目录中寻找文件或文件名:whereis
image

因为 whereis 只找几个特定的目录而已~ 并没有全系统去查询之故。所以说, whereis 主要是针对 /bin /sbin 底下的执行档, 以及 /usr/share/man 底下的 man page 文件,跟几个比较特定的目录来处理而已。所以速度当然快的多!

文件的部分名称的搜索:locate
image

因为 locate 寻找的数据是由『已建立的数据库 /var/lib/mlocate/』 里面的数据所搜寻到的,所以不用直接在去硬盘当中存取数据, 速度就很快
但是一般该数据库是每天执行一次更新操作,所以入股还 没有更新数据库的话,就会找不到该文件,可以选择 手动更新数据库:updatedb 命令,updatedb 指令会去读取 /etc/updatedb.conf 这个配置文件的设定,然后再去硬盘里面进行搜寻文件名的动作, 最后就更新整个数据库文件(这里就会读取硬盘,所以会很慢)

  • updatedb:根据 /etc/updatedb.conf 的设定去搜寻系统硬盘内的文件名,并更新 /var/lib/mlocate 内的数据库
    文件;
  • locate:依据 /var/lib/mlocate 内的数据库记载,找出用户输入的关键词文件名

在硬盘中搜索文件:find
image

我们现在知道 atime(上一次访问该文件的时间[读取或执行该文件]), ctime(上一次修改该文件内容或访问权限等) 与 mtime(上一次修改文件内容[特指文件内容]) 的意义,如果你想要找出一天内被
更动过的文件名, 可以使用上述范例一的作法。但如果我想要找出『4 天内被更动过的文件档名』
呢?那可以使用『 find /var -mtime -4 』。那如果是『4 天前的那一天』就用『 find /var -mtime 4 』。有没有加上『+, -』差别很大!!

find 的其他用法:
image

还有更多用法:
image
image

find 的特殊功能:
image

find 命令可以实现 额外的动作,上面 范例八 的例子图解如下:
image

基本权限与指令

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

  • 可使用的指令:例如 cd 等变换工作目录的指令;
  • 目录所需权限: 用户对这个目录至少需要具有 x 的权限
  • 额外需求:如果用户想要在这个目录内利用 ls 查阅文件名,则用户对此目录还需要 r 的权限。

二、用户在某个目录内读取一个文件的基本权限为何?

  • 可使用的指令:例如本章谈到的 cat, more, less 等等
  • 目录所需权限:用户对这个目录至少需要具有 x 权限;
  • 文件所需权限: 使用者对文件至少需要具有 r 的权限才行!

三、让使用者可以修改一个文件的基本权限为何?

  • 可使用的指令:例如 nano 或未来要介绍的 vi 编辑器等;
  • 目录所需权限:用户在该文件所在的目录至少要有 x 权限;
  • 文件所需权限: 使用者对该文件至少要有 r, w 权限

四、让一个使用者可以建立一个文件的基本权限为何?

  • 目录所需权限: 用户在该目录要具有 w,x 的权限,重点在 w 啦!

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

  • 目录所需权限:用户在该目录至少要有 x 的权限;
  • 文件所需权限:使用者在该文件至少需要有 x 的权限

最后

一起提高,慢慢变强。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值