一. 操作目的:
1. 熟悉shell的各项功能;
2. 掌握Linux系统终端方式使用的编辑器vi;
3. 学习vi的启动、存盘、文本输入、现有文件的打开、光标移动、复制/剪贴、查找/替换等命令。
二. 操作内容:
1. 练习使用shell的各项功能;
2. 熟练掌握vi编辑器的使用。
三. 实际操作:
1. Vi编辑器
1) 熟悉vi编辑起的使用
- 在/root这个目录下建立一个名为vitest的目录
sudo mkdir /root/vitest
- 进入vitest目录,将/etc/manpath.config复制到当前目录
su root cd /root/vitest sudo cp /etc/manpath.config /root/vitest .
- 使用vi打开当前目录下的manpath.config
vi manpath.config
- 在vi中设置行号
:set nu
- 移动光标到第一行,并向下搜索pager这个字符串,请问它是第几行?
:/pager
- 将50-100行之间man替换炒年糕MAN,并且要求逐个修改
:50,100s/man/MAN/g
- 修改完成后全部恢复
u
- 复制66-75行的10行内容到最后一行之后
66G 10yy G p
- 删除第 11-30行之间的20行
11G 20dd
- 将文件另存为一个manpath.test.config
w manpath.test.config
- 将光标移到第29行,并且删除第15个字符
29G 15<space> x
- 统计目前的文件有多少行及多少文字?
:!wc –l –c manpath.config
- 保存退出
:wq
2) 在vi中编写一个abc.c程序,具体如下;对程序进行编译、连接、运行。
3) 编写一个程序解决“鸡兔同笼”问题。对程序进行编译、连接、运行。
2. 熟悉Shell环境,使用Shell的各种功能
1) 命令补齐功能
- 用date命令查看系统当前时间,在输入da后,按tab键,让shell自动补齐命令的后半部分。
- 用mkdir命令创建新的目录。首先输入第一个字母m,然后按tab键,由于以m开头的命令太多,shell会提示是否显示全部的可能命令,输入n。
- 再多输入一个字母k,按tab键,让shell列出以mk开头的所有命令的列表。
- 在列表中查找mkdir命令,看看还需要多输入几个字母才能确定mkdir这个命令,然后输入需要的字母,再按tab键,让shell补齐剩下的命令。
- 最后输入要创建的目录名,按回车键执行命令。
- 多试几个命令利用tab键补齐。
2) 命令别名功能
- 输入alias命令,显示目前已经设置好的命令的别名。
- 设置别名ls为ls –l,以长格形式显示文件列表:#alias ls=‘ls -l’。
- 显示别名ls代表的命令,确认设置生效:#alias ls。
- 使用别名ls显示当前目录中的文件列表。
- 在使定义的别名不失效的情况下,使用系统的ls命令显示当前目录中的命令列表:#ls。
- 删除别名ls:#unalias ls。
- 显示别名ls,确认删除别名已经生效:#alias ls。
- 最后再用命令ls 显示当前目录中的文件列表。
3) 输入、输出重定向和管道
(1) 输出重定向
- 用ls命令显示当前目录中的文件列表:#ls –l。
- 使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中:( ls > list )。
- l 查看文件list中的内容,注意在列表中会多出一个文件list,其长度为0。这说明shell是首先创建了一个空文件。( cat list )
- 再次使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中。这次使用管道符号>>进行重定向:( ls >> list)。
- 查看文件list的内容,可以看到用>>进行重定向是把新的输出内容附加在文件的末尾,注意其中两行list文件的信息中文件大小的区别:cat list。
(2) 输入重定向
- 使用输入重定向,把上面生成的文件list用mail命令发送给自己:#mail root < list。
- 查看新邮件,看看收到的新邮件中其内容是否为list文件中的内容。
(3) 管道
- 利用管道和wc命令,计算文件list中的行数、单词数和字符数:#cat list | wc
(4)查看和修改Shell变量
- 用echo命令查看环境变量PATH的值:( echo $PATH)
- 设置环境变量PATH的值,把当前目录加入到命令搜索路径中去
export PATH=/home/zq:$PATH
- 用echo命令查看环境变量PATH的值
echo $PATH
- 比较前后两次的变化。
4) shell编程并显示运行结果
- 创建一个简单的 shell 程序,其功能为:
- 显示计算机sell路径名以及显示系统日期和时间。
- 环境变量PATH的值;把当前目录加入到PATH值中,显示PATH的新值
- 定义一个变量str,赋值“Waiting for a minutes…”,并在屏幕输出;
- 4)长格式显示主目录下的文件和目录,输出重定向到主目录下的file.txt文件中,并显示文件内容。
- 编写一个 shell 程序,要求:根据从键盘输入的学生成绩,显示相应的成绩等级,其中60 分以下为“Failed!”,60-79 分为“Passed!”,80-100分为“Excellent!”。
- 设计一个 shell 程序,添加一个新组 class1,然后添加属于这个组的 30 个用户,用户名的形式为std??,其中??从 01 到 30
(图片有点多,看到这里谢谢大家啦)