Linux目录和文件管理
- Linux目录结构
- 查看文件内容(cat,more,less,head、tail)
- 统计和检索文件(wc、grep)
- 压缩及解压缩文件(gzip/gunzip、bzip2/ bunzip、tar)
- vi文本编辑器
一、Linux目录结构
1. Linux的目录结构为树形结构,所以分区,目录,文件等的起点是根目录,使用独立的 "/'表示
2. Linux的常见子目录
/root 管理员的宿主(家)目录 /home/xxx 除 root 用户之外的普通用户的家目录/home/xxx 除 root 用户之外的普通用户的家目录/bin 存放二进制文件,所有用户可执行的命令。实际是个软链接,链接到/usr/bin/sbin 存放二进制文件,只有管理员可执行的管理命令。软链接到/usr/sbin/boot 系统内核、启动文件目录/dev 存放设备文件(光驱、硬盘等)/etc 存放系统程序和大部分应用程序(rpm、 yum安装)的配置文件/var 存放可以变化的文件,包括各种日志文件/lib 存放系统程序的动态连接共享库文件(类似于Windows里的DLL文件) 。软链接到/usr/lib/usr 存放系统用户工具和程序/media 可拆卸的媒介挂载点,例如U盘、光驱等/mnt 用于临时挂载储存设备的目录/opt 第三方应用程序安装所存放的目录/tmp 存放系统的临时文件/proc 存放映射系统信息的文件/proc 是一种伪文件系统(也即虚拟文件系统) ,存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。
cat [选项] 文件名 ...
cat 是直接显示整个文件的内容,适合看比较详细小的文件cat 的参数可以是多个
cat text.txt #查看文件
![](https://img2020.cnblogs.com/blog/2387974/202106/2387974-20210624223838194-1389846542.png)
cat -n text.txt #查看文件,并编号
![](https://img2020.cnblogs.com/blog/2387974/202106/2387974-20210624224314461-460370796.png)
cat -b text.txt #查看文件并编号,但不给空白行编号
cat -s text.txt ##将连续多个空行替换为一个
![](https://img2020.cnblogs.com/blog/2387753/202106/2387753-20210614183737652-1816325479.png)
2.2 全屏方式分页显示文件内容
1. more
more [选项] 文件名 ...
常用选项:
交互式操作方法
- 按Enter 键向下逐行滚动
- 按空格键向下翻一屏
- 按b 键向上翻一屏
- 按 = 显示当前行号
- 按q键退出
- 查看时下翻到最后一页自动退出。
- 结合管道操作使用时(如 ls -R /etc |more)无法向上翻页
2. less 命令查看文件内容
less [选项] 文件名 ...
选项:
-s : 合并空行-N : 显示行号-X :默认情况下, less 退出时,将从屏幕中清除文件内容。要在屏幕上保留文件内容,请使用以下 -X 选项+F :动态查看,与tail -f 几乎相同 退出时,先按ctrl +c 再按 q 退出
交互操作方法:
- Page up 或者b键 向上翻页; Page down 或者空格键 向下翻页
- 按"/" 键向后匹配,按 ”?“ 向前匹配。 n 下一个匹配内容,N上一个匹配内容
- 通过↑和↓方向键可以实现上下逐行滚动
- 其他功能与more命令基本相似
less查看,下翻到最后一页时不会退出。
less结合管道使用时,可以向上翻页
3.head 和tail 查看文件内容
head
用途:查看文件开头默认一部分内容(默认为10行)
head -n 文件名 ... // n 为行数
tail
用途:查看文件结尾的少部分内容(默认为10行)
tail -n 文件名 ...
tail -f 文件名 //跟踪文件尾部内容的动态更新 ###动态查看文件尾部内容 (与tailif 作用相同。退出时,按ctrl +c 退出,ctrl +d 放入后台)
示例: tail -5f /var/log/messages 表示动态查看文件尾部5行内容
4. 统计文件内容 wc 命令
wc
统计文件行数,单词数量(World Count)、字节数等信息
wc [选项] ... 目标文件 ...
常用命令:
-l :统计行数
-w :统计单词个数
-c :统计字节数
注:不带任何选项的wc 命令默认使用 -lwc 三个选项
wc 统计时,会在后面显示文件名。如果只想得到行数,单词个数,字节数等信息,而不想得到文件名,可以用 cat 加上管道操作配合
cat text.txt | wc
5.检索和过滤文件内容 grep 命令
- 在文件中查找并显示包含指定字符串的行
grep [选项] ... 查找条件 目标文件
常用选项:
-i :查找时不区分大小写-v:显示不包含匹配文本的所有行(反向查询,反向匹配)-c:只输出匹配到的总行数(不是匹配到的次数)-n:显示匹配行及行号-e:实现可多个查找条件的匹配,逻辑或or的关系。和别的选项一起使用时要放在最后-E:支持使用扩展正则表达式,相当于使用egrep命令-o:精确匹配,即“仅匹配"之意-A n:显示匹配后和它后面的n行。-B n:显示匹配行和它前面的n行。-C n:匹配行和它前后各n行。
- 查找条件设置
- 要查找的字符串以双引号括起来
- “^......” 表示以......开头,“......$”表示以......结尾
- “^$” 表示空行
示例:grep -i "a" text ##在text文件中不区分大小写匹配包含a 的行
grep -v "a" text ###在text文件中匹配不包含小写a 的行
grep -n "a" text ##在text 文件中匹配包含小写a 的行,并显示行号
grep -c "a" text ###在text 文件中显示包含小写a 的总行数
grep -e "a" -e "B" text ###在text 文件中匹配包含 小写字母 a 或者大写字母 B 的行
grep -o "a" text ###在text 文件中 匹配小写字母a 并将匹配的字母输出
三:压缩及解压缩文件
1.制作压缩文件和解压缩文件
压缩
gzip [-n] 文件名... 将文件压缩为 .gz 格式
bzip2 [-n] 文件名 将文件压缩为 .bz2 格式
(-n 为 1-9 ,表示压缩比率, 数字越大,比率越高 。 默认为6)
(压缩后,源文件不存在,只存在压缩包)
- 常用命令选项
- -9、-d
2. 解压缩
gunzip 文件名 = gzip -d 文件名 (gz 格式的压缩文件)
bunzip2 文件名 = bzip2 -d 文件名 (bz2 格式的压缩文件)
3. 归档 tar 命令
- 制作归档文件,释放归档文件
tar [选项]... 归档文件名 源文件或目录
tar [ 选项] ... 归档文件名 [-C 目标目录]
-c:创建.tar格式的包文件。-x:解开.tar格式的包文件。-C:解压时指定释放的目标文件夹。-f:表示使用归档文件。-p:打包时保留文件及目录的权限。-P:打包时保留文件及目录的绝对路径。-t:列表查看包内的文件-v:输出详细信息(Verbose)-j:调用bzip2程序进行压缩或解压。-z:调用gzip程序进行压缩或解压。tar 是归档命令,无论是归档还是释放都要带 -f 选项tar 归档或是释放归档,源文件或归档文件不会消失
![](https://img2020.cnblogs.com/blog/2387753/202106/2387753-20210614200424067-395126369.png)
![](https://img2020.cnblogs.com/blog/2387753/202106/2387753-20210614200823552-1669405022.png)
四:文本编辑器 vi 命令
文本编辑器作用:
- 创建或者修改文本文件
- 维护Linux 系统中的各种配置文件
Linux 中最常用的文本编辑器
- vi :类UNIX操作系统的默认文本编辑器
- vim:vim是vi文本编辑器(一般简称为vi编辑器)的增强版本
vi 编辑器的工作模式
- 命令模式: 启动vi编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作
- 输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改、或者添加新的内容。处于输入模式时, vi编辑器的最后一行会出现"-- INSERT--"的状态提示信息
- 末行模式:该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时, vi编辑器的最后一行会出现冒号":"提示符
不同模式的切换
命令模式 :a,i ,o 等键,进入输入模式。 冒号“:” 键进入末行模式
输入模式 :Esc 键进入命令模式
末行模式:Esc 键进入命令模式
vim编辑器的操作
操作类型
|
操作键
|
功能
|
翻页移动
|
Page Down 或者Ctrl +F
|
向下翻页
|
Page Up 或者 Ctrl +B
|
向上翻页
|
|
行内快速跳转
|
Home 键 或者 ^ 键 或者 数字 0 键
|
跳转到本行的行首
|
End 键 或者$ 键
|
跳转到本行的行尾
|
|
行间快速跳转
|
1G 或gg
|
跳转到文件内容的第1 行
|
G
|
跳转到文件的最后一行
|
|
#G
|
跳转到文件中第# 行位置
|
|
M
|
跳转到当前页的中间位置
|
|
显示/取消行号
|
:set nu
|
在编辑器中显示行号
|
:set nonu
|
取消行号显示
|
|
删除
|
x 或 Delete键
|
删除光标处的单个字符
|
dd
|
删除(剪切)当前光标所在行
|
|
#dd
|
删除(剪切)从光标处开始的#行内容
|
|
d^
|
删除光标之前到行首的所有字符
|
|
d$ 或者D
|
从光标处删除到行尾的所有字符
|
|
dw
|
删除光标处的整个单侧
|
|
替换字符
|
R或者 Shift+r
|
替换当前光标处的字符
|
复制
|
yy
|
复制当前行整行内容到剪贴板
|
#yy
|
复制从光标处开始的#行内容
|
|
黏贴
|
小写p
|
黏贴到光标所在行之下
|
大写P
|
黏贴到光标所在行之上
|
|
查找
|
/word
|
从当前光标处开始想后查找字符串“word”
|
?word
|
从当前光标处开始向前进行查找
|
|
n
|
定位下一个匹配的被查找字符串
|
|
N
|
定位上一个匹配的被查找字符串
|
|
撤销
|
u
|
按一次取消最近一次操作;重复u键,恢复多步操作
|
U
|
取消当前行的所有编辑
|
|
ctrl +r
|
恢复撤销
|
|
保存退出
|
:w
|
保存修改内容
|
:w 新文件名
|
另存为其它文件
|
|
:q
|
没有编辑时可以直接退出
|
|
:q!
|
放弃对文件内容的修改并退出
|
|
ZZ或者:wq 或者 :x
|
保存退出
|
|
打开新文件
|
:e 其它文件名
|
打开新的文件进行编辑
|
读入文件内容
|
:r 其它文件名
|
在当前文件中读入其它文件内容
|
文件内容替换
|
:s /old/new
|
将当前行中查找的第一个字符歘“old”替换为字符串“new”
|
:s /old/new/g
|
将当前行中查找到的所有字符串“old”替换为字符串“new”
|
|
:#,# s/old/new/g
|
在行号"#,#" 范围内查找替换所有的字符串"old" 为“new”
|
|
:% s/old/new/g
|
在整个文件中范围内替换所有的字符串“old” 为 “new”
|
|
:s /old/new/c
|
在替换命令末尾加上c ,对每个替换的动作进行提示确认
|
|
:8,11 m 4
|
将8-11 行的内容剪切到第4行下面
|
|
8,11 co 4
|
将 8-11 行的内容复制到第4行下面
|
|
高亮显示
|
Shift +3
|
在文件中高亮显示所有的相关字符
|