0
点赞
收藏
分享

微信扫一扫

Linux目录和文件管理

写心之所想 2022-02-14 阅读 130

文章目录

一、Linux目录结构及特点

1.1 目录结构

由于 Linux 系统免费开源,使得 Linux 发行版本有很多,利用 Linux 开发产品的团队也有很多,如果任由每个人都按照自己的想法来配置 Linux 系统文件目录,后期可能会产生诸多的管理问题。试想,如果你进入一家公司,所用 Linux 系统的文件目录结构与所学的完全不同,实在令人头疼。

为了避免诸多使用者对 Linux 系统目录结构天马行空,Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。

FHS(Filesystem Hierarchy Standard,目录层次标准)定义了两层规范:第一层是 “/” 目录下的各个目录应该存放什么数据文件,例如:/etc目录下放置系统的配置文件,而/bin和/sbin放置程序及系统命令。第二层是针对/usr和/var这两个目录的的子目录来定义,例如:/var/log下存放的是系统日志文件等。

在这里插入图片描述

FHS 认为,Linux 系统的根目录(/)最为重要(没有之一),其原因有以下 2 点:
1. 所有目录都是由根目录衍生出来的;
2. 根目录与系统的开机、修复、还原密切相关;

常用的一级目录:

一级目录作用
/bin/存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行
/boot/系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
/dev/此目录保存了接口设备文件
/etc/配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等
/home/普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 lz 的主目录就是 /home/lz
/lib/系统调用的函数库保存位置
/media/挂载目录。系统建议用来挂载媒体设备,如软盘和光盘
/mnt/挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区
/misc/挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。
/opt/第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件
/root/root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下
/sbin/保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看
/tmp/临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空
/srv/服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据

常用的二级目录:

1. usr目录
usr(注意不是 user),全称为 Unix Software Resource,此目录用于存储系统软件资源。FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。
Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。

二级目录作用
/usr/bin/存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行
/usr/sbin/存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用。
/usr/lib应用程序调用的函数库保存位置
/usr/local手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置
/usr/share/应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录
/usr/includeC/C++ 等编程语言头文件的放置目录

2. var目录
/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。

二级目录作用
/var/lib程序运行中需要调用或改变的数据保存位置。如MySQL的数据库保存在 /var/lib/mysql/ 目录中
/var/log登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。
/var/run一些服务和程序运行后,它们的 PID(进程 ID)保存位置
/var/spool里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务。
/var/wwwRPM 包安装的 Apache 的网页主目录
/var/tmp一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除

总结一下:

  • 根(/),相当于一个入口,文件的总入口,也是唯一入口

  • bin(sbin),存放二进制文件,可执行文件,也可能存在别处,默认使用较多所有用户软连接文件

  • sbin,存放管理员可使用的二进制文件

  • boot,存放硬件文件(黄色)

  • etc,存放各种配置文件,类似于windows的注册表,一般都是文本文件

  • run,存放正在运行的文件

  • tmp,存放临时文件

  • usr,存放应用程序和操作系统相关的文件

  • var,存放日志文件,记录数据变化的

  • home,普通用户的家目录的上级目录,/home/lz

  • root,系统管理员的目录 /root

  • lib,存放动态库文件,类似于windows 的dll文件

  • proc ,主要保存系统的内核、进程、外部设备状态和网络状态等

  • media,存放可移动设备的文件

  • mnt,默认挂载点

  • opt,第三方应用程序安装所在目录程序

1.2 特点

  • 以 . 开头的文件均为隐藏文件
  • 路径用/分开
  • 文件名最长255个字符
  • 区分大小写

二、查看及检索文件

2.1 七类常见的Linux文件

字符文件类型
-表示普通文件,包括纯文本文件、二进制文件、各种压缩文件等等
bblock,表示块设备文件,就是保存大块数据的设备,比如最常见的硬盘
ccharacter,表示字符设备文件,这些文件通常隐藏在 /dev/ 目录下,当进行设备读取或外设交互时才会被使用,例如键盘、鼠标等
ddirectory,表示目录文件,类似Windows的文件夹
llink,表示链接文件,类似windows的快捷方式
ppipe,表示管道文件,主要用于进程间通信单向传输 一个发一个输管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误
ssocket,表示套接字文件,一般隐藏在/var/run目录下,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信

2.2 查看文件内容

2.2.1 cat命令

格式:cat [选项] [目标路径] …(目标路径可以有多个)

选项作用
-n显示行号(包括空行)
-b显示行号(不包括空行)
-s将所有的连续的多个空行压缩成一个空行
-A显示隐藏字符

在这里插入图片描述

在这里插入图片描述

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

多文件查看:
在这里插入图片描述

2.2.2 more命令

格式:more [选项] [文件名]
more命令执行后,会进入一种特殊的浏览模式,在这种模式下,有一些按键具备和用户进行交互来执行一些操作。

按键(交互指令)作用
h或?显示more命令中交互命令帮助
q或Q退出more的特殊浏览模式
v在当前行启动一个编辑器
:f显示当前文件的文件名和行号
!<命令>或 :!<命令>在子shell中执行指定命令
回车键向下移动一行
空格键向下移动一页
ctrl+l刷新屏幕
=显示当前行的行号
转到上一次搜索开始的地方
ctrl+f向下滚动一页
.重复上次输入的命令
/字符串搜索指定的字符串
d向下移动半页
b向上移动一页

在这里插入图片描述

2.2.3 less命令

less命令是出现的比较晚的分页显示的命令,它提供了比早期more命令更多的一些拓展功能。两个命令的用法基本相同

格式:less [选项] [文件名]

按键(交互指令)作用
PageUP向上翻页
PageDown向下翻页
/字符查找字符,n向下找,N向上找
h或?显示more命令中交互命令帮助
q或Q退出more的特殊浏览模式
v在当前行启动一个编辑器
:f显示当前文件的文件名和行号
!<命令>或 :!<命令>在子shell中执行指定命令
回车键向下移动一行
空格键向下移动一页
ctrl+l刷新屏幕
=显示当前行的行号
转到上一次搜索开始的地方
ctrl+f向下滚动一页
.重复上次输入的命令
/字符串搜索指定的字符串
d向下移动半页
b向上移动一页

more与less的区别:

  1. more命令查看文件时,左下角显示的是当前内容在整个文件中的百分比;less显示的是被查看文件的文件名
  2. more命令在阅读文件时,读完了会自动退出特殊浏览模式,回到终端;而less在读完文件时,是不会主动退出浏览模式的,需要手动的结束

2.2.4 head/tail命令

head和tail是一对作用相反的命令,前者用于显示文件开头的一部分内容,后者用于显示文件末尾的一部分内容。

格式:head/tail [选项] [文件名]
head最常用的选项就是 -n 一个,例如:head -n /etc/passwd(n为具体行数),就是指定显示passwd文件的前n行,若不指定行数,默认为10行
在这里插入图片描述
在这里插入图片描述

tail命令也一样,例如:tail -n /etc/passwd(n为具体行数),就是指定显示passwd文件的后n行,若不指定行数,默认为10行
在这里插入图片描述
在这里插入图片描述
tail命令通常用于查看系统日志,因为较新的日志记录总是会添加到文件最后,以便观察网络访问、服务调试等相关信息。

tail配合 -f 选项使用,可以实时更新文件尾部的内容,便于实时监控文件内容的变化。

这里我记录了ping 百度的实时数据:
在这里插入图片描述

2.2.5 tr命令

tr命令用于转换或删除文件中的字符。

tr指令从标准输入设备读取数据,经过字符串转译后,将结果输出标准输出设备。

格式:tr [选项] SET1 [SET2]
(注:当格式为 tr [选项] SET1时,只能跟SET1,不能再有SET2;当格式为 tr SET1 SET2时,不能加选项,意为将后面所有输入的SET1全部替换为SET2)

例如:我们想要将接下来输入的所有小写字母转换成为大写字母,我们可以这样写:
tr a-z A-Z
在这里插入图片描述

  • tr -d (删除)
    例如:tr -d abc,意思是将包含abc的字符中的abc删掉
    在这里插入图片描述
  • tr -s (压缩)
    例如:tr -s “ab”,意思是将包含多个a和b的字符中的a和b压缩成一个
    在这里插入图片描述

2.2.6 wc命令

wc,全称Word Count,用于统计文件内容中包含的行数、单词数、字节数等等,使用文件名作为参数,可以同时统计多个文件。

格式:wc [选项]… [文件名]…

选项作用
-l统计行数
-c统计字节数
-w统计单词个数

(注:如果不加选项,就是默认全都统计,即:wc -lwc)

在这里插入图片描述

2.2.7 grep命令

grep命令用于在文件中查找并显示包含指定字符的行,可以直接直定关键字符串作为查找条件,也可以使用复杂的条件表达式。

格式:grep [选项]… 查找条件 目标文件

选项作用
-i查找时忽略大小写
-o只显示匹配项
-v反向查找,输出与查找条件不符合的行
-f对比两个文件的相同内容

注:

  • 要查找的字符串以双引号括起来(单引号也可以)
  • “^……”表示以……开头,“……$”表示以……结尾
  • “^$”表示空行

先在1.txt中写点东西,查看:
在这里插入图片描述
过滤出1.txt中含a的行,不区分大小写:
在这里插入图片描述

过滤出1.txt中不含a的行
在这里插入图片描述
过滤出1.txt中不含a的行,不区分大小写:
在这里插入图片描述
过滤出1.txt中以a开头的行:
在这里插入图片描述
过滤出1.txt中以b结尾的行:
在这里插入图片描述
过滤出1.txt中的非空行:
在这里插入图片描述

三、备份与恢复文档

3.1 压缩、解压缩工具

3.1.1 gzip和gunzip命令

格式:gzip/gunzip 文件名

使用gzip制作的压缩文件默认的拓展名为 XX.gz,制作压缩文件时,使用“-9”选项可以提高压缩的比率,**但文件较大时会需要更多的时间。**可以同时压缩多个文件,解压时,gunzip可以同时解压多个,但gzip -d 只能解压一个

使用gzip压缩123.txt:
在这里插入图片描述
使用gunzip解压缩123.txt.gz:
在这里插入图片描述

或者使用gzip -d 进行解压缩,和gunzip一样的:
在这里插入图片描述

3.1.2 bzip2和bunzip2命令

使用方法与gzip命令一样,只是使用bzip2制作的压缩文件的拓展名为XX.bz2可以同时压缩多个文件可以同时压缩多个文件,解压时,bunzip2可以同时解压多个,但bzip2 -d 只能解压一个

在这里插入图片描述

3.2 tar归档和释放工具

tar主要用于对目录和文件进行归档。

使用tar命令时,选项前的“-”可以省略。

格式:tar [选项] … [归档的文件名(你想起的压缩包的名字)] [源文件或目录]

  • -c:创建(Create).tar 格式的包文件
  • -x:解开.tar 格式的包文件
  • -C:解压时指定释放的目标文件夹 指定目录
  • -f:表示使用归档文件(一般都要带上表示使用tar)
  • -v:输出详细信息(Verbose)
  • -j:调用 bzip2 程序进行压缩或解压
  • -z:调用 gzip 程序进行压缩或解压

注:一般情况下,使用tar命令时,都要绑定-f

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

举报

相关推荐

0 条评论