目录
一、linux目录结构
1.1 树形目录结构
在Linux操作系统中,文件系统层次结构是一种树状结构,也称为目录层级结构,它的顶部是根目录/
。这个结构遵循Filesystem Hierarchy Standard (FHS),它是一套规范,用来指导Linux及其他类Unix系统中文件和目录应该如何布局以保持一致性。
1.2 根目录
根目录是所有分区、目录、文件等位置的起点目录
在整个树形结构中,使用独立的一个“/”表示
1.3 常见子目录的作用
选项 | 说明 |
/root | 管理员的的宿主(家)目录 |
/home | 普通用户的家目录 |
/boot | 系统内核、启动文件目录 |
/bin | 命令文件目录,存放所有用户可执行的命令 |
/sbin | 管理员操作目录,存放只有管理员可执行的命令 |
/dev | 存放设备文件(光驱、硬盘等) |
/etc | 存放系统程序和大部分应用程序(rpm/yum安装)的配置文件(一般以conf、ini等结尾,具体结尾后缀和开发语言也有关系) |
/var | 存放可变化的文件,包括各种日志 |
/lib | 存放系统程序的动态连接共享文件(类似于windous里的DLL文件) |
/usr | 存放系统用户工具和程序 |
/media | 可拆卸的媒介挂载点,例如U盘、光驱等 |
/proc | 存放映射系统信息的文件 |
/mnt | 用于临时挂载存储设备的目录 |
/opt | 第三方应用程序安装所存在的目录 |
/tmp | 存放系统临时文件 |
二 、查看及检索文件
2.1 cat命令---插看文件内容
直接显示整个文件的内容
用法格式:
cat [选项] 文件名 ...
常用选项:
选项 | 说明 |
-n | 对所有输出的行数编号 |
-b | 对于空白行不编号 |
-s | 将所有的连续的多个空行替换为一个空行 |
实例展示:
cat -n
[root@linianhui opt]# cat -n 1.txt
1 asdjkhjak
2 ssss
3 aaaaa
4
5
6 weweewww
7
8 sd
9
10 gfdjkjkl
11 \
12
13
14
15
16
17 xxxxxxxx
### 对输出文本所有行都会编号
cat -b
[root@linianhui opt]# cat -bn 1.txt
1 asdjkhjak
2 ssss
3 aaaaa
4 weweewww
5 sd
6 gfdjkjkl
7 \
8 xxxxxxxx
###文件中的空白行不会编号
cat -s
[root@linianhui opt]# cat -s 1.txt
asdjkhjak
ssss
aaaaa
weweewww
sd
gfdjkjkl
\
xxxxxxxx
###相邻的多个空行会被合成一个空行
2.2 more命令---查看文件内容
全屏方式分页显示文件内容
用法格式
more [选项] 文件名....
交互操作方法
- 按Enter键向下逐行滚动
- 按空格键向下翻一屏
- 按b键向上翻一屏
- 按q键退出
- 下翻到最后一页会自动退出
- 结合管道使用时(例如:ls -R 、/etc | more)
2.3 less命令--查看文件内容命令
与more命令相同,但扩展功能更多
less [选项] 文件名
交互操作方法
- Page Up 向上翻页,Page Down 向下翻页
- 按“/”键查看内容,“n”下一个内容,“N”上一个内容
- 通过“上”方向键和“下”方向键可以实现上下级滚动
- 其他功能和more命令基本相似
- 下翻到最后一页时不会自动退出
- 结合管道符使用时可以向上翻页
2.4 head、tail命令 ----查看文件内容
head命令
用途:查看文件开头一部分内容 (默认十行)
head -n 文件名... ### n为行数 要看几行 要在n后面加数字几
举例:
[root@linianhui network-scripts]# head -n 7 ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
###查看网卡启动文件前七行的内容
tail命令
用途:查看文件结尾的少部分内容(默认为十行)
tail -n 文件名 ... ### n为行数 n就是要看的行数数字,和head不同
tail -f 文件名 ### 跟踪文件尾部内容的自动更新 即查看的内容可以实时展示
示列:
[root@linianhui network-scripts]# tail -5 ifcfg-ens33
IPV6_PRIVACY=no
IPADDR=192.168.23.10
NETMASK=255.255.255.0
GATEWAY=192.168.23.2
DNS1=8.8.8.8
###查看改文件后面五行的内容
2.5 wc命令 ---统计文件中单词数量等信息
wc [选项] 文件名...
选项 | 说明 |
-l | 统计行数 |
-w | 统计单词个数 |
-c | 统计字节数 |
示列:
wc -l
[root@linianhui network-scripts]# wc -l ifcfg-ens33
20 ifcfg-ens33
###查看该文件行数
2.6 grep命令---检索和过滤文件内容
在文件冲查找并显示包含指定字符串的行
grep 【选项】... 查找条件 目标文件
grep常用选项:
选项 | 说明 |
-i | 查找时不区分大小写 加不加都一样 |
-v | 显示不包含匹配文本的所有行(反向查询、反向匹配) |
-n | 显示匹配行及行号 |
-c | 只输出匹配到的总行号(不是匹配到的次数) |
-e | 实现可多个查询条件的匹配,逻辑关系or关系 |
-E | 支持使用扩展正则表达式,相当于使用egrep命令 |
查找条件设置
要查找的字符串以双引号括起来
“^……”表示以……开头
“……$”表示以……结尾
“^$”表示空行
示列:
grep -ie "^listen" -e "80$" /etc/httpd/conf/httpd.conf
###查询/etc/httpd/conf目录下httpd.conf文件中以listen开头或者以80结尾的行,不区分大小写
示列:
[root@linianhui my_dir]# ls ###查看当前目录下文件
analysis.pdf report.doc study.codx
[root@linianhui my_dir]# grep -ie "^study" -e "doc$" ./ ###grep只能查询文件
grep: ./: 是一个目录
[root@linianhui my_dir]# ls ./ | grep -ie "^study" -e "doc$" ###查询当前目录下符合
条件的文件report.doc
study.codx
###返回查询结果
2.7 gzip、bzip命令 -----压缩、解压文件
常用选项及用法
gzip、bzip命令:
gzip [-9] 文件名 ###gzip 制作的压缩文件默认的扩展名为“.gz”,原始文件不再保留
bzip2 [-9] 文件名 ###bzip2 制作的压缩文件默认的扩展名为“.bz2”,原始文件不再保留
使用【-9】选项可以提高压缩的比例
-d : 用于解压缩以及压缩过的文件,相当于使用gunzip、bunzip2命令
gunzip 文件名.gz 解压缩
gzip -d 文件名.gz 解压缩
bunzip2 文件名.bz2 解压缩
bzip2 -d 文件名.bz2 解压缩
示列:
[root@linianhui my_dir]# ls
1.txt
[root@linianhui my_dir]# gzip 1.txt ### 压缩1.txt文件
[root@linianhui my_dir]# ls ### 查看
1.txt.gz ### 没有原文件
[root@linianhui my_dir]# gunzip 1.txt ###解压缩
[root@linianhui my_dir]# ls
1.txt ### 恢复
2.8 tar命令 ---压缩工具
搭配gzip、bzip2使用
tar常用选项:
选项 | 说明 |
-c | 创建.tar格式的包文件 |
-x | 解压.tar格式的包文件 |
-C | 解压时指定释放的目标文件夹----绝对路径 |
-v | 输出详细信息 (展示压缩解压缩过程) |
-j | 调用bzip2程序进行压缩或者解压 |
-z | 调用gzip程序进行压缩或者解压 |
-f | 表示使用归档文件(多个子目录压缩成一个包) |
示列:
tar -zcvf dntest.tar.gz 123.txt #使用gzip格式打包
tar -zxvf dntest.tar.gz -C /opt/dntest #解包到指定位置
tar -jcvf usershow.tar.bz2 passwd shadow #打包 bzip2格式
[root@linianhui my_dir]# ls
1.txt
[root@linianhui my_dir]# tar -zcvf test.tar.gz 1.txt ###使用tar打包工具打包文件
1.txt
[root@linianhui my_dir]# ls ###打包后原文件还在
1.txt test.tar.gz
2.9 vi命令 ----文本编辑器
文本编辑器vi命令
文本编辑器的作用
- 创建或修改文本文件
- 维护linux系统中的各种配置文件
linux中最常用的文本编辑器
- vi:类unix操作系统的默认文本编辑器
- vim:vim是vi文本编辑器的增强版
vi编辑器的工作模式
三种工作模式
命令模式、输入模式、末行模式
不同模式之间的切换
命令模式的基本操作:
光标移动:
操作类型 | 操作键 | 功能 |
方向移动 | ↑、↓、←、→ | 上、下、左、右 |
翻页 | Page Down或Ctrl + F | 向下翻动一整页内容 |
Page Up 或Ctrl + B | 向上翻动一整页内容 | |
行内快速跳转 | Home键或“^”、数字“0” | 跳转至行首 |
End键或"$"键 | 跳转到行尾 | |
行间快速跳转 | 1G或者gg | 跳转到文件的首行 |
G | 跳转到文件的末尾行 | |
#G | 跳转到文件中的第#行 | |
行号显示 | :set nu | 在编辑器中显示行号 |
:set nonu | 取消编辑器中的行号显示 |
复制、粘贴、删除
操作类型 | 操作键 | 功能 |
删除 | x或Del | 删除光标处的单个字符 |
dd | 删除当前光标所在行 | |
#dd | 删除从光标所在行开始的#行内容 | |
d^ | 删除当前光标之前到行首的所有字符 | |
d$ | 删除当前光标处到行尾的所有字符 | |
复制 | yy | 复制当前行整行的内容到剪贴板 |
#yy | 复制从光标所在行开始的#行内容 | |
粘贴 | p | 将缓冲区中的内容粘贴到光标位置处之后 |
P | 粘贴到光标位置处之前 |
文件内容查找:
操作键 | 功能 |
/word | 从上而下在文件中查找字符串“word’ |
?word | 从下而上在文件中查找字符串“word |
n | 定位下一个匹配的被查找字符串 |
N | 定位上一个匹配的被查找字符串 |
撤销编辑及保存退出:
操作键 | 功能 |
u | 按一次取消最近的一次操作;重复u键,恢复多步操作 |
U | 用于取消对当前行所做的所有编辑 |
ZZ | 保存当前的文件内容并退出vi编辑器 |
保存文件以及退出vi编辑器:
功能 | 命令 | 备注 |
保存文件 | :w | 保存修改的内容 |
:w /root/newfile | 另存为其他文件 | |
退出vi | :q | 未修改退出 |
:q! | 放弃对文件内容的修改并退出vi | |
保存文件退出vi | :wq或x | 保存修改内容退出 |
打开新文件或者读入其他文件内容:
命令 | 功能 |
:e ~/install.log | 打开新的文件进行编辑 |
:e /etc/filesystems | 在当前文件中读入其他文件内容 |
文件内容替换:
命令 | 功能 |
: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命令,将对每个替换动作提示用户进 行确认 |
总结
熟悉掌握各个命令的基本用法,灵活搭配组合命令有利于我们快速解决遇到的难题,grep与通道符连用会有意想不到的效果。