实验目的
通过重定向和管道操作:
1) 熟悉输入/输出 (I/O) 重定向;
2) 把标准输出重定向创建一个文件;
3) 防止使用重定向的时候覆盖文件;
4) 把输出追加到一个现有的文件中;
5) 把一个命令的输出导入到另一个命令中。
在本实验中将会用到下列命令:
pwd: 显示当前的工作路径。
cd: 改变目录路径。
ls: 显示指定目录的内容。
more: 分页显示文件的内容。这是用于显示文本文件的首选方法。
head: 截取显示文件的开头部分 (默认为开头10行) 。
tail: 截取显示文件的结尾部分 (默认为最后10行) 。
cal: 有关日历的命令。
set: 当前shell下定义的一系列变量及其值。
echo: 显示变量的值。
ps: 显示当前进程的信息。
data: 显示或设置系统日期和时间。
grep: 查找文件中指定的关键字的行并输出。
提示:如果对命令的格式不清楚,可以用man命令请求帮助,即: man more |
步骤1:开机,登录进入GNOME。
在GNOME登录框中填写指导老师分配的用户名和口令并登录。
步骤2:访问命令行。
单击红帽子,在“GNOME帮助”菜单中单击“系统工具”-“终端”命令,打开终端窗口。
步骤3:重定向标准输出,创建一个文件。
右尖括号或称大于符号 (>) 把命令的输出发送到一个文件中:使用单个右尖括号,当指定文件名不存在的时候,将创建一个新文件;如果文件名存在,它将被覆盖。(注意:命令、重定向符号和文件名之间的空格是可选的) 。
重定向标准输出命令的格式是:
command > file
1) 为核实当前所在目录位置,使用什么命令?
___pwd________________________________________________________
如果当前位置不在主目录中,使用什么命令可以改变到主目录中?
___cd /__________________________________________________________
2) 如果希望把文件和目录列表截获,存储为主目录中的一个文件,这样可以追踪主目录中有什么文件。使用什么命令,把长文件列表的输出重定向,创建一个叫做homedir.list的文件。
____ls >homedir.list________________________________________________
3) 新文件homedir.list被放在哪里?
__根目录_________________________________________________________
使用ls命令核实新文件存在。
4) 使用什么命令,以一次一屏的方式,来查看刚才创建的文件内容?
__ls –l|more homedir.list____________________________________________
5) 使用head命令截获homedir.list文件的前10行,通过重定向,创建一个叫做dhomedir.list-top-10的新文件。应该使用什么命令?
___head –10 homedir.list >dhomedir.list-tail-10_________________________
使用more命令查看文件的内容。
6) 使用tail命令,截获homedir.list文件的最后10行,通过重定向,创建一个叫做dhomedir.list-top-10的新文件。使用什么命令?
___tail –10 homedir.list >dhomedir.list-top-10___________________________
使用more命令查看文件的内容。
7) 截获cal -y命令的输出,把它存到名为calendar的文件中。查看文件的内容。截获了什么?
___cal –y>calendar |more calendar
截获了2008年12个月份的日历
8) 截获cal 2010命令的输出,把它存到名为calendar的文件中。查看文件的内容。其中有什么内容?
_ cal -y 2010 > calendar |more calendar
2010年12月份的日历
日历有什么变化?
____不是2008年,变成2010年了_____________________________________
步骤4:防止使用重定向的时候覆盖文件。
在bash shell中,一个叫做noclobber的选项可以用来设定防止在重定向的过程中覆盖文件。可以在命令行中使用$set -o noclobber命令来完成。o代表选项。
为了重新激活clobber特性,使用$set -o noclobber;撤消则用set +o noclobber。
如果你使用的是csh shell,为了激活/撤消C shell中的clobber特性,使用set noclobber和unset noclobber。
1) 输入命令,打开shell中的noclobber选项。输入什么命令?
___set –o noclobber__________________________________________ _____
2) 输入命令ls -l > homedir.list,结果是什么?
___bash:homedir.list:cannot overwrite existing file.因为clobber选项防止了
重定向过程覆盖文件___________________________________ _ _
3) 输入命令ls -l > homedir.list2,结果是什么?
___不能重定向成功_______________________________________________
步骤5:向现有的文件追加输出。
如果想向一个现有的文件追加 (添加到末尾) 文本而不是覆盖它,可以使用双右尖括号 (>>) 。这个选项当文件不存在的时候,会创建一个新文件,或者追加到已有文件。
追加命令的格式是:
command >> file
1) 输入命令,显示“Happy Bday”一行字,使用重定向符号截获输出,把它存到叫做bday4me的文件中。使用什么命令?
____echo “Happy Bday” >>bday4me___________________________________
2) 输入命令,显示“YOURNAME!”一行字,使用双重定向符号,把输出追加到bday4me文件中。查看bday4me文件的内容。其中有什么?
__echo “YOURNAME” >>bday4me________________________ __ __
3) 输入命令,显示您出生年月的日历 (如果在1985年的6月出生,输入cal 6 1985) ,使用双重定向符号,把输出追加到bday4me文件中。使用什么命令?
___cal 06 1989 >>bday4me___________________________ ___________
4) 查看bday4me文件的内容。注意这3个命令的输出在bday4me文件中已经被组合起来了。您是在一周中的哪一天出生的?
____周一_________________________________________________________
步骤6:把命令的输出导入到另一个命令中。
1) 使用管道元字符,发送ls -l命令的输出,作为more命令的输入 (注意:如果在当前目录中没有太多的文件,使用 /etc目录获取长列表) 。把输出作为more命令的输入的时候,得到什么结果?
输入命令ls –l |more 结果以一屏一次的方式显示在屏幕上
2) 查看使用ls –l | more命令列出来的文件,注意创建或修改的日期。为了查看在同一个月被创建或修改的文件或目录的列表,可以使用grep命令对那个月进行搜索。当月份显示在列表中的时候,指定它 (例如:Oct) 。输入命令ls -1 | grep Oct (或者想查找的月份) 。结果是什么?
____只显示10月的目录___________________________________________
3) 目录总是4096字节大小。输入命令ls -1 | grep 4096。产生的列表是什么?
__4096字节大小的目录显示_______________________________________
4) 可以使用多个管道连接多个命令。输入取得长文件列表输出的命令,把它输入给tail命令,然后到sort命令。输入的命令是:
___ls –l|tail|sort____________________________________________________
5) ps (进程状态) 命令用于查看Linux系统中运行什么进程。把ps -e命令的输出输入给more命令。-e选项将给出每一个在系统中运行的进程。把输出输入到more命令中的结果是什么?
__输入命令_ps –e|more____显示所有系统中运行的程序_________
步骤7:删除在本实验中创建的文件和目录。
步骤8:关闭终端窗口,注销。
1. 使用set -o命令不指定任何选项,可以查看noclobber特性是否已经打开。
1) 输入set -o。noclobber特性打开还是关闭的?如果它是关闭的,打开它。使用什么命令?
____关闭set –o noclobber___________________________________________
2) 永久的关闭noclobber特性。使用什么命令?
___set +o noclobber________________________________________________
2. 可以把管道和重定向组合起来使用,达到特殊的效果。输入命令创建一个名为top5.list的文件,内容为主目录中的头5行记录,使用什么命令?
_____ls –l|head –5 >top5.list__________________________________________
实验总结
通过前面的实验目的,我学会了
1) 熟悉输入/输出 (I/O) 重定向;
2) 把标准输出重定向创建一个文件;
尖括号或称大于符号 (>) 把命令的输出发送到一个文件中:使用单个右尖括号,当指定文件名不存在的时候,将创建一个新文件;如果文件名存在,它将被覆盖。(注意:命令、重定向符号和文件名之间的空格是可选的) 。
3) 防止使用重定向的时候覆盖文件;
在bash shell中,一个叫做noclobber的选项可以用来设定防止在重定向的过程中覆盖文件。可以在命令行中使用$set -o noclobber命令来完成。o代表选项。
为了重新激活clobber特性,使用$set -o noclobber;撤消则用set +o noclobber。
如果你使用的是csh shell,为了激活/撤消C shell中的clobber特性,使用set noclobber和unset noclobber。
4) 把输出追加到一个现有的文件中;
如果想向一个现有的文件追加 (添加到末尾) 文本而不是覆盖它,可以使用双右尖括号 (>>) 。这个选项当文件不存在的时候,会创建一个新文件,或者追加到已有文件。
5) 把一个命令的输出导入到另一个命令中。
6)了解到Ctrl和F1、F2同时按,即可以在图形界面下转换到黑色shell界面,再按Ctrl F返回图形界面。