目录
一、Linux目录结构
Linux是树形目录结构,如下图所示:
Linux 目录结构是从 Unix 系统继承而来的,有一些标准的目录用途,例如:
目录 | 介绍 |
---|---|
/bin | 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里; |
/etc | 存放系统管理和配置文件; |
/home | 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user:可以用~user表示; |
/usr | 用于存放系统应用程序: |
/opt | 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里: |
/proc | 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息; |
/root | 超级用户(系统管理员)的主目录(特权阶级): |
/sbin | 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等; |
/dev | 用于存放设备文件; |
/mnt | 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统; |
/boot | 存放用于系统引导时使用的各种文件; |
/lib | 存放着和系统运行相关的库文件; |
/tmp | 用于存放各种临时文件,是公用的临时文件存储点; |
/var | 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等; |
/lost+found | 这个目录平时是空的,系统非正常关机而留下“无家可归“的文件(windows下叫什么.chk)就在这里 |
二、Linux查看文件内容
1、cat命令
在Linux中,cat
命令是一个用于连接文件并打印它们的内容的命令。cat
是"concatenate(连接)"的缩写。虽然它的主要功能是连接文件,但它也可以用于显示文件的内容,创建新文件,以及将文件内容重定向到其他文件或命令。
- -n:显示文件所有内容的行号。
- -b:空行不显示行号。
- -s:多行空行合并一行空行显示。
以下是cat
命令的一些常见用法:
-
显示文件内容:
cat filename
这将打印指定文件的内容到标准输出(通常是终端)。
-
连接多个文件:
cat file1 file2 file3 > merged_file
这将把
file1
、file2
和file3
的内容连接起来,并将结果输出到merged_file
文件中。 -
从标准输入读取内容:
cat > new_file
这将允许你从键盘输入内容,直到按下Ctrl + D结束输入,然后将输入的内容保存到
new_file
中。 -
显示非打印字符:
cat -v filename
通过
-v
选项,cat
命令会显示非打印字符(例如制表符、行尾符等)的可视化表示。 -
将文件内容附加到另一个文件:
cat file_to_append >> destination_file
这将把
file_to_append
的内容附加到destination_file
的末尾。
cat
命令虽然简单,但在Linux系统中非常实用,特别是在文件处理和重定向操作中。
2、more命令
more
命令是一个基于命令行的文本文件查看器,通常用于浏览文本文件的内容。它允许用户一页一页地查看文本文件,并提供一些基本的导航和搜索功能。下面是一些 more
命令的常见用法和功能:
-
基本用法: 在终端中输入
more filename
可以打开名为filename
的文件,并将其内容逐页显示在终端中。例如:more example.txt
-
浏览文件内容: 使用
more
命令可以逐页查看文件的内容。按下空格键可向下滚动一页,按下Enter
键可向下滚动一行,按下q
键可以退出more
命令。
总的来说,more
命令是一个简单而实用的文本文件查看器,在处理较小的文本文件或需要快速查看文件内容时非常方便。
注:more可以支持管道符“|”去使用,例如:cat example.txt | more
3、less命令
less
命令是类似于 more
的另一个用于查看文本文件内容的命令行工具,但相比 more
,它具有更多的功能和优点。以下是 less
命令的一些主要特点和用法:
-
逐页浏览: 与
more
类似,less
也可以用于逐页浏览文本文件的内容。您可以通过按下空格键来向下滚动一页,按下b
键来向上滚动一页,或者按下Enter
键来向下滚动一行。 -
搜索功能:
less
允许您在文件中进行搜索。按下 "/
"键,然后输入您要搜索的内容,按下Enter
键即可开始搜索。使用n
键可以继续向下搜索下一个匹配项,而使用N
键则可以向上搜索上一个匹配项。 -
前后翻页: 使用
f
键可以向前翻页,而使用b
键可以向后翻页,这使得在浏览较大文件时更加方便。 -
显示行号: 按下
-N
可以在左侧显示行号,这在需要定位特定行时非常有用。 -
跳转到特定行: 您可以按下
:
键,然后输入要跳转到的行号,然后按下Enter
键即可跳转到该行。 -
执行外部命令: 在
less
中,您可以按下!
键,然后输入要执行的外部命令,例如在查看文件时执行一些辅助操作。 -
退出: 您可以按下
q
键来退出less
,返回到命令行提示符。
总的来说,less
是一个功能强大而灵活的文本文件查看器,它提供了许多有用的功能,使您能够高效地浏览和处理文本文件。
4、head命令
在Linux中,head
命令用于显示文件的开头部分,默认情况下它会显示文件的前10行。head
命令通常用于快速查看文件的开头内容。
以下是head
命令的一些常见用法:
-
显示文件开头内容:
head filename
这将显示指定文件的前10行内容。
-
显示文件指定行数的开头内容:
head -n num_lines filename
这将显示指定文件的前
num_lines
行内容,其中num_lines
是一个整数。 -
显示多个文件的开头内容:
head file1 file2 file3
这将依次显示多个文件的开头内容,每个文件默认显示前10行。
-
显示标准输入的开头内容:
command | head
这将显示通过管道传递给
head
命令的标准输入的前10行内容。
head
命令是一个简单而实用的工具,通常用于快速查看文件的开头部分。如果需要查看文件的前几行内容,或者了解文件的结构和格式,head
命令是一个非常有用的工具。
5、tail命令
在Linux中,tail
命令用于显示文件的末尾内容,默认情况下它会显示文件的最后10行。tail
命令常用于监视日志文件的变化,或者查看文件的最新内容。
以下是tail
命令的一些常见用法:
-
显示文件末尾内容:
tail filename
这将显示指定文件的最后10行内容。
-
显示文件指定行数的末尾内容:
tail -n num_lines filename
这将显示指定文件的最后
num_lines
行内容,其中num_lines
是一个整数。 -
*持续监视文件内容变化:
tail -f filename
这将持续监视指定文件的内容变化,并将新添加到文件末尾的内容实时输出到终端。这对于监视日志文件的变化特别有用。
-
以逆序显示文件内容:
tail -r filename
这将以逆序(从最后一行到第一行)显示指定文件的内容。
-
显示文件的末尾内容并跟踪新内容:
tail -n +0 -f filename
这将显示指定文件的全部内容,并持续跟踪新内容的添加。
tail
命令是一个非常实用的工具,特别是在需要查看文件的最后几行内容或者持续监视文件变化时。
head -n与tail -n的区别:
三、Linux统计和检索文件内容
1、wc命令
wc
命令用于统计文本文件中的字数、行数和字符数。其名称是 "word count"(单词计数)的缩写,但它实际上可以做更多的统计工作。下面是 wc
命令的基本格式和用法:
基本格式:
wc [选项] 文件名
- 选项:
-c
:统计字节数。-m
:统计字符数。-l
:统计行数。-w
:统计单词数。
示例用法:
-
统计文件中的行数、单词数和字节数:
wc file.txt
-
只统计文件中的行数:
wc -l file.txt
-
只统计文件中的单词数:
wc -w file.txt
-
只统计文件中的字节数:
wc -c file.txt
-
使用管道操作符:
cat file.txt | wc
显示目录下文件行号:ls <目录> | wc -l
2、grep命令*
grep
是 Linux 中用于搜索文本的强大命令行工具。它可以在文件或标准输入中查找匹配指定模式的行,并将匹配的行输出到标准输出,从而使用户能够快速定位所需信息。下面是 grep
命令的基本格式和用法:
基本格式:
grep [选项] 模式 文件名
- 选项:
-i
:忽略大小写进行匹配。-v
:反向搜索,输出不匹配模式的行。-n
:显示匹配行的行号。-r
:递归搜索指定目录及其子目录中的文件。-w
:只匹配整个单词,而不是包含在其他单词中的部分。- -c:只输出匹配到的总行数(不是匹配到的次数)
- -e:实现可多个查询条件的匹配,逻辑or关系
- -E:支持使用扩展正则表达式,相当于使用egrep命令
- -o:精确匹配,即仅匹配的意思
- -A n:显示匹配行和它后面的n行
- -B n:显示匹配行和它前面的n行
- -C n:匹配行和它前后各n行
示例用法:
-
反向搜索,显示不匹配的行:
grep -v "pattern" file.txt
-
递归搜索指定目录中的文件:
grep -r "pattern" directory/
-
只匹配整个单词:
grep -w "pattern" file.txt
-
从标准输入中搜索:
cat file.txt | grep "pattern"
四、Linux备份恢复文档
1、gzip/gunzip命令
gzip
是 Linux 中用于文件压缩和解压缩的常用工具之一。它通常能够显著减小文件的大小,从而节省存储空间并加快文件传输速度。格式:gzip [压缩比] <压缩文件名.gz> <文件或目录名>,压缩比为-1到-9。
以下是 gzip
的主要特点和用法:
-
压缩文件: 若要压缩文件,只需在命令行中输入
gzip
命令,后跟要压缩的文件名。例如:gzip filename.txt
这将压缩
filename.txt
文件,并生成一个具有.gz
扩展名的压缩文件,即filename.txt.gz
。 -
解压缩文件: 要解压缩文件,只需在命令行中输入
gzip
命令,后跟要解压缩的文件名。例如:gzip -d filename.txt.gz #这将解压缩 filename.txt.gz 文件,并恢复为原始的 filename.txt 文件。
注:gunzip=gzip -d
-
查看压缩文件内容: 若要查看压缩文件的内容,可以使用
zcat
或zless
命令。例如:zcat filename.txt.gz #这将显示 filename.txt.gz 文件的内容,而无需先解压缩它。
-
合并文件: 使用
-c
选项可以将多个文件合并为一个压缩文件。例如:gzip -c file1.txt file2.txt > combined.gz
这将
file1.txt
和file2.txt
合并为一个压缩文件combined.gz
。
gzip
命令提供了一种简单而有效的方法来压缩和解压文件,它通常与其他命令和工具一起使用,以提高文件处理的效率和性能。
2、bzip2/bunzip2命令
bzip2
是 Linux 中用于文件压缩和解压缩的另一种常用工具。与 gzip
类似,bzip2
也是通过应用一种压缩算法来减小文件大小,从而节省存储空间和传输时间。
以下是 bzip2
的主要特点和用法:
-
压缩文件: 若要压缩文件,只需在命令行中输入
bzip2
命令,后跟要压缩的文件名。例如:bzip2 filename.txt
这将压缩
filename.txt
文件,并生成一个具有.bz2
扩展名的压缩文件,即filename.txt.bz2
。 -
解压缩文件: 要解压缩文件,只需在命令行中输入
bzip2
命令,后跟要解压缩的文件名。例如:bzip2 -d filename.txt.bz2 #这将解压缩 filename.txt.bz2 文件,并恢复为原始的 filename.txt 文件。
注:bunzip2=bzip2 -d
-
压缩比:
bzip2
通常能够产生更高的压缩比,因此生成的压缩文件可能比gzip
生成的更小,但相应的压缩和解压缩过程可能会稍慢一些。 -
合并文件: 使用
-c
选项可以将多个文件合并为一个压缩文件。
bzip2
是一种常用的文件压缩工具,尤其适用于那些需要更高压缩比的情况。它的压缩算法通常能够在相同条件下产生比较小的压缩文件,但也需要更长的时间来完成压缩和解压缩过程。
补充:zip命令也可以用来压缩解压缩:zip [选项] <压缩文件名.zip> <文件或目录名>
unzip <压缩文件名.zip> -d <指定目录>
3、tar命令*
在Linux中,tar
命令是一个用于创建、查看、提取和压缩归档文件的工具。归档文件通常以.tar
扩展名结尾,它可以包含一个或多个文件或目录。tar
命令最常用于创建备份、打包和分发文件和目录。
以下是tar
命令的一些常见用法:
-c
:创建归档文件。(压缩)-x
:从归档文件中提取文件。(解压缩)-t
:列出归档文件的内容。-v
:在处理文件时显示详细信息(通常是文件名)。-f <归档文件名>
:指定归档文件的名称。(必须加上)-z
:通过gzip压缩或解压缩归档文件。-j
:通过bzip2压缩或解压缩归档文件。-J
:通过xz压缩或解压缩归档文件。-C <目录>
:在指定目录下进行操作,例如解压文件到指定目录。
-
创建归档文件:
tar -cvf archive.tar file1 file2 directory1
这将创建一个名为
archive.tar
的归档文件,并包含file1
、file2
和directory1
。 -
查看归档文件内容:
tar -tvf archive.tar
这将列出
archive.tar
中包含的文件和目录。 -
提取归档文件内容:
tar -xvf archive.tar
这将从
archive.tar
中提取所有文件和目录到当前目录。 -
将归档文件解压到指定目录:
tar -xvf archive.tar -C /path/to/destination
这将从
archive.tar
中提取所有文件和目录,并将它们解压到指定的目录。 -
使用gzip进行压缩:
tar -czvf archive.tar.gz file1 file2 directory1
这将创建一个使用gzip压缩的归档文件
archive.tar.gz
,其中包含file1
、file2
和directory1
。 -
使用xz进行压缩:
tar -cJvf archive.tar.xz file1 file2 directory1
这将创建一个使用xz压缩的归档文件
archive.tar.xz
,其中包含file1
、file2
和directory1
。
tar
命令是Linux系统中一个非常强大和常用的工具,它提供了对文件和目录进行归档、压缩和解压缩的便捷方式。
五、vi文本编辑器
1、工作模式切换
vi编辑器有三种工作模式:命令模式、输入模式、末行模式。
1)命令模式 ----> 输入模式
- i:进入插入模式(Insert Mode),光标会在当前位置插入文本。
- a:进入插入模式(Append Mode),光标会在当前位置的下一个字符处插入文本。
- o:进入插入新行模式(Open Line Mode),在当前行的下面插入一个新行。
- O:进入插入新行模式(Open Line Mode),在当前行的上面插入一个新行。
- A:进入插入模式(Append to Line Mode),光标会移动到当前行的末尾。
- I:进入插入模式(Insert at Beginning of Line Mode),光标会移动到当前行的开头。
注:R:命令模式切换到替换模式。s:删除光标所在位的字符。
2)命令模式 ----> 末行模式
-
按下冒号键(:):在命令模式下按下冒号键会立即切换到末行模式。然后你可以在底部的命令行中输入相应的命令。
:set nu 显示行号
:set nonu 不显示行号
2、命令模式基本操作
G | 切换到最后一行 |
1G gg | 切换到第一行 |
#G | 切换到第 # 行 |
dd | 删除光标处所在的行 |
#dd | 删除光标处开始的 # 行 |
#dd + p/P | 剪切 + 粘贴,p在光标行下面粘贴,P在光标行上面粘贴 |
yy | 复制光标处所在的行 |
#yy | 复制光标处开始的 # 行 |
#yy + p/P | 复制 + 粘贴 |
u | 撤销上一步操作 |
ctrl + r键 | 恢复上一步撤销的操作 |
U | 撤销光标处所在行的所有操作 |
x del键 | 删除光标处所在的字符 |
查找字符串 | n | N |
/ | 从上往下找 | 从下往上找 |
? | 从下往上找 | 从上往下找 |
3、末行模式基本操作
- :wq——保存并退出。
- :x——保存并退出。
- ZZ——保存并退出。
- :q!——不保存退出。
- :w——保存不退出。
- :set nu——显示行号
- :set nonu——不显示行号
- :s/OLD/NEW/g——将光标处所在行的所有OLD字符串替换成NEW字符串
- :% s/OLD/NEW/g——将所有行的所有OLD字符串替换成NEW字符串
- :N,M s/OLD/NEW/g——将第 N 行到第 M 行的所有OLD字符串替换成NEW字符串
- :r 文件路径 在光标处所在行下面插入指定的文件内容
- :N,M co #——将第 N 行到第 M 行的内容复制到第 # 行下面
- :N,M m #——将第 N 行到第 M 行的内容剪切到第 # 行下面