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 :归档工具,可以结合 gzipbzip2 等进行压缩。

    • 压缩参数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 文件.gzgunzip 文件.gz
  • bzip2 :压缩工具,支持 .bz2 格式。

    • 压缩参数bzip2 文件
    • 解压缩参数bzip2 -d 文件.bz2bunzip2 文件.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 保存并退出。

posted @ 2025-05-23 22:39  FangNing  阅读(38)  评论(0)    收藏  举报