学了一段时间的linux,对一些常见的linux指令也有了一些了解,接下来阿牛将从一些练习题入手,带大家熟悉一些linux指令!
在进行这一部分练习之前,我先要给你们说清楚的是你们要了解 /、 . 、. . 这三个符号以及绝对路径,相对路径的问题!
/表示根目录,. 表示当前目录,… 表示当前目录的父目录。/用于绝对路径, . 、. . 则是我们相对路径里的,其实当你接触的编程知识多了之后你会发现大多情况下我们会用相对路径,可以两个点表示当前目录的父目录,三个点表示当前目录的爷爷 ···
这部分很多同学会犯错,我了举个例子,比如你的linux的根目录下的 home
目录下有个work目录,那你要进入work目录有两种方法:
法一:在根目录下进入
cd /home/work 或者 cd home/work
这里home前的 / 可以省略,因为最前面加 / 表示从根目录匹配,而home目录本身就在根目录!
法二:在home目录下进入
cd /home #先进入home目录
然后cd work 或者 cd ./work
这里就容易出现问题了,千万不能写 cd /work ,这是错误的,最前面加 / 表示从根目录匹配,而work目录并不在根目录下,要么不写 / , 要么写成 ./ , ./表示从当前目录开始匹配!
1、/home/目录下创建 /workspace/cmd 目录以及/workspace/tmp/test 目录
注意:很多同学找不到home目录,root用户刚登录系统默认在根目录下的
root目录下(不信的话登录系统后输入pwd指令看看!),你先要输入 cd / 或者 cd . . 进入根目录才能找到home目录!
2、进入 /workspace/cmd 目录,创建一个空文件my.txt
3、使用追加>>与cat命令向my.txt文件写入 hello world 数据
这里 << EOF 表示当检测到输入EOF时退出,你可以自己指定 << 后的结束字符,如果未写 << EOF ,那么请按Ctrl + C 退出!
4、将my.txt复制一份到/workspace/tmp/test
5、将/workspace/tmp/test目录移动剪切到/workspace/下
切记 . 表示当前目录!(如果你也想使用tree命令查看目录树形结构且和博主一样是最小化安装,请输入yum install tree安装tree工具包!)
6、清空/workspace/下的空目录
rmdir 只能清楚空目录,非空目录请用 rm -r 递归删除
7、打印/workspace/cmd/my.txt文件全部内容到终端
8、分页显示/etc/passwd的内容到显示终端上
分页显示有less和more两个命令,自行搜索区别!
9、在分页显示的内容中匹配root字符
10、显示/etc/passwd文件的前五行数据
11、显示/etc/passwd文件的后五行数据
12、显示系统时间的时间戳 ,日历
关于时间戳的概念以及13问的时间格式化我不多说,之前的一些博客中提到过,大家自行去了解,java,python中格式化时间操作格式基本都差不多!
13、以“月-日 时:分”格式显示当前系统时间
14、熟练使用tab键的自动补全功能
按下后会自动补全目录的名称,如果以输入的字符开头的名称有多个时,需要按下二次tab键来列出所有的名称。
编辑内容时记得按 i 键进入输入模式,输入命令时记得按 Esc 键 退出输入模式进入命令模式!
1、请在 /tmp 这个目录下建立一个名为 vitest 的目录
2、进入 vitest 这个目录当中
3、将 /etc/man_db.conf 复制到/home/XX
4、使用 vi 开启本目录下的 man_db.conf这个档案;
5、在 vi 中设定一下行号;
底线命令 :set nu
6、移动到第 58 行,向右移动 4 个字符,请问你看到的字符是什么?
先在命令模式输入58G定位到58行,然后输入4 + 空格键,则向右移动四个字符!是空格
7、移动到第一行,并且向下搜寻一下『 MANDB_MAP』这个字符串,请问他在第几行?
在命令模式下输入 gg 或者 1G 到达第一行,然后输入/MANDB_MAP
8、接着下来,我要将 50 到 100 行之间的『小写 man 字符串』改为『大写 MAN 字符串』,并且一个一个挑选是否需要修改,如何下达指令?如果在挑选过程中一直按『y』, 结果会在最后一行出现改变了几个 man 呢?
底线命令 : 50,100s/man/MAN/gc,如果是一次性修改,则结尾是/g
由图可以看出改变了26个man
9、修改完之后,突然反悔了,要全部复原,有哪些方法?
1.使用 :q! 或者 ZQ 离开,再打开文件。
2.一直按u恢复原始状态
10、我要复制 65 到 73 这九行的内容(含有MANPATH_MAP),并且贴到最后一行之后;
在命令模式下先输入65G到达第65行,然后输入9yy复制65-73这九行,然后输入G让光标定位到最后一行,然后输入p即可粘贴!
(复制成功!131是源文件末尾行)
11、21 到 42 行之间的开头为 # 符号的批注数据我不要了,要如何删除?
法一 : 命令模式下输入21G进入第21行,Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号(按键盘 ↓键选,选到42行),选好之后按 d 即可删除注释,Esc 保存退出。
法二:进行替换,将21行到42行的注释符号 # 替换为空
:21,42s/#//g
12、将这个档案另存成一个 man.test.config 的文档名;
mv不仅可以移动文件,还可以修改文件名!
13、去到第 43 行,并且删除 15 个字符,结果出现的第一个单字是什么?
在命令模式下输入43G到达第43行,然后输入15x 即可删除15个字符。第一个字符是l。
14、在第一行新增一行,该行内容输入『I am a student…』;
命令模式下输入gg或者1G到第一行,按下 i 键进入输入入模式,然后在第一行后插入内容,最后按Esc键退出插入模式!
15、储存后离开吧!
命令模式下输入 :wq 或者 ZZ 保存离开!
如果上面题解有问题请与我交流!
如果你觉得博主写的还不错的话,可以关注一下当前专栏,博主会更完这个系列的哦!也欢迎订阅博主的其他好的专栏。
🏰系列专栏
👉软磨 css
👉硬泡 javascript
👉flask框架快速入门