02_文件管理习题记录
文件及目录课后作业
#vim常用
:n1,n2d # 删除
:ndd # 将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。
:u # 撤销上一步
ctrl+r # 恢复撤销
:n1,n2 co n3 # 将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3 # 将n1行到n2行之间的内容移至到第n3行下
1. 从 /proc/meminfo 中过滤出内存的使用情况,并保存到 /root/mem.txt 中
#me
[root@Kanyun ~]# egrep 'Mem*' /proc/meminfo > /root/mem.txt
[root@Kanyun ~]# cat /root/mem.txt
MemTotal: 3861288 kB
MemFree: 865368 kB
MemAvailable: 2377312 kB
grep 'MemTotal\|MemFree\|Buffers\|Cached' /proc/meminfo > /root/mem.txt
2. 通过 df 命令过滤出 / 分区的使用情况,并保存到 /root/df.txt
#me
[root@Kanyun ~]# df -h | awk '$NF=="/"{print $5}' > /root/df.txt
[root@Kanyun ~]# cat /root/df.txt
37%
[root@Kanyun ~]# df -h | awk '$NF=="/"'
/dev/mapper/centos-root 17G 6.3G 11G 37% /
[root@Kanyun ~]# df -h | awk '$NF=="/"' >> /root/df.txt
[root@Kanyun ~]# cat /root/df.txt
37%
/dev/mapper/centos-root 17G 6.3G 11G 37% /
df -h / | grep '/' | awk '{print $0}' > /root/df.txt
3. 通过 man man > /root/man.txt 操作创建 man 命令的文本手册页,用 vi 编辑器打开 /root/man.txt 文件,并以此文件作为练习素材
man man > /root/man.txt
vi /root/man.txt
4. 在 /root/man.txt 文件中显示行号
在 vi 中输入 :set nu。
5. 在第 5 行后读入 /root/mem.txt 和 /root/df.txt 的内容
在 `vi` 中输入 `:5r /root/mem.txt` 和 `:5r /root/df.txt`。
6. 切换到最后一行,读入 /etc/passwd 的内容
在 vi 中输入 :$r /etc/passwd。
$:光标移至当前行尾
r:替换当前字符
`$` :表示将内容追加到当前文件的末尾。
`r` :读取(Read)命令,用于将外部文件的内容读取并插入到当前文件中。
7. 删除 10 到 20 行的内容
#me
dd 10 20
在 vi 中输入 :10,20d。
8. 将 6、7 行剪切到 100 行后
在 vi 中输入 :6,7 m 100。
9. 在文件中查找 "bin" 字符串
在 vi 中输入 /bin。
向上?bin
10. 将文件中所有的 "bin" 字符串替换为 "rtjy"
在 vi 中输入 :%s/bin/rtjy/g。
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
:%s/p1/p2/g 将文件中所有p1均用p2替换
11. 保存该文件后退出 vi 编辑器
在 vi 中输入 :wq。
12. 滤除该文件所有的空行之后,保存到 /media/man.txt
#me
cat /root/man.txt | egrep -v ^$ > /media/man.txt
-v, --invert-match 选中不匹配的行
sed '/^$/d' /root/man.txt > /media/man.txt
# 解释
`d` :表示删除匹配到的内容,即删除空行。
sed 默认不修改原文件,除非使用 -i 选项(sed -i '/^$/d' /root/man.txt 会直接修改原文件)。
如果需要保留原文件的权限和属性,建议先备份原文件。
如果目标文件 /media/man.txt 已存在,该命令会覆盖其内容。
13. 将 /media/man.txt 通过 tar 命令调用 gzip 压缩归档到 /opt/ 目录下
tar -czvf /opt/man_backup.tar.gz /media/man.txt
[root@Kanyun ~]# ls /opt/
man.tar.gz rh
-c 表示创建归档文件,-z 表示使用 gzip 压缩,-v 表示显示详细信息,-f 表示指定归档文件名。
14. 删除 /root/man.txt
rm /root/man.txt
15. 将 13 步备份的文件释放到 /mnt 目录下
tar -xzvf /opt/man_backup.tar.gz -C /mnt
-x 表示解压,-C 表示指定解压目标目录。
Linux 打包与压缩习题
0. 列出 Linux 常用打包工具并写相应的压缩、解压缩参数
常用打包工具
-
tar:归档工具,可以结合gzip、bzip2等进行压缩。- 压缩参数 :
tar -czvf 归档文件名.tar.gz 文件或目录 - 解压缩参数 :
tar -xzvf 归档文件名.tar.gz -C 解压目录 - 压缩为 bzip2 格式 :
tar -cjvf 归档文件名.tar.bz2 文件或目录 - 解压 bzip2 格式 :
tar -xjvf 归档文件名.tar.bz2 -C 解压目录
- 压缩参数 :
-
gzip:压缩工具,支持.gz格式。- 压缩参数 :
gzip 文件 - 解压缩参数 :
gzip -dv 文件.gz或gunzip 文件.gz
- 压缩参数 :
-
bzip2:压缩工具,支持.bz2格式。- 压缩参数 :
bzip2 文件 - 解压缩参数 :
bzip2 -d 文件.bz2或bunzip2 文件.bz2
- 压缩参数 :
-
zip:压缩工具,支持.zip格式,支持对文件和目录进行压缩。- 压缩参数 :
zip -r 归档文件名.zip 目录 - 解压缩参数 :
unzip 归档文件名.zip -d 解压目录
- 压缩参数 :
1. 如何用 gzip 命令对文件进行压缩、解压缩,给出实践步骤
压缩文件
gzip example.txt
解压缩文件
gzip -d example.txt.gz
或使用 gunzip 命令:
gunzip example.txt.gz
执行后,example.txt.gz 将被解压缩为 example.txt。
2. 如何用 bzip2 命令对文件进行压缩、解压缩,给出实践步骤
压缩文件
bzip2 example.txt
执行后,example.txt 将被压缩为 example.txt.bz2。
解压缩文件
bzip2 -dv example.txt.bz2
或使用 bunzip2 命令:
bunzip2 example.txt.bz2
执行后,example.txt.bz2 将被解压缩为 example.txt。
3. 如何用 zip 命令对文件以及目录进行压缩、解压缩,给出实践步骤
#me
压缩:zip file.zip file zip -r xx/dir.zip xx/dir
解压:zip -A xx/file.zip
压缩文件或目录
zip -r example.zip example_dir/
-r 处理指定目录和指定目录下的使用子目录
该命令将 example_dir 目录递归压缩为 example.zip 文件。
解压缩文件
unzip example.zip -d example_dir
该命令将 example.zip 文件解压到 example_dir 目录中。
4. 创建一个自己名子的文件至 /opt 目录,给出实践步骤
echo "My name is [你的名字]" | tee /opt/[你的名字].txt
tee 命令:用来将标准输入的内容输出到标准输出并可以保存为文件
5. 打包 opt/ 整个目录,并命名为 test_opt.tar.gz,给出实践步骤
tar -czvf test_opt.tar.gz /opt/
6. 查看打包好的 test_opt.tar.gz 里的文件,给出实践步骤
tar -tzf test_opt.tar.gz
解释:使用 tar 命令查看 test_opt.tar.gz 文件中的内容列表。
7. 将打包好的 test_opt.tar.gz 内容指定解压至 /tmp 目录,并给出实践步骤
tar -xzvf test_opt.tar.gz -C /tmp
## 命令解析
* **`tar`** :归档工具,用于打包、解包、压缩和解压文件。
* **`-t`** :列出归档文件的内容,但不会解压。
* **`-z`** :表示对归档文件进行 gzip 压缩或解压。这里用于处理 `.tar.gz` 文件。
* **`-f`** :指定归档文件的文件名(`test_opt.tar.gz`)。
* **`test_opt.tar.gz`** :指定要操作的归档文件名,这里是一个 `.tar.gz` 文件,即经过 gzip 压缩的 tar 归档文件。
## 使用场景
当你需要查看一个 `.tar.gz` 文件中包含哪些文件和目录时,可以使用该命令。例如:
* 在下载了一个软件的 `.tar.gz` 文件后,想要查看里面的内容。
* 在备份或传输文件时,需要确认归档文件的内容是否正确。
Linux 系统 VIM 编辑器习题
1. 创建目录 /vim ,拷贝文件 /etc/inittab 到 /vim 目录下,使用 vim 编辑 /vim/inittab 文件,把其中的第 18 行到 24 行注释(使用连续行注释命令)
mkdir /vim
cp /etc/inittab /vim/
vim /vim/inittab
在 vim 中输入 :18,24s/^/#/。
2. 编辑 /vim/inittab 文件,把第 10 行到 20 行之间的字符串 init 都替换为 boot
在 vim 中输入 :10,20 s/init/boot/g。
3. 设置 vim 配置文件,使每次使用 vi 编辑任何文件都自动显示行号
echo 'set nu' >> /etc/vimrc
解释:将 set nu 命令追加到 /etc/vimrc 文件中,使每次打开 vim 时都自动显示行号。
4. 编辑 /vim/inittab 文件,定位到第 15 行,光标跳到行尾添加 “www.wing.com”,然后复制此行到第 20 行后
在 vim 中执行以下操作:
:15
Awww.wing.com<Esc>
:15 t 20
5. 删除 /vim/inittab 文件的第 1 行到第 15 行
在 vim 中输入 :1,15d。
6. 编辑 /vi.test/inittab 定位到屏幕下端,把光标所在处字符替换为 “x”,查找字符串 “NOT”,找到后替换为 “YES”,保存退出
假设存在 /vi.test/inittab 文件,则操作如下:
vi /vi.test/inittab
定位到屏幕下端
在 vim 中按 L(大写 L)。
L :光标移至屏幕最后行
替换字符
在普通模式下,使用 r 命令将光标所在处的字符替换为 x。
r:替换当前字符
查找并替换字符串
输入 /NOT 查找字符串 “NOT”,找到后输入 :s/NOT/YES/ 将当前行匹配内容替换为 “YES”。
保存退出
输入 :wq 保存并退出。

浙公网安备 33010602011771号