工程课 Linux-2.0. homework_all
原题链接
简单
作者:
danielliu
,
2022-07-08 10:18:08
,
所有人可见
,
阅读 206
作业(注意题解里有些地方——编辑结束后退出编辑模式要按<Esc>没有写进去)
创建好作业后,先进入文件夹/home/acs/homework/lesson_2/,然后:
(0) 要求
进入homework_0文件夹,创建文件names.txt,并顺次将下列姓名写入该文件,每个名字占一行。
AcWing、yxc、Bob、张强、李明、Alice
(0) 完成
cd homework_0
vim names.txt(vim发现没有对应名字的文件时会自动创建)
<i>
一行输入一个名字(最后一个名字输完不要换行,可能会无法通过)
<Esc>
:wq
(1) 要求
进入homework_1文件夹,打开problem.txt,并依次删除下列字符:
[1] 最后一行第101个字符
[2] 第3行第8个字符
[3] 第1行第30个字符
[4] 第16行第55个字符
[5] 第9行第80个字符
最后保存文件并退出。
(1) 完成
cd ../homework_1
vim problem.txt
[1] 最后一行第101个字符:G101<Space>i<Backspace>ESC
[2] 第3行第8个字符:3G8<Space>i<Backspace>ESC
[3] 第1行第30个字符:gg30<Space>i<Backspace>ESC
[4] 第16行第55个字符::16<Enter>55<Space>i<Backspace>ESC
[5] 第9行第80个字符:9G80<Space>i<Backspace>ESC
:wq<Enter>
(1) 总结:
gg: 跳转第1行开头
nG: 跳转第n行开头
G: 跳转最后一行开头
n<Space>: 跳转到当前行的第n个字符后面
(2) 要求
进入homework_2文件夹,打开problem.txt,并依次执行如下操作:
[1] 在第1个"two"的后面添加"abc"
[2] 在第2个"two"的前面添加"def"
[3] 将第3个"two"后面的连续12个字符删掉
[4] 将第4个"two"所在的行删掉
最后保存文件并退出。
(2) 完成
cd ../homework_2
vim problem.txt
/two<Enter>
[1] 在第1个"two"的后面添加"abc":3<Space>iabc<Esc>
<Enter>
[2] 在第2个"two"的前面添加"def":idef<Esc>
<Enter><Enter>(因为是在前面加的def,所以按<Enter>找到的还是第二个"two")
[3] 将第3个"two"后面的连续12个字符删掉:3<Space>i然后按12次Delete(它是从当前位置删除后面的字符)<Esc>
<Enter>
[4] 将第4个"two"所在的行删掉:dd
:wq 保存并退出
(2) 总结:
/要查找的字符:查找字符
dd:删除所在行
(3) 要求
进入homework_3文件夹,打开problem.txt,并依次执行如下操作:
[1] 将第5行至第15行中所有of替换成OF。
[2] 将全文中所有的the替换成THE。
[3] 将第偶数个is替换成IS,第奇数个is不变。下标从1开始。
(3) 完成
cd ../homework_3
vim problem.txt
[1] 将第5行至第15行中所有of替换成OF。 :5,15s/of/OF/g
[2] 将全文中所有的the替换成THE。 :1,$s/the/THE/g
[3] 将第偶数个is替换成IS,第奇数个is不变。下标从1开始。 :1,$s/is/IS/gc 然后ny交替按即可
:wq
(3) 总结
r1,r2s/s1/s2/g:将第r1行至第r2行中所有s1替换成s2
1,$s/s1/s2/g:将全文中所有的s1替换成s2
1,$s/s1/s2/gc:打算将全文中所有的s1替换成s2,但在每次替换时都会询问,确认替换按y,不替换按n
(4) 要求
进入homework_4文件夹,开problem.txt,并依次执行如下操作:
[1] 删除第11行
[2] 将所删除的行粘贴到文件最后一行的下一行
[3] 复制第5行
[4] 将所复制的行粘贴到文件当前最后一行的下一行
(4) 完成
cd ../homework_4
vim problem.txt
[1] 删除第11行:11Gdd
[2] 将所删除的行粘贴到文件最后一行的下一行:Gp
[3] 复制第5行:5Gyy
[4] 将所复制的行粘贴到文件当前最后一行的下行:Gp
:wq
(4) 总结
nG:跳转到第n行
dd:删除所在行(更准确来讲d和dd是剪切,所以才可以做粘贴p操作)
G:跳转到最后一行
p:粘贴(如果复制或者剪切的是一整行,粘贴会粘贴在当前行的下一行)
yy:复制所在行
(5)要求
进入homework_5文件夹,打开problem.txt,并依次执行如下操作:
[1] 删除第11行第15个字符(包含该字符)至第13行第5个字符(包含该字符)
[2] 将所删除的内容粘贴到文件末尾(注意不要另起一行)
[3] 复制第5行第88个个字符(包含该字符)至第7行第6个字符(包含该字符)
[4] 将所复制的内容粘贴到当前文件末尾(注意不要另起一行)
(5)完成
cd ../homework_5
vim problem.txt
[1] 删除第11行第15个字符(包含该字符)至第13行第5个字符(包含该字符):11G14<Space>v13G5<Space>d
(因为要选中第15个字符,所以光标要在第14个字符的后面,所以14<Space>才是对的,如果有问题可能因为之前rm删除了文件导致的)
[2] 将所删除的内容粘贴到文件末尾(注意不要另起一行):G$p
[3] 复制第5行第88个个字符(包含该字符)至第7行第6个字符(包含该字符):5G87<Space>v7G6<Space>y
[4] 将所复制的内容粘贴到当前文件末尾(注意不要另起一行):G$p
:wq
(5)总结
11G14<Space>v13G5<Space>d:光标跳转到11行的第14个字符后面,然后v开始选中,选到13行第5个字符结束,d是删除选中的文本
$:跳转到所在行的末尾
(6) 要求
进入homework_6文件夹,并依次执行如下操作:
[1] 清空source0.cpp
[2] 将source1.cpp中的第1-3行和第12-24行复制到source0.cpp中
(6) 完成
cd ../homework_6
tmux
vim source0.cpp
ggdG
按下Ctrl + a后手指松开,然后按%(在tmux中,将当前pane左右平分成两个pane)
vim source1.cpp
:set nonu (隐藏行号,方便复制)
按住Shift,再选中前3行(vim里面按住Shift方便选中)
Ctrl + insert (Windows复制选中内容的方法)
选择source0.cpp所在的pane
:set paste (进入粘贴模式,取消自动缩进)
i进入编辑模式(进入编辑模式,才好粘贴。不进入编辑模式再加p,粘贴的是同一个vim里面复制剪切的东西)
Shift + insert粘贴内容(Windows粘贴的方法)
同理操作source1.cpp的第12-24行
保存source0.cpp :wq
退出source1.cpp :q
(6) 总结
ggdG:跳转到第1行开头,d开始删除,G删除到最后一行,最后的效果就是清空页面
按下Ctrl + a后手指松开,然后按%:将当前pane左右平分成两个pane,上下平分按<">
:set nonu:隐藏行号,方便复制
:set paste:进入粘贴模式,vim不会启动自动缩进,而只是纯拷贝粘贴
(7)要求
进入homework_7文件夹,格式化source.cpp
(7)完成
cd ../homework_7
vim source.cpp
gg=G
:wq
(7)总结
=:格式化当前行
gg=G:gg光标跳转到第1行的开头,=开始格式化,G格式化到最后一行
(8) 要求
进入homework_8文件夹,打开source.cpp,并依次执行如下操作:
[1] 将第15-21行向右缩进2次。
[2] 将第22-23行向左缩进1次。
(8) 完成
cd ../homework_8
vim source.cpp
15Gv21G>
15Gv21G>
22Gv23G<
:wq
(8) 总结
>:选中文本后按>,向右缩进一次。想要多次缩进的话,需要多次重复选中和按>的操作
<:选中文本后按>,向左缩进一次
(9) 要求
进入homework_9文件夹,打开链接:https://www.acwing.com/activity/content/code/content/1694465/
新建文件source.cpp,将链接中的代码抄进source.cpp文件中。
(9) 完成
cd ../homework_9
vim source.cpp
Ctrl + c (复制链接里评论区的代码)
:set paste
i
Shift + insert
<Esc>
:wq