一、实验内容
1)输入输出重定向:
- 新建文件file1,输入:
Hello,
Linux!
保存并退出。新建文件file2,输入:
World!
保存并退出。
将file1和file2的内容显示在终端上,并重定向到文件file3。
将file1的内容追加到文件file3。
- 管道: 统计文件file3中出现“hello”的行数并显示。
2)管道和输入输出重定向: 进入目录/home/student,用ls –l长格式的方式列出当前目录下的文件和目录,并将其前5条信息保存到文件list中。
3)Shell程序设计:
- 在/home目录中创建50个目录,目录名称依次为:a1,……,a50;
- 编写一个程序,它的作用是:先查看一下/root/test/logical这个名称是否存在。若不存在,则创建一个文件,使用touch来创建,创建完成后离开;如果存在,判断该名称是否为文件,若为文件,则显示其行数;如果不是文件,则离开;
- 编写一个shell脚本,从键盘读入10个数,显示最大值和最小值;
- 编写一个脚本,打印任何数的乘法表。如:输入3,则打印
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
二、实验结果
1)输入输出重定向:
①新建文件file1,输入:
Hello,
Linux!
保存并退出。新建文件file2,输入:
World!
保存并退出。
将file1和file2的内容显示在终端上,并重定向到文件file3。
将file1的内容追加到文件file3。
②管道:
统计文件file3中出现“hello”的行数并显示。
2)管道和输入输出重定向: 进入目录/home/student,用ls –l长格式的方式列出当前目录下的文件和目录,并将其前5条信息保存到文件list中。
3)Shell程序设计:
①在/home目录中创建50个目录,目录名称依次为:a1,……,a50;
②编写一个程序,它的作用是:先查看一下/root/test/logical这个名称是否存在。若不存在,则创建一个文件,使用touch来创建,创建完成后离开;如果存在,判断该名称是否为文件,若为文件,则显示其行数;如果不是文件,则离开;
③编写一个shell脚本,从键盘读入10个数,显示最大值和最小值;
④编写一个脚本,打印任何数的乘法表。如:输入3,则打印
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
三、实验小结
在/home目录中创建50个目录时,由于我缺少了两对括号,导致报错“没有那个文件或目录”。
在加上括号后,又发现无法在/home目录中添加文件,报错为“权限不够”。
在/home中添加一个名为“50”的文件夹后,依旧显示权限不够,且代码写错了,遗漏了/a$i,导致变成了创建目录/home/50。
最后将创建目录的位置改为/home/hadoop/桌面/50/a$i就成功了。
还有一次类似的报错是在编写打印任何数的乘法表的脚本时,依旧是报错“权限不够”,。本以为是文件的命名出现问题,因此将文件名multiply改为了multiply.sh,却还是报错。在查询相关资料后才知道,Linux对于权限相当严格,需要调用chmod来更改权限。
在调用chmod更改权限后,成功调用了multiply.sh。
2)③ 参考:https://blog.csdn.net/jiangyingfeng/article/details/47857111
(内容参考网络文章,但因为时间过去好久已经忘记来源了555)