鸟哥的Linux私房菜-第六章、Linux 文件与目录管理


前言

本章进一步讲解操作与管理文件及目录,包括在不同的目录间变换、创建与删除目录、创建与删除文件,还有寻找文件、查阅文件等内容。


一、目录与路径

1.相对路径与绝对路径

  • 绝对路径:由根目录 / 写起,正确度好
  • 相对路径;相对当前工作目录的路径,方便

2.目录的相关操作

(1)特殊目录

  • . 代表此层目录
  • ..代表上一层目录
  • - 代表前一个工作目录
  • ~ 代表“目前使用者身份”所在的主文件夹
  • ~account 代表 account 这个使用者的主文件夹(account是个帐号名称)

注意:根目录的上一层(..)与根目录自己(.)是同一个目录。

(2)常见操作

  • cd:变换目录
  • pwd:显示目前的目录
  • mkdir:创建一个新的目录,递归创建:mkdir -p test1/test2/test3/test4
  • rmdir:删除一个空的目录,被删除的目录里面必定不能存在其他的目录或文件,递归删除:rmdir -p test1/test2/test3/test4

(3)可执行文件路径的变量: $PATH

  • 不同身份使用者默认的PATH不同,默认能够随意执行的指令也不同;
  • PATH是可以修改的,PATH="${PATH}:/root"
  • 使用绝对路径或相对路径直接指定某个指令的文件名来执行,会比搜寻PATH来的正确;
  • 指令应该要放置到正确的目录下,执行才会比较方便;
  • 本目录(.)最好不要放到PATH当中。

二、文件与目录管理

1.引入库

(1)文件与目录的检视:ls

ls [-adl] 文件名或目录名称 文件名或目录名称 ...
其中 -a表示列出全部文件,包含隐藏文件;-d表示仅列出当前工作目录本身;-l表示列出详细信息,包含属性和权限等。

(2)复制、删除与移动: cp, rm, mv

cp(复制文件或目录)

cp [-aipr] 来源文件(source1 source2 source3 ....) 目标文件(destination)
其中多个来源时,目标文件必须为目录;-a代表可复制链接,递归复制所有权限;-i代表覆盖前询问;-p代表权限用户时间一起复制;-r代表递归复制。

注意:在默认的条件中,cp 的来源文件与目的文件的权限是不同的,目的文件的拥有者通常会是指令操作者本身。

rm (移除文件或目录)

rm [-fir] 文件或目录
其中-f代表强制删除;-i代表删除前确认;-r代表递归删除。

mv (移动文件与目录,或更名)

mv source1 source2 source3 .... destination
其中多个来源时,目标文件必须为目录。

(3)取得路径的文件名称与目录名称

[root@study ~]# basename /etc/sysconfig/network
network <== 很简单!就取得最后的文件名~
[root@study ~]# dirname /etc/sysconfig/network
/etc/sysconfig <== 取得的变成目录名了!

三、文件内容查阅

(1)内容查阅

  • cat 由第一行开始显示文件内容,-n代表显示行号(包含空白行);
  • tac 由最后一行到第一行反向在屏幕上显示出来,是 cat 的倒着写;
  • nl 显示行号和内容;
  • more 一页一页翻动,space下翻一页,Enter下翻一行,/搜索,q退出;
  • less 一页一页翻动,space或pagedown下翻一页,pageup上翻一页,/搜索,n/N向下/向上查询下一个,q退出;
  • head 取出前面几行,-n 20代表取前二十行;
  • tail 取出后面几行,-n 20代表取后二十行;
  • od 以二进制的方式读取文件内容,以默认字符、ASCII、八进制、十进制输出,也可以对照输出;

(2)修改文件时间或创建新文件: touch

文件的时间参数 意义
modification time (mtime) 内容变更时更新mtime,ls -l显示的是此时间
status time (ctime) 状态(权限和属性)改变时更新ctime
access time (atime) 文件的内容被取用(cat 去读取)时更新atime

使用ll --time=mtime/ctime/atime 文件来查阅时间参数

  • touch可以创建一个空的文件;
  • touch可以修改某个文件的日期 (mtime 与 atime)

四、文件与目录的默认权限与隐藏权限

1.文件默认权限:umask

首先需要知道,创建文件时默认不具有x(执行)权限,即-rw-rw-rw-;创建目录默认为drwxrwxrwx。

umask指目前使用者在创建文件或目录 时候的权限默认值,插叙方式如下:

umask 输出 0022
umask -S 输出 u=rwx,g=rx,o=rx

umask查询出的权限为创建文件或目录时需去除的权限。

2.文件隐藏属性

(1)chattr (设置文件隐藏属性)

chattr [+-=][ai] 文件或目录名称
其中-a代表文件将只能增加数据,而不能删除也不能修改数据,且只有root才能设置此属性;-i代表不能被删除、改名、设置链接也无法写入或新增数据,且只有root才能设置此属性。

(2)lsattr (显示文件隐藏属性)

lsattr [-adR] 文件或目录
其中-a代表显示隐藏文件;-d代表仅显示目录本身;-r代表同时显示子目录数据。

3.文件特殊权限: SUID, SGID, SBIT

(1)Set UID(对目录无效)

例:-rwsr-xr-x

  • SUID 权限仅对二进制程序(binary program)有效;
  • 执行者对于该程序需要具有 x 的可执行权限;
  • 本权限仅在执行该程序的过程中有效 (run-time);
  • 执行者将具有该程序拥有者 (owner) 的权限。

(2)Set GID

例:-rwx–s–x.

a.对于文件

  • SGID 对二进制程序有用;
  • 程序执行者对于该程序来说,需具备 x 的权限;
  • 执行者在执行的过程中将会获得该程序群组的支持。

b.对于目录

  • 使用者若对于此目录具有 r 与 x 的权限时,该使用者能够进入此目
    录;
  • 使用者在此目录下的有效群组(effective group)将会变成该目录的 群组;
  • 用途:若使用者在此目录下具有 w 的权限(可以新建文件),则使用者所创建的新文件,该新文件的群组与此目录的群组相同。

(3)Sticky Bit(对文件无效)

例:-rwxr-xr-t

  • 当使用者对于此目录具有 w, x 权限,亦即具有写入的权限时;
  • 当使用者在该目录下创建文件或目录时,仅有自己与 root 才有权力对该文件删除/更名/移动等,无法删除他人的文件。

(4)SUID/SGID/SBIT 权限设置

因为 s 与 t 都是取代 x 这个权限的,没有x权限时授权,使用大写的 S 与 T表示,例:-rwSrwSrwT。

  • 方法一,4 为 SUID,2 为 SGID,1 为 SBIT,chmod 4755 test
  • 方法二,SUID 为 u+s ,而 SGID 为 g+s ,SBIT 则是 o+t,例:chmod u=rwxs,go=x test

4.观察文件类型:file 文件或目录 文件或目录 ....

五、指令与文件的搜寻

1.指令文件名的搜寻

which (寻找“可执行文件”)

which [-a] command
其中,-a代表将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称。

2.文件文件名的搜寻

(1)whereis (由一些特定的目录中寻找文件文件名)

whereis 文件或目录名 文件或目录名 ....
whereis -l
其中-l代表查询的目录。

(2)locate / updatedb

locate keyword
locate 依据 /var/lib/mlocate 内的数据库记载,找出使用者输入的关键字文件名。
updatedb
updatedb 指令根据 /etc/updatedb.conf 的设置去搜寻系统硬盘内的文件 名,并更新 /var/lib/mlocate 内的数据库文件。

(3)find

find最强大,但检索硬盘非常消耗资源

支持检索以下三类:
1.与时间有关的选项;
2.与使用者或群组名称有关的参数;
3.与文件权限及名称有关的参数;
4.额外可进行的动作。


总结

本章又是基础知识很多很重要的一章,常用指令应该烂熟于心,非常用指令也需要大概了解,工作中用到时能够通过查询指令词典快速回忆起使用方法。

猜你喜欢

转载自blog.csdn.net/qq_39271952/article/details/128193785
今日推荐