2-Linux重定向和管道、Shell编程
评 分
实验报告
课程名称: 操作系统
实验名称: Red Hat Linux操作系统的运用
专 业: 信息与计算科学
成 员: 庄小俪
指导教师: 陆星家
完成日期: 2013 年 9月 24日
实验二 Linux的重定向和管道、Shell编程
一、实验目的:
1、掌握在Linux下的重定向和管道。
2、掌握Linux系统下的Shell编程中的变量声明和使用。
3、熟悉在Linux环境下的Shell编程的If语句,elif语句,for语句,while语句,until语句以及case语句。
二、内容及步骤:
(一)重定向和管道
1、I/O命令
(1)管道(pipe-line)的使用
执行格式: command1| command2
功能:将command1的执行结果送到command2 作为输入
ls -rl |more 以分页方式列出当前目录文件及子目录名称;
cat file1|more 以分页方式,列出file1的内容
ps | sort | more|
(2)标准输入控制
执行格式: command-line
mail “mail_test”user@iis.sinica.edu.tw< test.txt
功能:将文件file1当作信件的内容,subject 名称为mail_test 送给收信人
(3)标准输出控制
执行格式一: command>filename
功能:将command的执行结果送至指定的filename中
例: ls -l >list 将执行”ls -l” 的结果写入文件list中
执行格式二: command>!filename
功能:同上,若filename文件已存在,则强迫重写
执行格式三: command>&filename
功能:将command执行所产生的任何信息写入filename
执行格式四:command>>filename
功能:将command 的执行结果,附加(append)到filename
执行格式五:command>>&filename
功能:将command执行所产生的任何信息附加于filename中
二、掌握Linux环境下的shell编程
(1)shell 是交互式程序设计方式
1.显示hello world
#!/bin/bash
echo “Hello world”
在程序执行时会出现“当前用户没有权限的提示”,利用chmod,获取hello.sh的文件权限。
2.显示变量$a
#!/bin/bash
a=”Hello world”
echo “A is:” $a
3.显示目前的$SHELL版本
#!/bin/bash
if [ $SHELL = "/bin/bash" ]; then
echo "your login shell is the bash (bourne again shell)"
else
echo "your login shell is not bash but $SHELL"
fi
4.使用read,进行判断
#!/bin/bash
echo “pls input sh”
read sh
if [ $sh = "/bin/bash" ]; then (空格)
echo "your login shell is the bash (bourne again shell)"
else
echo "your login shell is not bash but $Sh"
fi
[ -f "somefile" ] :判断是否是一个文件
[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
[ -n $var ] :判断$var变量是否有值
[ "$a" = "$b" ] :判断$a和$b是否相等
发送邮件:
将目录导到linux.txt 文件中
可以随意插入内容
Ctrl+c和Shift+“:”到页尾,输入wq退出该页面,返回
小练习《1》
小练习《》
小练习《》
五、小结
通过这次Linux的基本操