Linux实验报告——shell程序设计实验2

Linux实验报告

一、实验目的 

本实验主要学习shell脚本的建立和执行方法,并要求学会编写shell脚本。

二、实验结果 

1.执行【例4.22】、【例4.23】脚本内容,理解脚本执行结果。

(1)例4.22一个交互式归档程序,用户主要是通过菜单的选择来确定该程序的功能——恢复文档、后备文档或转储文档(取自光盘或存到光盘)。要求用户指定一个目录,根据选择进行操作,并对用户进行检查,判别是否有误。改程序执行一次可以备份用户指定的多个目录。

归档工作主要是由cpio命令完成

其中cpio [选项] > 文件名或者设备名    cpio [选项] < 文件名或者设备名

[cpio的功能]
cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件。

[描述]选项说明:
-o 将文件拷贝打包成文件或者将文件输出到设备上。
-i 将打包文件解压或者将设备上的备份还原到系统。
-t 查看cpio打包的文件内容或者输出到设备上的文件内容。
-v 显示打包过程中的文件名称。
-d 在cpio还原文件的过程中,自动的建立相应的目录。
-c 一种较新的存储方式。
-B 让默认的Blocks可以增大到5120 bytes,默认Blocks为512 bytes,这样做的好处是可以加快存取速度。

还需要注意的是,
1)cpio恢复的路径,如果cpio在打包备份的时候用的是绝对路径,那么在恢复的时候会自动恢复到这些绝对路径下,同理,如果在打包备份用的是相对路径,还原时也将恢复到相对路径下。
2)cpio无法直接读取文件,它需要每个文件或者目录的完整路径名才能识别读取,而find命令的输出刚好做到了这点,因此,cpio命令一般和find命令配合使用。

3)cpio恢复的时候不会自动覆盖同名文件。
4)不会创建目录而是直接解压到当前文件夹。
Linux实验报告——shell程序设计实验2_第1张图片Linux实验报告——shell程序设计实验2_第2张图片

 

(2)例4.23利用shell脚本获取当前所使用系统的硬件信息,该功能类似命令dmesg(其默认功能是读取内核环形缓冲区的所有信息)

dmesg(display message)打印或控制内核环形缓冲区。dmesg 命令用于检查和控制内核的环形缓冲区。Kernel 会将开机信息存储在 ring buffer 中,我们可以从中获得诸如系统架构、CPU、挂载的硬件,RAM 等多个运行级别的大量的系统信息。可利用 dmesg 来查看系统的启动信息。开机信息也会保存在 /var/log/dmesg。

当计算机启动时,系统内核会被加载到内存中。在加载的过程中会显示很多的信息,在这些信息中我们可以看到内核检测硬件设备。因此我们可以利用 dmesg 进行设备故障的诊断。内核进行硬件的连接或断开连接操作时,在 dmesg 命令的帮助下,我们可以看到硬件的检测或者断开连接的信息。常见命令:

dmesg []

dmesg --clear

dmesg --read-clear []

dmesg --console-level

dmesg --console-on

dmesg --console-offLinux实验报告——shell程序设计实验2_第3张图片

Linux实验报告——shell程序设计实验2_第4张图片 

 

三、综合编程实践完成课后题 4.14,4.18

(1)4.14 编写一个shell脚本,求斐波那契数列的前10项及总和。

Linux实验报告——shell程序设计实验2_第5张图片

Linux实验报告——shell程序设计实验2_第6张图片 

 

(2)4.18 设计一个程序cuts,有标准输入读取数据,获取由第一个参数n和第二个参数m所限定范围的数据,n和m都是整数,即从输入的字符串中抽取第n个字符至第m个字符之间的所有字符(包括这俩个字符)

Linux实验报告——shell程序设计实验2_第7张图片

Linux实验报告——shell程序设计实验2_第8张图片 

 

你可能感兴趣的:(linux,服务器,运维)