Linux目录与文件操作方式
作者:活老鬼
一、Linux目录
1.Linux目录结构
- Linux目录结构是树形目录结构。
2.根目录
- 是所有分区、目录、文件的起始起点。
- 整个树形结构中,使用独立的一个"/"表示
3.常见的子目录与作用
目录 | 作用 |
---|---|
/root | 管理员用户root的宿主(家)目录 |
/home | 普通用户的宿主(家)目录 |
/boot | 存放系统内核、启动文件 |
/dev | 存放设备文件(硬盘、光盘等) |
/etc | 存放配置文件 |
/bin | 存放所有用户可执行的命令文件 |
/sbin | 存放管理员可执行的命令文件 |
/usr | 存放系统用户工具和应用程序 |
/var | 存放可变化的文件、日志等文件 |
/lib | 存放系统程序的的动态链接共享库文件(依赖等) |
/media | 存放可卸载的的媒介挂载点(u盘、光驱等) |
/proc | 存放映射系统信息的文件 |
/mnt | 存放临时挂载储存设备 |
/opt | 第三方应用程序安装的目录 |
/tmp | 存放系统临时文件 |
二、文件操作
1.文件内容操作命令
1.1 cat 命令 - 查看文件内容
- 用于直接显示出整个文件的内容
ps:cat命令只能读,不能写入,全量展示。
cat "选项" "目标文件"
例:
cat /etc/sysconfig/network cat hello.txt
常用选项 | 解释 |
---|---|
-n | 对所有输出的行数进行编号 |
-b | 对输出的空白行之外的行数进行编号 |
-s | 对所有连续的空行替换为一个空行 |
1.2 more 命令 - 查看文件内容
- 用于以全屏方式分页显示文件内容
more "选项" "目标文件"
键盘操作 | 解释 |
---|---|
Enter | 向下逐行滚动 |
Space | 向下翻页 |
b | 向上翻页 |
q | 推出 |
ps:下翻到最后一页后会自动退出
结合管道操作使用时(例如ls -R /etc | more )无法向上翻页
1.3 less 命令 - 查看文件内容
- 与more命令相同,但扩展功能更多。(更常用)
less "选项" "目标文件"
键盘操作 | 解释 |
---|---|
Page Up | 向上翻页 |
Page Down | 向下翻页 |
"↑"方向键 | 向上逐行滚动 |
"↓"方向键 | 向下逐行滚动 |
"/"键 | 查找内容 |
---|---|
n | 下一个内容 |
N | 上一个内容 |
其他功能与more命令基本一致
ps:下翻到最后一页时不会自动推出
结合管道操作可以向上翻页
1.4 head、tail 命令 - 查找文件内容
1.4.1 head 命令
- 用于查看文件开头的一部分内容
head -n "行数" "目标文件"
1.4.2 tail 命令
- 用于查看文件结尾的少部分内容
tail "选项" "目标文件"
选项 | 解释 | |
---|---|---|
-n | n=尾行数(例:tail -2 xxx) | 查看结尾n行的内容 |
-f | 或-nf ,n=尾行数 | 跟踪查看文件尾部动态更新的尾行内容 |
例:
tail -5f /var/log/messages
跟踪查看messages文件内结尾5行的动态更新内容
1.5 wc 命令 - 统计文件内容
- 用于统计文件中的单词数量、行数等信息
wc "选项" "目标文件"
常用选项 | 解释 |
---|---|
-l | 统计行数 |
-w | 统计单词个数 |
-c | 统计字节数 |
ps:使用wc "文件"时(不带选项),默认同时使用 -l -w -c (-lwc)选项
1.6 grep 命令 - 检索和过滤文件内容
- 在文件中查找并显示包含指定字符串的行
grep "选项" "查找条件" "目标文件"
选项 | 解释 |
---|---|
-i | 查找时不区分大小写 |
-v | 显示不包含匹配本文的所有行(反向查询、反向匹配) |
-n | 显示匹配行及行号 |
-c | 只输出匹配到的总行数(非匹配目标的个数) |
-e | 实现多个查找条件的匹配(逻辑or关系) |
-E | 支持使用扩展正则表达式,相当于egrep命令 |
-o | 只输出匹配的文字内容 |
查找条件 | 解释 |
---|---|
"n" | 查找含有n的行 |
"^n" | 匹配以n开头的行 |
"n$" | 匹配以n结尾的行 |
"^$" | 匹配空行 |
2.压缩、解压缩命令
2.1 gzip、bzip2 - 压缩命令
制作压缩文件:
- gzip "选项" "目标文件"
- bzip2 "选项" "目标文件"
常用选项 | 解释 | |
---|---|---|
-n | n=1~9中的数字(例:gzip -9 xxx) | 设置压缩级别(压缩比) |
-d | 例:bzip2 -d xxx | 用于解压缩文件 |
ps:压缩后源文件会消失
2.2 gunzip、bunzip2 - 解压缩命令
用于解压缩文件
- gunzip "选项" "目标文件"
- bunzip2 "选项" "目标文件"
ps:gunzip 等同于 gzip -d 、bunzip2 等同于 bzip2 -d
解压后的源压缩文件会消失
2.3 tar 命令 - 归档命令
用于制作、释放归档文件
- tar "选项" "归档文件名" "源文件、目录"
- tar "选项" "归档文件名" -C "目标目录(绝对路径)"
常用选项 | 解释 |
---|---|
-c | 创建.tar格式的包文件 |
-x | 解开.tar格式的包文件 |
-f | 表示使用归档文件 |
-v | 输出详细信息 |
-j | 调用 bzip2 程序进行解压或压缩 |
-z | 调用 gzip 成勋进行解压或压缩 |
-C | 指定目标目录(绝对路径) |
例:
tar -cjvf documents.tar.bz2 -C /home/user/documents
调用bzip2程序将/home/user/目录下的documents文件打包压缩成一个名为documents.tar.bz2的归档文件到当前目录并输出详细信息
tar -xzvf documents.tar.gz. -C /home/user/backup
调用gzip程序将当前目录下的documents.tar.gz归档文件解压到/home/user/backup目录下并输出详细信息
3.vi 命令 - 文本编辑器
3.1 常用的文本编辑器及其作用
3.1.1 Linux中最常用的文本编辑器
- vi文本编辑器:类UNIX操作系统的默认文本编辑器
- vim(Vi IMproved):vim是vi文本编辑器的增强版本
3.1.2 文本编辑器的作用
- 创建或修改文本文件
- 维护Linux系统中的各种配置文件
3.2 vi编辑器的工作模式
- 三种工作模式:命令模式、输入模式、末行模式
- 不同模式间的切换:
3.3 命令模式的基本操作
3.3.1 光标移动
键盘操作 | 解释 |
---|---|
↑、↓、←、→ | 上、下、左、右 |
Page Down 或 Ctrl+F | 向下翻页 |
Page Up 或 Ctrl+B | 向上翻页 |
Home 或 ^ 或 0 | 跳转至行首 |
End 或 & | 跳转至行尾 |
1G 或 gg | 跳转至首行 |
G | 跳转至末行 |
"#"G | 跳转至#行 |
:set nu | 显示行号 |
:set nonu | 取消显示行号 |
3.3.2 复制、粘贴、删除
键盘操作 | 解释 |
---|---|
x 或 Delete | 删除光标处的单个字符 |
dd | 删除当前光标所在行 |
#dd | 删除从光标所在行开始的#行内容 |
d^ | 删除当前光标之前到行首的所有字符 |
d$ | 删除当前光标处到行尾的所有字符 |
yy | 复制光标所在行整行的内容到剪贴板 |
#yy | 复制从光标所在行开始的#行内容 |
p | 将缓冲区中的内容粘贴到光标位置处之后 |
P(大写) | 粘贴到光标位置处之前 |
3.3.3 基本操作
- 文件内容查找:
键盘操作 | 解释 |
---|---|
/word | 从上而下在文件中查找字符串“word' |
?word | 从下而上在文件中查找字符串"word |
n | 定位下一个匹配的被查找字符串 |
N | 定位上一个匹配的被查找字符串 |
- 撤销、编辑及保存退出
键盘操作 | 解释 |
---|---|
u | 撤回一次操作;重复u键,恢复多步操作 |
U(大写) | 用于取消对当前行所做的所有编辑 |
ZZ(大写) | 保存当前的文件内容并退出vi编辑器 |
3.4 末行模式的基本操作
3.4.1 保存文件及退出vi编辑器
命令 | 功能 |
---|---|
:w | 保存内容 |
:w /root/newfile | 另存为新文件 |
:q | 未修改退出 |
:q! | 放弃对文件的修改,并退出vi |
:wq 或 x | 保存修改的内容并退出 |
3.4.2 文件内容替换
命令 | 功能 |
---|---|
:s /old/new | 将当前行中查找到的第一个字符“old” 串替换为“new” |
:s /old/new/g | 将当前行中查找到的所有字符串“old”替换为“new' |
:#1,#2 s/old/new/g | 将行号“#1,#2”范围内的所有字符串“old”替换为“new |
:% s/old/new/g | 将整个文件范围内的所有字符串“old”替换为“new |
:s /old/new/c | 提示用户对每个替换动作进行确认 |
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。