目录
一、Liunx目录结构
1.1、linux目录结构
linux目录结构是树形目录结构
根目录(树根)
- 所有分区,目录,文件等的位置起点
- 整个树形目录结构中,使用独立的一个"/",表示
需要注意一下的是Linux 操作系统中只有一个根目录,而 Windows 操作系统中每个分区都有一个根目录,这点需要加以区别。
1.2、常见的子目录
必须知道
Linux 操作系统在定位文件或目录位置时,使用斜杠“/”进行分隔(区别于 Windows 操作系统中的反斜杠“\”)
目录路径 | 目录作用 |
---|---|
/root | 系统管理员root的宿主目录 |
/home | 普通用户的宿主目录 |
/boot | 系统内核、启动文件存放位置 |
/dev | 设备文件存放位置 |
/etc | 配置文件存放位置 |
/bin | 所有用户可执行的命令存放位置 |
/sbin | 管理员可执行的管理命令存放位置 |
/usr | 应用程序存放位置 |
/var | 日志文件等存放位置 |
- /boot:此目录是系统内核存放的目录,同时也是系统启动时所需文件的存放目录, 如vmlinuz 和 initrd.img。在安装 Linux 操作系统时,为 boot 目录创建一个分区, 有利于对系统进行备份。
- /bin:bin 是 binary 的缩写。这一目录存放了所有用户都可执行的且经常使用的命令,如 cp、ls 等。
- /dev:此目录保存了接口设备文件,如/dev/hda1、/dev/cdrom 等。
- /etc:系统主要的配置文件几乎都放置到这个目录内,例如人员的账号密码文件、各种服务的起始文件等。
- /home:存放所有普通系统用户的默认工作文件夹(即宿主目录、家目录),如用户账号“teacher”对应的宿主目录位于“/home/teacher/”。如果服务器需要提供给大量的普通用户使用,建议将“/home”目录也划分为独立的分区,以方便用户数据的备份。
- /root:该目录是 Linux 操作系统管理员(超级用户)root 的宿主目录,默认情况下只有 root 用户的宿主目录在根目录下而不是在“/home”目录下。
- /sbin:存放 Linux 操作系统中最基本的管理命令,一般管理员用户才有权限执行。
- /usr:存放其他的用户应用程序,通常还被划分成很多子目录,用于存放不同类型的应用程序。
- /var:存放系统中经常需要变化的一些文件,如系统日志文件、用户邮箱目录等, 在实际应用系统中,“/var”目录通常也被划分为独立的分区。
二、查看及检索文件
2.1、查看全部内容
查看文件内容cat命令
cat /etc/sysconfig/network-scripts/ifcfg-ens33 //配置文件中的内容,并了解第一块以太网卡的配置信息。
cat /etc/redhat-release /proc/version // 文件的内容,前者记录了 CentOS 系统的发行版本信息,后者记录了系统内核及开发环境、时间等信息。进程;process 过程
但是用这个命令在长文件会看不过来
可以使用more或者是less分页
- more命令
全屏方式分页显示文件内容
交互操作方法
按Enter键向下逐行滚动
按空格键向下翻一屏
按b键向上翻一屏
按q键退出 - less命令
与 more命令相同,但扩展功能更多
交互操作方法
page up 向上翻页,page down 向下翻页,上下键盘
按 ”/“ 键查+找内容, "n"下一个内容,"N"上一个内容
其他功能与more命令基本类似。
除了可以分屏查看文件内容以外,还可以结合管道符号“|”分屏查看执行命令时的输出信息,这在命令输出内容较多的情况下特别有用。 但是more 命令只能向下翻页,不能向上翻页。
2.2、查看其中几条内容
查看文件内容head,tail命令 中
- head命令
head -n(n为数字,行数) 文件名,用途:查看文件开头的一部分内容 (默认为10行)
- tail命令
用途:查看文件结尾的少部分内容 (默认为10行)
tail -n 文件名
实时查看文件
tail -f 文件名(重要)追踪
实验一
可以查看用户账号文件/etc/passwd 开头第一行至第四行的内容
实验二
tail 命令通常用于查看系统日志(因为较新的日志记录总是添加到文件最后),以便观察网络访问、服务调试等相关信息。配合“-f”选项使用时,还可以跟踪文件尾部内容的动态更新,便于实时监控文件内容的变化
2.3、文件内容统计
wc 命令用于统计文件内容中包含的行数、单词数、字节数等信息,使用文件名作为参数,可以同时统计多个文件
例如,Linux 操作系统中的用户账号数据保存在/etc/passwd 文件中,其中每一行记录对应一个用户,则以下操作可以统计出当前Linux 操作系统中拥有的用户账号数量
若将 wc 命令与管道符号一起使用,还可以对命令输出结果进行统计。
/etc/目录下共包含多少个扩展名为“.conf”的文件,可以先通过“find /etc -name "*.conf"”命令找出符合条件的文件位置,由于 find 命令的输出结果也是每行一个文件记录,因此只需结合管道符号执行“wc -l”操作即可得出符合条件的文件数量
2.4、检索和过滤文件内容
grep命令
在文件中查找并显示包含指定字符串的行
可以直接指定关键字符串作为查找条件,也可以使用复杂的条件表达式(例如,“^word”表示以 word 开头,“word$”表示以 word 结尾,“^$”表示空行)
格式
grep [选项] 查找条件 目标文件
常用命令选项
-i:查找时忽略大小写
-v: 反转查找,输出与查找条件不相符的行
2.4.1、实验1
2.4.1、实验2
在维护 Linux 操作系统的过程中,经常会遇到包含大量内容的配置文件,而其中往往包含了许多空行和以“#”开头的注释文字,当只需要分析其中的有效配置信息时,这些空行和注释文字的存在不利于快速浏览。使用 grep 命令可以过滤掉这些无关信息。例如,以下操作可以显示/etc/yum.conf 文件中以“#”开头的行和空行以外的内容。
grep -v "^#" /etc/yum.conf | grep -v "^$"
^
是一个特殊字符,表示一行的开始(开头,就是说只用开头的才算)
为什么在这两个grep
表达式中都要加^
呢?
- 对于
^#
,如果不加^
,那么任何包含#
的行都会被匹配,而不仅仅是注释行(即那些以#
开头的行)。 - 对于
^$
,这个表达式用于匹配空行。空行就是那些没有任何字符(包括空格、制表符等)的行。^
表示一行的开始,$
表示一行的结束,所以^$
就匹配那些开始和结束都在同一位置的行,即空行。
三、备份及恢复文档
3.1、压缩命令gzip,bzip2命令
gzip格式的文件通常具有.gz的后缀,gzip通常可以将纯文本内容压缩到原大小的40%左右。
bzip2通常可以将文件压缩到原始大小的10%至15%。虽然其压缩速度相对较慢,但解压速度较快,且压缩率通常高于gzip。
- 制作压缩文件
- gzip [-9] 文件名。
- bzip2 [-9]文件名。
- 解开压缩文件
- gzip -d gz格式的压缩文件 或者gunzip
- bzip2 -d bz2格式的压缩文件 或者bunzip2
1-9代表级,别默认是6级别,
使用1级别压缩比例最少但是压缩速度最快 ,9级压缩比例最大但是压缩速度最慢。
3.2、xz和zip
xz
是一种高效的压缩工具,它使用LZMA(Lempel-Ziv-Markov chain-Algorithm)算法进行压缩。这种算法通常比传统的gzip压缩算法具有更高的压缩率,但压缩和解压缩速度可能较慢。
用法
- 制作压缩文件
xz [要压缩的文件]
zip -r [归档文件名.zip] [要压缩的文件或目录]
- 解开压缩文件
- unxz [要解压缩的文件] 或者 xz -d [要解压缩的文件]
- unzip [归档文件名.zip] -d [解压目录]
3.3、一些区别
- bzip2:专注于单文件压缩,不提供归档功能(即多个文件打包成一个文件),但是压缩率高,数据恢复方面也有实用性。通常与其他工具(如tar)结合使用,以创建压缩的归档文件。
- zip:除了文件压缩外,还支持归档功能,可以将多个文件和目录打包成一个单独的
.zip
文件。这使得zip在需要处理多个文件或目录的压缩场景中更加灵活(但是压缩率不如bzip2)。
以下是xz、bzip2、zip和gzip的简要区分表格:
特性 | xz | bzip2 | zip | gzip |
---|---|---|---|---|
压缩率 | 高 | 较高 | 中等 | 中等偏低 |
压缩速度 | 中等 | 较慢 | 较快 | 较快 |
解压速度 | 较快 | 较快 | 较快 | 较快 |
算法 | LZMA/LZMA2 | Burrows-Wheeler变换 + Huffman编码 | DEFLATE/LZ77等 | DEFLATE |
多文件支持 | 不支持 | 不支持 | 支持 | 不支持 |
归档功能 | 需要配合tar等工具 | 需要配合tar等工具 | 内置归档功能 | 需要配合tar等工具 |
错误修复能力 | 无特别说明 | 有一定能力 | 无特别说明 | 无特别说明 |
跨平台性 | 是 | 是 | 是 | 是 |
扩展名 | .xz | .bz2 | .zip | .gz |
典型应用场景 | 需要高压缩率,如软件分发 | 需要高压缩率,如软件分发、备份 | 归档多个文件,如文档、图片等 | 压缩单个文件,尤其是文本文件 |
请注意,这个表格是基于一般情况下的观察和比较,具体表现可能会因文件类型、文件大小、硬件性能等因素而有所不同。在选择压缩工具时,最好根据具体需求进行测试和评估。
3.4、实验
打一个文件
压缩后大小,bizp2小一些,说明压缩率高一些
扩展
- time: 这是一个shell命令,用于测量另一个命令的执行时间。当你运行
time command
时,shell会先运行command
,然后在命令完成后显示其执行时间。 -c
选项告诉gzip将输出(即压缩后的数据)直接发送到标准输出(stdout),而不是写入文件。- > 1.txt: 这是shell重定向的一个例子。
>
符号将前面命令的标准输出(stdout)重定向到一个文件。结合-c,gzip -c ceshisize.txt
的输出(即ceshisize.txt
的压缩版本)被重定向到名为1.txt
的文件中。
3.5、归档命令tar命令
归档文件通常是一个或多个文件和目录的集合,它们被打包成一个单独的文件以便于存储、传输或备份。tar
命令本身不提供压缩功能,但可以与压缩工具(如 gzip、bzip2、xz 等)结合使用以创建压缩归档文件。
补充:
在 Linux 操作系统中,最简单的文件和目录备份工具就是 cp(复制)命令。但是当需要备份的文件、目录数量较多时,仅仅使用 cp 命令就显得“力不从心”,并且备份的文件数量及其所占用的磁盘空间都可能会对服务器产生不小的压力。因此,有必要对需要备份的数 据进行归档和压缩。
这里所说的归档操作实际上相当于“打包”,即将许多个文件和目录合并保存为一个整体 的包文件,以方便传递或携带。而压缩操作可以进一步降低打包后的归档文件所占用的磁盘 空间,充分提高备份介质的利用率。
- 制作归档文件
tar 【选项】 归档文件名 源文件或目录
- 释放归档文件
tar [选项】归档文件名 【c目标目录】
tar 命令主要用于对目录和文件进行归档。在实际的备份工作中,通常在归档的同时也会将包文件进行压缩(需要调用前面的 gzip 或 bzip2 命令),以节省磁盘空间。使用 tar 命令时,选项前的“-”号可以省略。常用的几个选项如下所述。
- -c:创建(Create).tar 格式的包文件。
- -C:解压时指定释放的目标文件夹。
- -x:解开.tar 格式的包文件。
- -p:打包时保留文件及目录的权限。
- -P:打包时保留文件及目录的绝对路径。
- -t:列表查看包内的文件,而不提取内容。
- -v:输出详细信息(Verbose)。
- -z:调用 gzip 程序进行压缩或解压。
- -j:调用 bzip2 程序进行压缩或解压。
- -f:表示使用归档文件,指定使用的归档文件的名称
常用的组合命令
压缩czvf cjvf z是g j是b2
解压xzvf xjvf
czf cjf
xzf xjf
3.5.1、制作归档备份文件
假设我们要创建一个 /etc 和 /opt/文件夹的归档文件,并且还希望使用 gzip 工具将其压缩。可以使用 tar 命令中的 -z
选项来实现。此类归档文件的扩展名是 tar.gz 或 tgz
需要注意的是,在备份恢复目录或文件时,最好先将工作路径切换至目标目录或文件的所在路径,然后在执行备份命令时使用相对路径,以防输入命令时因手误而导致根目录“/” 下重要文件损坏。
而且如果打包目标是绝对路径会出现警告tar: 从成员名中删除开头的“/”
czvfp
当然我们还可以排除
--exclude=*.conf
那么tar -jcpvf archive.tar.bz2 /etc/ /opt/ --exclude=*.conf
3.5.2、查看列出压缩归档文件的内容
tvf
3.5.3、从归档文件中恢复数据
-x:解开.tar 格式的包文件。
-C:解压时指定释放的目标文件夹。
tar -xjvf b.tar.gz -C /kgc
在大部分的备份及恢复工作中,只使用 tar 命令就可以很好地结合 gzip、bzip2 工具协同工作,无须再执行 gzip 或 bzip2 命令。但是要注意这两个压缩工具的命令程序必须存在。