Linux 目录和文件管理
一、Linux目录结构
目录 | 作用 |
---|---|
/root | 超级管理员的家目录 |
/home/用户名 | 普通用户的家目录 |
/bin | 命令文件目录,存放所有用户可以执行的目录 |
/sbin | 管理员操作目录,存放只有管理员才可以使用的命令 |
/boot | 存放系统内核、启动文件目录 |
/dev | 存放设备文件(硬盘、光驱) |
/etc | 存放系统程序和系统配置文件 |
/var | 存放各种日志文件 |
/lib | 存放系统程序的动态连接共享库文件 |
/usr | 存放用户工具和程序 |
/media | 可拆卸的媒介挂载点,例:U盘、光驱 |
/proc | 存放映射系统信息的文件 |
/mnt | 用于临时挂载存储设备的目录 |
/opt | 第三方应用程序安装所存放的目录 |
/tmp | 存放系统的临时文件 |
二、文件管理
1. cat 显示文件内容
全量查看文件内容
格式:
cat [选项] 需要查看文件内容的路径
选项含义:
选项 | 含义 |
---|---|
-n | 对所有行进行编号 |
-b | 空白行不编号 |
-s | 将所有连续的空行替换成一个空行 |
操作
① 查看/data/passwd文件内容
② 查看/data/passwd文件内容显示行号
[root@localhost data]# cat -n /data/passwd
③ 查看/data/passwd文件内容显示行号但空行不显示行号
[root@localhost data]# cat -nb /data/passwd
④ 查看/data/passwd文件内容显示行号但空行不显示行号且连续的空行只显示一行
[root@localhost data]# cat -nbs /data/passwd
2. more 显示文件内容
翻页查看文件内容
格式:
more [选项] 文件名
基本操作:
操作 | 作用 |
---|---|
空格键 | 下一行,到文末自动退出 |
b 键 | 上一行 |
enter 键 | 一行一行滚动,到文末自动退出 |
q 键 | 退出 |
3. less 显示文件内容
翻页查看文件内容
格式:
less [选项] 需要查看的文件路径
操作 | 作用 |
---|---|
/需要查找的字符 | 查找,n 键向下查找,N 键向上查找 |
Page Up 键 | 向上翻页 |
Page Down 键 | 向下翻译 |
其余 | 参考 more 和 cat |
实操:
less 查看 /data/passwd 文件内容,并查找出 root
[root@localhost data]# less -s /data/passwd
# 底行模式
/root
4. head 显示文件内容
head -n 具体数字 文件路径 (不加具体数字,默认为10)
查看文件前多少行
实操:
head 查看 /data/passwd 文件前三行
[root@localhost data]# head -n 3 /data/passwd
5. tail 显示文件内容
查看文件内容后多少行也可以动态查看文件内容的后多少行
格式:
tail [选项] 需要查看的文件路径
命令 | 作用 |
---|---|
tail -n 具体数字 文件路径 (不加具体数字,默认为10) | 查看文件内容的后多少行 |
tail -f 具体数字 文件路径 (不加具体数字,默认为10) | 动态查看文件内容的后多少行(按CTRL + C 退出) |
实操:
动态查看 /var/log/messages 的后十行
打开两个连接窗口,第一个窗口观察,第二个窗口重启防火墙
# 第一个窗口
[root@localhost data]# tail -10f /var/log/messages
# 第二个窗口
[root@localhost ~]# systemctl restart firewalld.service
第二个窗口:
第一个窗口:
6. tr 转换
格式:
tr [选项] string
命令 | 作用 |
---|---|
tr -d string | 出现string就删除 |
tr -s ‘ ’ | 压缩空格,1 2 3 ---> 1 2 3 |
tr -c str1 str2 | 出现str1转换成str2 |
7. wc 统计文件内容
格式:
wc [选项] 文件路径
选项功能
选项 | 功能 |
---|---|
-l | 统计行数 |
-w | 统计单词 |
-c | 统计文件内容的字节数 |
实操:
① 查看 /data/passwd 文件有多少行
[root@localhost data]# wc -l /data//passwd
② 查看 /data/passwd 文件有多少单词
[root@localhost data]# wc -w /data/passwd
③ 查看 /data/passwd 文件有多少字节
[root@localhost data]# wc -c /data/passwd
8. grep 查找文件内容
格式:
grep [选项] [查找条件设置] 文件路径
选项作用:
选项 | 作用 |
---|---|
-i | 查找时不区分大小写(默认) |
-v | 显示不匹配查找条件的所有行(反向查找) |
-n | 显示行号 |
-c | 只输出匹配到的总行数 |
-e | 多个条件查找(相当于 or) |
-E | 支持正则表达式(相当于使用egrep命令) |
实操:
① 显示 /data/passwd 文件内容中含有user的行并显示所在文件中的行号
[root@localhost data]# grep -n user /data/passwd
② 显示 /data/passwd 文件内容中含有user的总行数
[root@localhost data]# grep -c user /data/passwd
② 显示 /data/passwd 文件内容中不含有user的行并显示所在文件中的行号
[root@localhost data]# grep -vn user /data/passwd
③ 显示 /data/passwd 文件内容中含有user或者含有root的行并显示所在文件中的行号
[root@localhost data]# grep -ne user /data/passwd -e root /data/passwd
9. vim 文件文本编辑
格式:
vim 文件路径
命令模式下:
按键 | 作用 |
---|---|
a | 在光标之后插入内容 |
i | 在光标之前插入内容 |
o | 在光标下一行插入新行 |
O | 在光标上一行插入新行 |
A | 在光标所在行行尾插入内容 |
I | 在光标所在行行首插入内容 |
x | 删除光标上的字符 |
dd | 删除光标所在行 |
u | 撤销上一次操作 |
gg | 光标跳至首行 |
G | 光标跳至末行 |
数字gg 或 数字G | 光标跳至指定行 |
yy | 复制 |
数字yy | 从光标当前行向下复制指定行 |
p | 粘贴 |
输入字符 | 作用 |
---|---|
:w | 保存 |
:q | 不保存退出 |
:q! | 强制退出 |
:wq! | 强制保存退出 |
:set nu | 显示行号 |
:/srting | 查找string |
:e 其它文件路径 | 打开新的文件进行编辑 |
:r 其它文件路径 | 在当前文件中读入其它文件内容 |
: s /str1/str2 | 将当前行中第一个str1替换成str2 |
: s /str1/str2/g | 将当前行中所有str1替换成str2 |
:num1,num2 s/str1/str2/g | 将num1行到num2行所有的str1替换成str2 |
:% s/str1/str2/g | 将所有的str1替换成str2 |
:num1,num2 m num3 | 将num1到num2行剪切至第num3行 |
:num1,num2 co num3 | 将num1到num2行复制至第num3行 |
10. tar 压缩和解压
格式:
tar [选项] 压缩文件名称 需要压缩的文件
tar [选项] 需要解压的文件 -C 指定解压到的目录
选项作用:
选项 | 作用 |
---|---|
-c | 创建 .tar格式的包文件 |
-x | 解压 .tar格式的包文件 |
-C | 解压至指定目录(绝对路径) |
-f | 表示归档文件(必须要加) |
-v | 输出详细信息 |
-j | 调用bzip2程序进行压缩或解压 |
-z | 调用gzip程序进行压缩和解压 |
bz2 和 gz 的区别:
bz2 比 gz 压缩出的包小,但时间慢
gz 比 bz2 压缩出的包大,但时间快
实操:
① 用 gzip程序 将 /data/file1 和 /data/file2 压缩为 test1.gz.tar 压缩包文件
[root@localhost data]# tar -zcvf test1.tar.gz file1 file2
② 用gzip程序解压 /data/test1.gz.tar 至 /data/dir1 目录下
[root@localhost data]# tar -zxvf test1.tar.gz -C /data/dir1
③ 用 bzip2程序 将 /data/file1 和 /data/file2 压缩为 test2.bz2.tar 压缩包文件
[root@localhost data]# tar -jcvf test2.tar.bz2 file1 file2
④ 用bzip2程序解压 /data/test2.bz2.tar 至 /data/dir2 目录下
[root@localhost data]# tar -jxvf test2.tar.bz2 -C /data/dir2