实验二
Shell 和 Vi 编辑器
一. 实验目的:
熟悉 shell 的各项功能;
掌握 Linux 系统终端方式使用的编辑器 vi;
学习 vi 的启动、存盘、文本输入、现有文件的打开、光标移动、复制/剪贴、查
二.
找/替换等命令。
实验内容:
练习使用 shell 的各项功能;
熟练掌握 vi 编辑器的使用。
三. 实验练习:
1.
熟悉 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 显示当前目录中的文件列表。
写出定义别名 cde 为:cd /etc 的命令( )。
3)
输入、输出重定向和管道
(1)
输出重定向
用 ls 命令显示当前目录中的文件列表:#ls –l。
使用输出重定向,把 ls 命令在终端上显示的当前目录中的文件列表重定向到文件
list 中:#ls –l > list。
?
查看文件 list 中的内容,注意在列表中会多出一个文件 list,其长度为 0。这说明
shell 是首先创建了一个空文件,然后再运行 ls 命令:#cat list。
?
再次使用输出重定向,把 ls 命令在终端上显示的当前目录中的文件列表重定向到文
件 list 中。这次使用管道符号>>进行重定向:#ls –l >> list。
?
查看文件 list 的内容,可以看到用>>进行重定向是把新的输出内容附加在文件的末尾,
注意其中两行 list 文件的信息中文件大小的区别:cat list。
重复命令#ls –l > list。
再次查看文件 list 中的内容,和前两次的结果相比较,注意 list 文件大小和创建时
间的区别,完成课后第一题。
(2)
?
输入重定向
使用输入重定向,把上面生成的文件 list 用 mail 命令发送给自己:#mail root <
list。
?
(3)
?
查看新邮件,看看收到的新邮件中其内容是否为 list 文件中的内容。
管道
利用管道和 grep 命令,在上面建立的文件 list 中查找字符串 list:#cat list |
grep list。
?
利用管道和 wc 命令,计算文件 list 中的行数、单词数和字符数:#cat list | wc。
4)
查看和修改 Shell 变量
用 echo 命令查看环境变量 PATH 的值:#echo $PATH。
设置环境变量 PATH 的值,把当前目录加入到命令搜索路径中去:
#PATH=“$PATH:.”。
用 echo 命令查看环境变量 PATH 的值:#echo $PATH。 比较前后两次的变化。
2. Vi 编辑器
运行编辑器 vi。
学习 vi 常用命令 :
语法:vi 文件名
对指定的文件执行 vi 编辑程序。
(2) 参数:
文件名:要编辑的文件名。
以下是可在 vi 中使用的部分命令:
Esc:按键将返回命令模式,允许输入新命令。 r:替换一个字符。
R:无限制地在一行中替换。
i:插入模式。
dd:删除一行。
x:删除一个字符。
$:行尾。
^:行的开始。
:x:写文件并退出 vi。
:q!:退出 vi,不存文件。
/:允许输入查询模式。
3)
在 vi 中编写一个 abc.c 程序,对程序进行编译、连接、运行。具体如下:
[student@enjoy student]$ c