分类: LINUX
2008-01-18 23:21:01
一. 实验目的:
1. 掌握shell变量的设置和使用
2. 掌握bash的基本操作方式
3. 掌握简单的shell脚本编辑方法
二. 实验内容:
1. 练习使用shell的各项功能
2.Bash的功能
3.管道与重定向
4.Shell脚本
三. 实验练习:
1.Shell环境
l 查看RHEL4系统中可用的shell程序列表;
l 怎么查看系统中的默认用户的shell;
2.环境变量
l 怎么查看系统中的环境变量,env与set的区别;
l 查看HOME,UID,PWD,PATH,PS1变量的值;
l 系统的环境变量配置文件是?用户的环境变量配置文件;
4. 位置变量
l 位置变量的范围,$0属于?
5. 预定义变量
l 怎么查看上一次命令是否成功执行;
l 当前执行的进程名;
l 当前进程的进程号;
6. 自定义变量
l 把crazylinux的值赋予给name;
l 查看name的变量的值;echo name的值是?
l 怎么样使当前name变量的值能在它的子进程中仍然有效;
l 取消现在的name变量
7.Shell的功能
1) 命令补齐功能
l 用date命令查看系统当前时间,在输入da后,按tab键,让shell自动补齐命令的后半部分。
l 用mkdir命令创建新的目录。首先输入第一个字母m,然后按tab键,由于以m开头的命令太多,shell会提示是否显示全部的可能命令,输入n。
l 再多输入一个字母k,按tab键,让shell列出以mk开头的所有命令的列表。
l 在列表中查找mkdir命令,看看还需要多输入几个字母才能确定mkdir这个命令,然后输入需要的字母,再按tab键,让shell补齐剩下的命令。
l 最后输入要创建的目录名,按回车键执行命令。
l 多试几个命令利用tab键补齐。
2) 命令别名功能
l 输入alias命令,显示目前已经设置好的命令的别名。
l 设置别名ls为ls –l,以长格形式显示文件列表。
l 显示别名ls代表的命令,确认设置生效。
l 使用别名ls显示当前目录中的文件列表。
l 在使定义的别名不失效的情况下,使用系统的ls命令显示当前目录中的命令列表:#\ls。
l 删除别名ls。
l 显示别名ls,确认删除别名已经生效。
l 最后再用命令ls 显示当前目录中的文件列表。
l 写出定义别名cde为:cd /etc的命令。
3) 输入、输出重定向和管道
(1) 输出重定向
l 用ls命令显示当前目录中的长格式文件列表。
l 使用输出重定向,进入/root目录,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中。
l 查看文件list中的内容,注意在列表中会多出一个文件list,其长度为0。这说明shell是首先创建了一个空文件,然后再运行ls命令。
l 再次使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中。这次使用管道符号>>进行重定向。
l 查看文件list的内容,可以看到用>>进行重定向是把新的输出内容附加在文件的末尾,注意其中两行list文件的信息中文件大小的区别。
l 重复命令#ls –l > list。
l 再次查看文件list中的内容,和前两次的结果相比较,注意list文件大小和创建时间的区别,完成课后第一题。
(2) 输入重定向
l 使用输入重定向,把上面生成的文件list用mail命令发送给自己:#mail root < list。
l 查看新邮件,看看收到的新邮件中其内容是否为list文件中的内容。
(3) 管道
l 利用管道和grep命令,查询系统是否安装vsftpd软件包。
l 利用管道和wc命令,计算文件list中的行数、单词数和字符数:#cat list | wc。
4) 查看和修改Shell变量
l 用echo命令查看环境变量PATH的值:#echo $PATH。
l 设置环境变量PATH的值,把当前目录加入到命令搜索路径中去:#PATH=“$PATH:.”。
l 用echo命令查看环境变量PATH的值:#echo $PATH。
l 比较前后两次的变化。
四. 思考题:
1. 输出重定向>和>>的区别是什么?
2. 通常命令中的-r和-f参数分别表示什么?
3. bash比sh有哪些方便用户使用的功能?