Linux教程

Linux 文件与目录管理知识点

本文主要是介绍Linux 文件与目录管理知识点,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

由于这学期在学习Linux操作系统,为方便后期进行复习,现将对学习的知识进行整理。

PART 1 Linux 文件与目录管理

(1)绝对路径与相对路径
绝对路径:一定由根目录/写起,例如/user/share/doc
相对路径:相对路径意指相对于当前工作目录下的路径
(2)切换目录命令 cd
语法:cd [目标路径]
(3)比较特殊的目录

. 代表当前目录
… 代表上一层目录
- 代表前一个工作目录
~ 代表目前使用者身份所在的家目录
~[用户名] 例如:~account 代表account这个使用者的家目录

(4)常见的处理目录的命令:

  1. cd 切换目录
  2. pwd 显示当前的工作目录(显示当前所在目录)
  3. mkdir 新建一个新目录(创建文件夹)

语法: mkdir [选项] 目录路径 注意:通常情况下,目录得由小到大一层一层创建
① mkdir -p [多层文件夹路径] #实现递归新建文件夹(依序创建)
例如:mkdir -p /home/bird/a/b/c 即使文件夹已存在,程序也不会报错
② mkdir -m [权限的八进制值组合][路径] #实现在创建文件夹时,强制设置新目录的相关权限
八进制计算 =》 rwx 依次占位计算

  1. rmdir 删除一个空目录(rmdir 仅可删除空文件夹)

注意:通常情况下,目录得由内到外一层一层删除,且被删除的目录里面必定不能存在其他的目录或文件(即该目录为空文件)
①rm -r [指定目录]
将要删除的目录下所有东西都删除,递归进行删除,会依次进行提问 (比较危险)==》所有都删除,包括非空目录
②rmdir -p [指定目录]
将要删除的目录下所有空目录都删除,递归删除,仅空目录

(5)查看执行文件路径的变量:$PATH

语法:echo $PATH

(6)文件和目录的查看: ls

语法: ls [选项] 文件名(or 文件路径)
常用选项列举

  1. -a 显示全部的文件,包括隐藏文件(开头为 . 的文件)
  2. -d 仅显示目录本身,而不是列出目录内的文件数据
  3. -l 显示详细信息,包含文件的属性与权限等数据
  4. -R 递归显示全部文件,连同子目录的内容一起列出来,等于该目录下的所有文件都会显示出来。

当仅执行ls时,默认显示的为非隐藏的文件名、以文件名进行排序及文件名代表的颜色显示(蓝色代表目录,白色显示一般文件)

(7)复制、删除、移动(重命名)操作: cp 、rm 、mv

① 复制文件或目录 cp
语法

  1. 单文件复制 =》cp [选项] 原文件(路径) 目标文件(路径)
  2. 多文件同时复制 =》cp [选项] 原文件1(路径)原文件2(路径)… 目标文件夹(目录路径)

常用选项列举

  1. -a :相当于 -dr --preserve=all的意思
  2. -i :若目标文件已存在,则覆盖时会先询问操作的进行
  3. -p :连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(常用于文件备份)
  4. -r :递归复制,用于目录的复制操作(带上所有的子目录)
  5. –preserve=all :除了-p的权限相关参数外,再加上SELinux的属性,links、xattr等也复制

前提:复制别人的数据,得先有该文件read的权限。
在默认的条件中,cp的源文件于目标文件的权限是不同的,目标文件的拥有者通常会是命令操作者本身,即复制来的文件归操作者所有。

② 删除文件或目录 rm
语法:rm [选项] 文件或目录
常用选项列举:

  1. -f :强制,忽略不存在的文件,不会出现警告消息;
  2. -I :交互模式,在删除前会进行询问,是否删除;
  3. -r :递归删除,最常用于删除目录,不会进行询问,直接进行删除,但这非常危险。

注意与rmdir的区别:rmdir仅删除空目录,rm删除全部(all)

③ 移动文件或目录,或重命名 mv
语法
单文件移动 =》mv [选项] 源文件(路径) 目标文件(路径)
多文件同时移动 =》rm [选项] 原文件1(路径)原文件2(路径)… 目标文件夹(目录路径)
常用选项列举:

  1. -f :强制,若目标文件已存在 ,不会询问,直接覆盖
  2. -i :若目标文件已存在,则会进行询问,是否覆盖
  3. -u :若目标文件已存在,且源文件较新,才会更新目标文件(完成更新功能) 文件(或目录)

重命名语法: mv 源文件 新名称

(8)获取路径的文件名与目录名(逻辑:以/进行判别)

获取文件名: basename 路径
获取目录名: dirname 路径

(9)文件内容查看

所有常见命令汇总
①由第一行开始显示文件内容(正序) cat
②从文件的最后一行开始显示(逆序) tac
③文件内容显示时,同时显示行号 nl
④一页一页地显示文件内容 more
⑤一页一页地显示文件内容,同时可实现往前翻页 less
⑥只看前面几行 head
⑦只看后面几行 tail
⑧以二进制方式读取文件内容 od

命令详解:

①直接查看文件内容 cat
语法:cat [选项] 文件名(路径)
常用选项列举
-b :标出行号,仅针对非空白行做行号显示,空白行不标行号;
-n :标出行号,连同空白行也一起显示行号; 从文件的开头开始显示,开头到结尾

②反向显示文件内容 tac
语法:tac [选项] 文件名(路径)
常用选项列举
-b : 标出行号,仅针对非空白行做行号显示,空白行不标行号;
-n :标出行号,连同空白行也一起显示行号; 从文件的结尾开始显示,结尾到开头

③添加行号打印 nl
语法:nl [选项] 文件
常用选项列举
-b : 指定行号,指定方式

  1. -b a :表示是否存在空行,同样列出行号(全部显示行号)
  2. -b t :除空行外显示行号(非空行显示行号)【默认值】

-n : 列出行号的三种表现形式:

  1. -n ln:行号在屏幕最左方显示
  2. -n rn:行号在自己栏位的最右方显示 且 不加0
  3. -n rz:行号在自己栏位的最右方显示,加0 -w :行号栏位的占用的字符数

④可翻页查看

(1). 一页一页翻动 more
要离开more这个命令的显示工作,可以按下q就能离开,而要进行向下翻页,使用空格键即可。
补充: 查找字符串的功能
/ 字符串 ===>字符串直接写,无引号
n :重复前一个查找(与/后的内容相关)
【查找实现逻辑】:输入 / 之后,光标就会跑到最下面一行,并等待输入,输入字符串,按下回车键后,more就会向下开始查找该字符串,而重复查找同一个字符串,可以通过按下n实现;最后通过按下q即可离开more。

(2).一页一页翻动 less
less相较于more更加灵活,more无法实现向前翻动,只能往后看,但less就可以使用[pageup]、[pagedown]按键实现向上向下翻动查看文件。
补充:查找字符串的功能
/ 字符串 : 向下查找字符串
?字符串 : 向上查找字符串
n :重复前一个查找(与/ 或?相关)
N :反向的重复前一个查找(与/或?相关)
q :离开less
【查找实现逻辑与more一致】

⑤ 数据截取

(1).取出前面的几行 head
语法: head [-n 行数] 文件
-n :后面接数字,代表显示几行

(2).取出末尾的几行 tail
语法:tail [-n 行数] 文件
-n :后面接数字,代表显示几行
-f : 表示持续刷新显示后面所接文件中的内容,等到按下ctrl +c结束执行

====》补充
① | 管道符 :前面的命令所输出的信息,通过管道交给后续操作继续执行(前命令的输出作为后命令的输入)
题型:显示/etc/man.conf的第11行到第20行
head -n 20 /etc/man.conf | tail -n 10

② ; : 用;号将每个命令进行分隔,表示连续命令的执行,每个命令之间用;分隔,程序会顺序执行命令。

(10)修改文件时间或创建新文件 touch
① 修改时间
将某个文件日期自定义为目前(mtime与atime)
语法: touch [选项] 文件
常用选项举例
-a :仅自定义access time
-c :仅修改文件时间,文件不存在,则不创建
-d :后面可接任意自定义时间,而不用目前的时间
-m :仅修改mtime;
-t :后面可接任意自定义时间,而不用目前的时间,格式为[YYYYMMDDhhmm];

②创建空文件
语法:touch 文件名

(11)修改文件/目录权限与隐藏权限
文件刚创建时,都采用默认权限
文件包括读、写、执行(r、w、x)等基本权限,以及是否为目录(d)与文件(-)或是连接文件(|)等的属性。

① 查看目前用户在建立文件和目录时候的权限默认值 umask
语法
(1) umask ==》直接输入umask ,以数字形式显示权限
就可以看到数字类型的权限设置值,第一位数字表示特殊权限,后三位数字表示一般权限
(2)umask -S ==》以符号类型的方式进行显示权限

默认权限
文件:文件默认没有可执行权限,即只有rw这两个项目,最大八进制数表示为666 ; -rw-rw-rw-
目录:则由于x与是否可以进入此目录有关,默认所有权限开放,最大八进制数表示为777 ; drwxrwxrwx
注意umask的数字指的是该默认值要减掉的权限,r,w,x 分别代表4,2,1。删掉了什么权限,umask的数字就显示对应数字。

这篇关于Linux 文件与目录管理知识点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!