Linux--目录和文件管理(linux目录结构,查看、统计及检索文件,备份及恢复文档,VI文本编辑器的)
前言:
关于linux常用基础命令,可以看一下之前写的博客
链接: https://blog.csdn.net/m0_47219942/article/details/106669959.
一:Linux目录结构
1.1:树形目录结构
FHS(Filesystem Hierarchy Standard,目录层次标准)定义了两层规范:
第一层是“/”目录下的各个目录应该放什么数据文件。例如,/etc目录下放置系统的配置文件,而/bin 和/sbin 放置程序及系统命令。
第二层是针对/usr 和/var 这两个目录的子目录来定义,例如:/var/log下放置系统日志文件等。
CentOS系统中的目录和文件数据被组织为一个树形目录结构,所有的分区,目录,文件等都具有一个相同的位置起点—根目录。CentOS系统定位文件或目录位置时,使用斜杠“/”进行分隔(区别于Windows系统中的反斜杠“")。整个树形目录结构中,使用独立的一个”/“表示根目录,根目录是CentOS文件系统的起点,其所在的分区称为根目录。根目录下,CentOS系统将默认建立一些特殊的子目录,分别具有不同的用途。
1.2:根目录
1.所有分区,目录,文件等的位置七点
2.整个树形目录结构中,使用独立的一个“/”表示
1.3:常见的子目录及其作用
子目录 | 作用 |
---|---|
/root | 系统管理员root的宿主目录 |
/home | 普通用户的宿主目录 |
/bin | 所有用户可执行的命令。bin是binary的缩写,这一目录存放了所有用户都可以执行的且经常使用的命令。如cp,ls |
/sbin | 管理员可执行的管理命令。存放系统中最基本的管理命令 |
/boot | 系统内核、启动文件。启动分区(grub启动菜单,压缩内核等。)此目录是系统内核存放的目录,同时也是系统启动时所需文件的存放目录。 |
/usr | 应用程序。启动程序目录。存放其他的用户应用程序,通常还被划分成很多子目录,用于存放不同类型的应用程序。 |
/etc | 配置文件目录。此目录保存有关系统设置与管理的文件。 |
/var | 日志文件等。可变长文件(日志),存放系统中经常需要变化的一些文件,如系统日志文件,用户邮箱目录等。 |
/dev | 设备文件目录(磁盘,光驱等)。此目录保存了接口设备文件。 |
/tmp | 临时文件 |
/proc | 硬件信息(CPU,内存) |
/lib | 服务管理文件(systemctl)/lib/systemd/sysem/ |
二:查看及检索文件
2.1:查看文件内容
2.1.1:Cat命令查看文件内容—显示并连接(concatenate)文件的内容
Cat /etc/hosts
Cat /etc/sysconfig/network
Cat /redhat-release
Cat /proc/version
cat命令用途 | cat命令短板 |
---|---|
显示出文件的内容。cat命令本来用于连接多个文件的内容,但在实际使用中更多的用于查看文件内容。cat命令是应用最为广泛的文件内容查看命令。 | 无法翻页,当文件中内容较多时,很可能只能看到最后一部分信息,而前面的内容来不及看到。 |
cat命令的基本使用格式
cat [选项]文件名 可以同时查看多个文件的内容,可以添加多个文件路径作为查看对象。
例如:查看网卡配置文件中的内容,并了解其配置信息。
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
例如:查看多个文件内容
[root@localhost ~]# cat /etc/passwd /etc/passwd-
2.1.2:more命令
使用cat命令可以非常简单的直接显示出整个文件的内容,但是当文件中的内容较多时,很可能只能看到最后一部分信息,而文件前面的大部分内容却来不及看到。这时候就出现了more和less命令,通过采用全屏的方式分页显示文件,便于我们从头到尾仔细的阅读文件内容。
more命令是较早出现的分页显示命令,表示文件内容还有更多(more)的意思。less命令是较晚出现的分页显示命令,提供了比早期more命令更多的一些扩展功能。两个命令的用法基本相同。
more命令的基本使用格式
more [选项]文件名
例如:分屏查看/etc/passwd 的内容
[root@localhost ~]# more /etc/passwd
more命令交互操作方法 | 功能 |
---|---|
Enter键 | 向下逐行滚动 |
空格键 | 向下翻一屏 |
b键 | 向上翻一屏 |
q键 | 退出 |
more命令用途 | 分屏显示 |
---|---|
全屏方式分页显示文件内容,解决了无图形化界面只能看到尾页信息的问题。 | 在左下角显示当前内容在整个文件中的百分比。 |
2.1.3:Less命令查看文件内容
与more命令相同,但more左下角显示的是百分之几的内容,在最后一页时会直接退出,此时无法向上查看文件的内容,而less不会显示百分之几,不会直接退出可以向上翻看,扩展功能更多
less命令交互操作方法 | 功能 |
---|---|
Page Up键/Page Down键 | 向上翻页/向下翻页 |
/键 | 查找内容 |
n键 | 下一个内容 |
N键 | 上一个内容 |
其他功能与more命令基本相似
less命令的基本使用格式
less [选项]文件名
例如:分屏查看 /etc/passwd 的内容
[root@localhost ~]# less /etc/passwd
2.1.4:head命令
head 和tail是一对作用相反的命令,前者用于显示文件开头的一部分内容,后者用于显示文件末尾的一部分内容,可以使用“n”选项(n为具体的行数)指定需要显示多少行的内容。若不指定行数,默认只显示十行。
head命令的基本使用格式
head -n 文件名
例如显示目标文件“/etc/passwd的头四行”
[root@localhost ~]# head -4 /etc/passwd
2.1.5:tail命令
tail命令与head命令正好相反,用户查看文件末尾的内容。tail命令通常用来查看系统日志(因为较新的日志记录总是添加到文件最后),以便观察网络访问,服务调试等相关信息。配合“-f”选项使用时,还可以跟踪文件尾部内容 的动态更新,便于实时监控文件内容的变化。
例如,一下操作可以查看系统公共日志文件/var/log/message的最后十行内容,并在末尾跟踪显示改文件中的新纪录的内容。(按Ctrl + C 组合键终止)。
[root@localhost ~]# tail -f /var/log/messages
tail命令的基本使用格式
tail -n 文件名 或者 tail -f 文件名
2.1.6:init命令功能(Linux操作系统补充命令)
命令 | 功能 |
---|---|
init 0 | 关机 |
init 1 | 单用户模式(系统维护,破解密码) |
init 2 | 多用户模式没有网络 |
init 3 | 多用户有网络 |
init 4 | 保留 |
init 5 | 多用户模式图形化界面,且有网络 |
init 6/reboot | 重启 |
2.2:统计和检索文件内容
在维护Linux系统的过程中,除了查看文件内容以外,有时候还需要对文件内容进行统计,或者查找符合条件的文本内容。
2.2.1:wc命令—统计文件内容
wc命令用于统计文件内容中包含的行数,单词数,字节数等信息,使用文件名作为参数,可以同时统计多个文件。
wc命令交互操作方法 | 功能 |
---|---|
-c | 统计文件中内容的字节数 |
-l | 统计文件内容中的行数 |
-w | 统计文件内容中的单词个数(以空格或制表位作为分隔) |
使用不带任何选项的wc命令时,默认将统计指定文件的字节数,行数,单词个数(相当于同时使用-c , -l , -w 三个选项)
例如
[root@localhost ~]# wc /etc/passwd
41 79 2136 /etc/passwd
wc命令使用基本格式
wc [选项] 目标文件
当文件的行数,单词数或字节数具有特定的意义时,使用wc命令可以巧妙的获得一些特殊信息。
例如,Linux系统中的用户账号数据保存在/etc/passwd文件中,其中每一行记录对应一个用户,则我们可以统计出当前Linux系统中拥有的用户账号数量。
[root@localhost ~]# wc -l /etc/passwd
41 /etc/passwd
若将wc命令与管道符号一起使用,还可以对命令输出结果进行统计,例如,若要统计/etc/目录下包含多少个扩展名为“.conf"的文件,可以先通过”find /etc-name"*conf 命令找出符合条件的文件位置,由于find命令输出结果也是每行一个文件记录,因此只需结合管道符号执行“wc -l”操作即可的粗符合条件的文件数量。
[root@localhost ~]# find /etc-name"*.conf" | wc -l
2.2.2:检索和过滤文件内容grep命令
grep命令用于在文件中查找并显示包含指定字符串的行,可以直接指定关键字符串作为查找条件,也可以使用复杂的条件表达式(例如,“^word”标识以word开头,“wordKaTeX parse error: Expected group after ‘^’ at position 14: "“表示以word结尾,”^̲"表示空行)。
grep命令的使用基本格式
grep [选项] 查找条件目标文件
例如:在文件中查找包含“a”字符串的行
[root@localhost ~]# grep "a" /etc/passwd
grep命令交互操作方法 | 功能 |
---|---|
-i | 查找内容时忽略大小写 |
-v | 反转查找,即输出与查找条件不相符的行 |
查找条件设置(要查找的字符占以双引号括起来) | 解释 |
---|---|
“^…"" | 表示以…开头 |
”…$“ | 表示以…结尾 |
“^$” | 表示空行 |
三:备份与恢复文档
在Linux系统中,最简单的文件和目录备份工具就是cp复制命令。但是当需要备份的文件,目录数量较多时,仅仅使用cp命令就力不从心,且备份出来的文件数量及空间都会对服务器你产生不小的压力。面对这种情况,我们选择压缩和归档。
gzip和bzip2是Linux系统中使用最多的两个压缩工具,这两个命令都可以压缩指定的文件,或者将已经压缩过的文件进行解压。
3.1:gzip压缩命令
使用gzip制作的压缩文件默认的扩展名为“.gz”。
gzip 和 bzip 2命令交互操作方法 | 功能 |
---|---|
-9 | 压缩文件 |
-d | 解压文件 |
gunzip= gzip -d | 解压文件 |
gzip * | 对该目录下所有文件进行压缩 |
例:gzip -9 11.txt.gz ####对压缩包进行压缩 -9表示高压缩比
gzip -d 11.txt.gz ####对压缩包进行解压缩
3.2:bzip压缩命令
yum -y install bzip2^C 如果是没有安装bzip2,要安装
bzip2 -9 12.txt ###对12.txt 进行压缩 变为12.txt.bz2 -9表示高压缩比
bzip2 -d 12.txt.bz2 ###12.txt.bz2进行解压缩
3.3:Zip压缩命令
还有一种压缩是微软下常用的如XX.zip,这个如何解压缩呢?
yum -y install unzip ###安装解压缩
yum -y install zip ###安装压缩
zip -r opt.zip /opt ###将/opt/目录压缩成opt.zip压缩文件,放在/opt目录下
unzip -n opt.zip -d /tmp ###将压缩文件opt.zip在指定目录/tmp下压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先文件
unzip 1.zip ###将1.zip解压到当前目录下
3.4:tar命令—归档
tar命令主要用于对目录和文件进行归档。
在实际的备份工作中,通常在归档的同时也会将包文件进行压缩(gzip或bzip2),以便节省磁盘空间。
使用tar命令时,选项前的“-”号可以省略。
命令 | 解释 |
---|---|
-c(小c) | 创建tar格式的包文件(常用) |
-x | 解开.tar格式的包文件(常用) |
-v | 显示详细信息(常用) |
-f | 执行(常用) |
-t | 列表查看包内的文件 |
-z | 调用gzip程序进行压缩或解压(常用) |
-j | 调用bzip2程序进行压缩或解压(常用) |
-C(大C) | 解压时指定释放的目标文件夹(常用) |
-p | 打包时保留文件及目录权限(小p) |
-P | 打包是保留文件及目录的绝对路径(大p) |
案例 现在需要将/opt 进行打包压缩 格式为123.tar.bz2,打包文件放到/mnt
tar jcvf /mnt/123.tar.bz2 /opt/
案例 现在需要将123.tar.bz2 解压到/mnt/123目录下
tar jxvf /mnt/123.tar.bz2 -C /mnt/123
案例 现在需要将/opt 进行打包压缩 格式为123.tar.gz,打包文件放到/mnt
tar zcvf /mnt/123.tar.gz /opt/
案例 现在需要将123.tar.gz 解压到/mnt/123目录下
tar zxvf /mnt/123.tar.gz -C /mnt/123
四:VI文本编辑器
4.1:文本编辑器的作用
●创建或修改文本文件
●维护Linux系统中的各种配置文件
4.2:Linux中最常用的文本编辑器
●vi:类UNIX操作系统的默认文本编辑器
●vim: vim是vi文本编辑器(一般简称为vi编辑器)的增强版本。
4.3:vi编辑器的工作模式
VI编辑器的工作模式 | 功能 |
---|---|
命令模式 | 启动vi编辑器后默认进入命令模式。在该模式中主要完成如光标移动,字符串查找,以及删除,复制,粘贴文件内容等相关操作。 |
输入模式 | 该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改或添加新内容。处于输入模式时,vi编辑器的最后一行会出现“–INSERT–”的状态提示信息。 |
末行模式 | 该模式中可以设置vi编辑环境,保存文件,退出编辑器,以及对文件内容进行查找,替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号“:”提示符。 |
vi 123.txt #编辑文本
键盘的上下左右键 #控制在哪里编辑的
i #在哪里插入的
删除键(backspace) #删除内容的
esc #退出编辑模式
:wq #保存并且退出
q! #不保存退出
<1>命令模式 (vi 文件名,就进入了命令模式。退出命令模式,可以在未行模式中输入q)
可以使用以下命令:
dd:删除一行 #常用
u:撤回 #常用
yy:复制一行
p:小写的p,将复制的行粘贴在光标所在行的下一行 #常用
P:大写的p,将复制的行粘贴在光标所在行的上一行
x:删除光标所在处字符(按着不动,先删光标后面,在删前面) #常用
r:替换光标所在处字符 #常用
ZZ:保存退出 ##shift +z+z
#G:可跳转到文件中的第#行
G:可跳转到文件的最后一行
1G或者gg:可跳转到文件内容的第一行
u:小写的u,取消最近一次的操作
U;:大写的U,取消对当前行所做的所有编辑
按(i、I、a、A,o,O就进入了编辑模式。退出编辑模式,按ESC退到命令模式)
在此模式下可像在记事本中一样,修改文件内容。
a: 将在光标所在位置之后插入文本(append) #常用
A: 将在光标所在行末插入文本
i: 将在光标所在位置之前插入文本(insert) #常用
I: 将在光标所在行的第一个非空字符前插入文本 # 通常是用来插入#键的
o: 将在光标所在行的下一行开始插入文本(open) #常用
O: 将在光标所在行的上一行开始插入文本 #常用
g: 按2次,光标移动到文本首行
G: 按1次,光标移动到文本末行 #常用
<3>末行模式 (在命令模式中输入:就进入了末行模式。退出编辑模式,按ESC退到命令模式)
可以使用以下命令:
:q退出命令模式 #不常用
:w保存修改内容 #不常用
:wq保存退出 #常用
:q!不保存退出 #常用
:set nu显示行号 #常用
:/abc查找abc这个字符,按n查找下一个,按N查找上一个 #常用
:e 新的文件。将直接打开当前用户宿主目录中的新的文件进行编辑
:r 其他文件。在当前文件中读入其他文件内容
:[替换范围] sub /旧的内容/新的内容[/g]
例如:5,15 sub /initdefault/DEFAULT/g 若要将文档中第5~15行中的“initdefault”字符串替换为“DEFAULT”
:% sub 使用%符号表示全部替换
4.4:命令模式中的基本操作
4.4.1:光标移动
操作类型 | 操作键 | 功能 |
---|---|---|
方向移动 | ↑ ,↓,←,→ | 上,下,左,右 |
翻页 | Page Down 或Ctrl + F | 向下翻动一整夜内容 |
翻页 | Page Up 或 Ctrl + B | 向上翻动一整夜内容 |
行内快速跳转 | Home 键 或 “^“. 数字”0” | 跳转时行首 |
行内快速跳转 | End键 或 “$“ | 跳转到行尾 |
行间快速跳转 | 1G 或 gg | 跳转到文件的首行 |
行间快速跳转 | G | 跳转到文件的末尾行 |
行间快速跳转 | #G | 跳转到文件中的第#行 |
行号显示 | :set nu | 在编辑器中显示行号 |
行号显示 | :set nonu或setno! | 取消编辑器中的行号显示 |
4.4.2:复制,粘贴,删除
操作类型 | 操作键 | 功能 |
---|---|---|
删除 | x 或 Del | 删除光标处的单个字符 |
删除 | dd | 删除当前光标所在行 |
删除 | #dd | 删除从光标所在行开始的#行内容 |
删除 | d^ | 删除当前光标之前到行首的所有字符 |
删除 | d$ | 删除当前光标处到行尾的所有字符 |
复制 | yy | 复制当前行整行的内容到剪切板 |
复制 | #yy | 复制从光标所在行开始的#行内容 |
粘贴 | p(小写的) | 将缓冲区中的内容粘贴到光标位置处之后 |
粘贴 | P(大写的) | 粘贴到光标位置处之前 |
4.4.3:文件内容查找
操作键 | 功能 |
---|---|
/word | 从上而下在文件中查找字符串“word” |
?word | 从下而上在文件中查找字符串“word” |
n | 定位下一个匹配的被查找字符串 |
N | 定位上一个匹配的被查找字符串 |
4.4.4:撤销编辑及保存退出
操作键 | 功能 |
---|---|
u | 按一次取消最近的操作,重复u键,恢复多步操作 |
U | 用于取消对当前行所做的所有编辑 |
ZZ | 保存当前的文件内容并退出vi编辑器 |
4.5:末行模式的基本操作
4.5.1:保存文件及退出vi编辑器
功能 | 命令 | 备注 |
---|---|---|
保存文件 | :w | 保存修改的内容 |
保存文件 | :w /root/newfile | 另存为其他文件 |
退出vi | :q | 未修改退出 |
退出vi | :q! | 放弃对文件内容的修改,并退出vi |
保存文件退出 vi | :wq | 保存修改的内容并退出 |
4.5.2:打开新文件或读入其他文件内容
命令 | 功能 |
---|---|
:e ~/install.log | 打开新的文件进行编辑 |
:r /etc/filesystens | 在在当前文件中读入其他文件内容 |
4.5.3:文件内容替换
命令 | 功能 |
---|---|
:s /old/new | 将当前行中查找到的第一个字符“old”串替换为“new” |
:s /old/new/g | 将当前行中查找到的左右字符串“old”替换为“new” |
:#,# s/old/new/g | 在行号“#,#”范围内替换所有的字符串“old”为“new” |
:s /old/new/c | 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认 |
:% s/old/new/g | 在整个文件范围内替换所有的字符串“old”为“new” |