一、Linux目录结构
1.1 树形目录结构
FHS(Filesystem Hierarchy Standard,目录层次标准)定义了两层规范:
- 第一层是“/”目录下的各个目录应该放什么数据文件
- 例如,/etc目录下放置系统的配置文件,而/bin 和/sbin 放置程序及系统命令
- 第二层是针对/usr 和/var 这两个目录的子目录来定义
- 例如:/var/log下放置系统日志文件等
1.2 根目录
- 所有分区、目录、文件等的位置起点
- 整个树形目录结构中,使用独立的一个“/”表示
FHS 标准建议:根目录(/)所在分区槽应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分区槽内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也较不容易发生问题
1.3 常见的子目录
子目录 | 作用 |
---|---|
/root | 系统管理员root的宿主目录 |
/home | 普通用户宿主目录 |
/boot | 系统内核、启动文件 |
/dev | 设备文件 |
/eto | 配置文件 |
/bin | 所有用户可执行的命令 |
/sbin | 管理员可执行的管理命令 |
/usr | 应用程序 |
/var | 日志文件 |
/tmp | 临时文件 |
/proc | 硬件信息(CPU,内存) |
/lib | 服务管理文件(systemctl)/lib/systemd/sysem/ |
二、查看文件内容命令
2.1 cat命令
- 显示文件的内容
- 命令格式
cat [选项]文件名
可以同时查看多个文件的内容,可以添加多个文件路径作为查看对象
示例:
查看网卡配置文件中的内容,并了解其配置信息
cat /etc/sysconfig/network-scripts/ifcfg-ens33
查看多个文件内容
cat /etc/passwd /etc/passwd-
- cat命令用途
- 显示出文件的内容
- cat命令本来用于连接多个文件的内容,但在实际使用中更多的用于查看文件内容
- cat命令是应用最为广泛的文件内容查看命令
- cat命令缺点
- 无法翻页,只能看到屏幕的显示信息
2.2 more命令
- 全屏方式分页显示文件内容
more[选项]文件名...
- 交互操作方法
- 按Enter键向下逐行滚动
- 按空格键向下翻一屏
- 按b键向上翻一屏
- 按q键退出
- more命令用途
- 全屏方式分页显示文件内容,解决了无图形化界面只能看到尾页信息的问题
- more命令短板
- 看到最后一页无法向上翻页
示例:
分屏查看/etc/passwd 的内容
more /etc/passwd
2.3 less命令
- 与more命令的用法基本相同,但扩展功能比less多
- 命令格式
less [选项]文件名
交互操作方法 | 解释 |
---|---|
Page Up | 向上翻页 |
Page Down | 向下翻页 |
“/”键 | 查找内容 |
“n”键 | 下一个内容 |
“N”键 | 上一个内容 |
其他功能与more命令基本类似
示例:
分屏查看 /etc/passwd 的内容
less /etc/passwd
2.4 head命令
- 查看文件开头的一部分内容(默认为10行)
- 命令格式
head -n文件名...
示例:
显示目标文件/etc/passwd的头四行
head -4 /etc/passwd
2.5 tail命令
- 查看文件结尾的少部分内容(默认为10行)
- 命令格式
tail -n 文件名.. ##具体多少行(数字)
tail -f 文件名 ##查看累增变化数据
示例:
显示目标文件/etc/passwd的头四行
tail -4 /etc/passwd
- tail命令通常用来查看系统日志(因为较新的日志记录总是添加到文件最后),以便观察网络访问,服务调试等相关信息
- 配合“-f”选项使用时,还可以跟踪文件尾部内容 的动态更新,便于实时监控文件内容的变化
三、统计与检索文件
3.1wc命令
- 统计文件中的单词数量(Word Count)等信息
- 命令格式
wc[选项]...目标文件...
常用命令选项
命令 | 解释 |
---|---|
-l | 统计行数 |
-w | 统计单词个数 |
-c | 统计字节数 |
使用不带任何选项的wc命令时,默认将统计指定文件的字节数,行数,单词个数
示例:
wc /etc/passwd
41 79 2136 /etc/passwd
当文件的行数,单词数或字节数具有特定的意义时,使用wc命令可以巧妙的获得一些特殊信息
示例:
Linux系统中的用户账号数据保存在/etc/passwd文件中,其中每一行记录对应一个用户,则我们可以统计出当前Linux系统中拥有的用户账号数量
wc -l /etc/passwd
41 /etc/passwd
若将wc命令与管道符号一起使用,还可以对命令输出结果进行统
示例:
统计/etc/目录下包含多少个扩展名为“.conf"的文件,可以先通过”find /etc-name"*conf 命令找出符合条件的文件位置,由于find命令输出结果也是每行一个文件记录,因此只需结合管道符号执行“wc -l”操作即可的粗符合条件的文件数量
ind /etc-name"*.conf" | wc -l
3.2grep命令
- 在文件中查找并显示包含指定字符串的行
- 命令格式
grep[选项]...查找条件目标文件
- 常用命令选项
命令 | 解释说明 |
---|---|
-i | 查找时忽略大小写 |
-v | 反转查找,输出与查找条件不相符的行 |
- 查找条件设置
- 要查找的字符串以双引号括起来
- …”表示以…开头
- “…$”表示以…结尾
- “$”表示空行
示例:
在文件中查找包含“a”字符串的行
grep "a" /etc/passwd
显示 /etc/passwd文件中以“a”开头和空行以外的内容
grep -v "^a" /etc/passwd | grep -v "^$"
四、文件压缩、归档
- 在Linux系统中,最简单的文件和目录备份工具就是cp复制命令
- 当需要备份的文件,目录数量较多时,仅仅使用cp命令就力不从心,且备份出来的文件数量及空间都会对服务器你产生不小的压力
面对这种情况,我们选择压缩和归档
- gzip和bzip2是Linux系统中使用最多的两个压缩工具,这两个命令都可以压缩指定的文件,或者将已经压缩过的文件进行解压
gzip 和 bzip 2命令交互操作方法 | 解释 |
---|---|
-9 | 压缩文件 |
-d | 解压文件 |
gunzip= gzip -d | 解压文件 |
- 注意:在最小化安装界面(非图形化界面)必须先安装bzip2,然后才能够继续操作
安装bzip2命令
yum install -y bzip2
4.1 gzip命令
- 使用gzip制作的压缩文件默认的扩展名为“.gz”
*命令格式
gzip [-9] 文件名 压缩文件
gzip [-d] .gz格式的压缩文件 解压文件
4.2 bzip2命令
- 命令格式
bzip [-9] 文件名 压缩文件
bzip [-d] .bz2格式的压缩文件 解压文件
4.4 zip命令
- 用于文件的压缩
zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip
命令格式
zip [选项] 压缩包名
参数命令
命令 | 解释 |
---|---|
-A | 调整可执行的自动解压缩文件 |
-b | <工作目录> 指定暂时存放文件的目录 |
-c | 替每个被压缩的文件加上注释 |
-d | 从压缩文件内删除指定的文件 |
-D | 压缩文件内不建立目录名称 |
-f | 更新现有的文件 |
-F | 尝试修复已损坏的压缩文件 |
-g | 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件 |
-h | 在线帮助 |
-i | <范本样式> 只压缩符合条件的文件 |
-j | 只保存文件名称及其内容,而不存放任何目录名称 |
-J | 删除压缩文件前面不必要的数据 |
-k | 使用MS-DOS兼容格式的文件名称 |
-l | 压缩文件时,把LF字符置换成LF+CR字符 |
-ll | 压缩文件时,把LF+CR字符置换成LF字符 |
-L | 显示版权信息 |
-m | 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中 |
-n | <字尾字符串> 不压缩具有特定字尾字符串的文件 |
-o | 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同 |
-q | 不显示指令执行过程 |
-r | 递归处理,将指定目录下的所有文件和子目录一并处理 |
-S | 包含系统和隐藏文件 -t<日期时间> 把压缩文件的日期设成指定的日期 |
-T | 检查备份文件内的每个文件是否正确无误 |
-u 与 -f | 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中 |
-v | 显示指令执行过程或显示版本信息 |
-V | 保存VMS操作系统的文件属性 |
-w | 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效 |
-x | <范本样式> 压缩时排除符合条件的文件 |
-X | 不保存额外的文件属性 |
-y | 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效 |
-z | 替压缩文件加上注释 |
-$ | 保存第一个被压缩文件所在磁盘的卷册名称 -<压缩效率> 压缩效率是一个介于1-9的数值 |
4.4 unzip命令
用于文件的解压缩
命令格式
unzip [选项] 压缩包名
参数命令
命令 | 解释 |
---|---|
-c | 将解压缩的结果显示到屏幕上,并对字符做适当的转换 |
-f | 更新现有的文件 |
-l | 显示压缩文件内所包含的文件 |
-p | 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换 -t 检查压缩文件是否正确 |
-u | 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中 |
-v | 执行是时显示详细的信息 |
-z | 仅显示压缩文件的备注文字 |
-a | 对文本文件进行必要的字符转换 |
-b | 不要对文本文件进行字符转换 |
-C | 压缩文件中的文件名称区分大小写 |
-j | 不处理压缩文件中原有的目录路径 |
-L | 将压缩文件中的全部文件名改为小写 |
-M | 将输出结果送到more程序处理 |
-n | 解压缩时不要覆盖原有的文件 |
-o | 不必先询问用户,unzip执行后覆盖原有文件 |
-P | <密码> 使用zip的密码选项 |
-q | 执行时不显示任何信息 |
-s | 将文件名中的空白字符转换为底线字符 |
-V | 保留VMS的文件版本信息 |
-X | 解压缩时同时回存文件原来的UID/GID |
[.zip文件] | 指定.zip压缩文件 |
[文件] | 指定要处理.zip压缩文件中的哪些文件 |
-d | <目录> |
-x<文件> | 指定不要处理.zip压缩文件中的哪些文件 |
-Z unzip | -Z等于执行zipinfo指令 |
4.4 tar命令
- tar命令主要用于对目录和文件进行归档
- 在实际的备份工作中,通常在归档的同时也会将包文件进行压缩(gzip或bzip2),以便节省磁盘空间
- 使用tar命令时,选项前的“-”号可以省略
命令格式
tar [选项] 归档及压缩文件名需要归档的源文件或目录 制作归档及压缩包
tar [选项] 归档文件名[-C 目标目录] 解压并释放(恢复)归档压缩包文件
命令 | 解释 |
---|---|
-c | 创建.tar格式包文件 |
-C | 解压到指定的目标地址 |
-x | 解压.tar格式的文件 |
-v | 显示详细信息 |
-f | 指定文件名存档 |
-p | 打包时保留原有文件及目录权限 |
-P | 打包时保留文件及目录的绝对路径 |
-t | 列表查看包内的文件 |
-z | gzip格式,调用gzip程序进行压缩或解压 |
-j | bzip2格式,调用bzip2程序进行压缩或解压 |
如果需要对制作的归档文件进行压缩,可以通过“-z” 或 “-j”选项自动调用压缩工具(分别对应gzip,bzip2命令程序)进行压缩
示例:
用tar命令压缩文件(将1.txt文件用tar压缩)
tar czvf 222.tar.gz 1.txt
用tar命令解压文件(将222.tar.gz解压到/opt/中)
tar xzvf 222.tar.gz -C /opt/
五、vi文本编辑器
5.1工作模式
VI编辑器的工作模式 | 解释 |
---|---|
命令模式 | 启动vi编辑器后默认进入命令模式。在该模式中主要完成如光标移动,字符串查找,以及删除,复制,粘贴文件内容等相关操作 |
输入模式 | 该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改或添加新内容。处于输入模式时,vi编辑器的最后一行会出现“–INSERT–”的状态提示信息 |
末行模式 | 该模式中可以设置vi编辑环境,保存文件,退出编辑器,以及对文件内容进行查找,替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号“:”提示符 |
- 命令模式,输入模式和末行模式时vi编辑环境的三种状态,通过不同的按键操作可以再不同模式间进行切换
- 从命令模式按冒号“:”键可以进入末行模式
- 按a,i,o,O等键可以进入输入模式
- 在输入模式,末行模式都可以按Esc键返回至命令模式
5.2命令模式的基本操作
5.2.1 光标移动
5.2.2 复制、粘贴、删除
5.2.3 文件内容查找
5.2.4 撤销编辑及保存退出
5.3输入模式的基本操作
操作键 | 功能 |
---|---|
i | 切换到插入模式,并在当前光标位置之前开始插入(插入) |
a | 切换到插入模式,并在当前光标位置之前开始插入(附加)。 |
I | 将光标移至当前的开头位置,并切换到插入模式。 |
A | 将光标移至当前的结尾位置,并切换到插入模式 |
R | 从光标下的字符开始,切换至替换模式。处于替换模式时,不会插入文本,所输入的每个字符均将替换掉当前文档中的字符 |
o | 在当前行的下方新打开一个行,并切换至插入模式 |
O | 在当前行的上方新打开一个行,并切换至插入模式 |