一、 实验准备(预防抄袭,此步必做)

1. 请将提示符设为:学号加波浪号。输入PS1=学号~,如PS1=110015~, 回车执行

2. 如发现提示符、学号不匹配, 视为抄袭或无效

二、 实验项目

1. for循环控制命令

执行命令:

host www.****.edu.cn

可以得到它的ip地址: 222.175.157.209

假如现在我们要测试222.175.157.1到222.175.157.254这个范围内哪些ip处于活跃状态,那些处于非活跃状态,需要重复ping这些ip地址。可以采用for循环,下面做个实验:

执行命令

touch test41

打开test41,输入:

存盘退出,执行命令

chmod +x test41

输入 ./test41 执行:

(下面粘贴执行截图Ê)

$ 这里有几点需要注意:

  • 使用了输出追加重定向操作>>
  • alive=$(命令)的意思是命令替换,即把命令的执行结果保存在变量alive中,因为默认情况下,命令的输出是标准输出,即屏幕,而不是变量。
  • 关于命令替换,见教材207页
  • 命令wc –l alive.data统计文件中的行数,但命令共输出两个域,通过cut –f1命令把第一个域截取出来。-d指定域之间的分隔符是空白,注意单引号之间要有一个空格
  • 关于ping命令中-w 、-c选项的含义,参考man ping,请自学
  • {1..254}是一个集合,意思是从1到254

执行命令

ls –lh | grep data

可以看到两个文件:

(下面粘贴执行截图Ê)

执行命令

cat alive.data not_alive.data | more

可以看到:

(下面粘贴执行截图Ê)

思考题

如果每次执行这个脚本,文件alive.data、 not_alive.data都保存了上次执行的结果,这是不正确的。ping之前,需要把文件alive.data、not_alive.data清空,应该在程序中如何处理?请重新改写上面的脚本,并测试你的程序。

(下面粘贴你的程序,以及执行截图Ê)提示:参考 man truncate

下面再做过一个批量生成空白文件的实验

执行命令 touch test42,在文件test42中,键入:

然后键入bash test42, 可以看到

(下面粘贴执行截图Ê)

最后执行命令rm *.log 删除这些临时文件

2. break语句

请同学们自己做,教材241页,程序break01.sh

(下面粘贴执行截图Ê)

3. select循环

教材238页,程序select01.sh

(下面粘贴执行截图Ê)

4. until循环控制

until的语法是

until condition

do

……

done

只要条件condition不满足,就反复循环,直到条件满足为止

下面做个实验,如果你有事要找root先生,那么当root登陆后,立即响铃一声,并提示你

执行命令 touch test43, 在文件test43中键入:

然后执行命令

chmod +x test43

./test43 root

接下来,按ctrl + alt + F2, 以root身份登陆。再按ctrl + alt + F7返回,

可以看到:

(下面粘贴执行截图Ê)

$ 这里有几点注意:

  • 为了保持脚本安静运行,输出被扔掉了
  • $1就是第一个参数,也就是命令行传进来的root
  • \a的意思是让铃铛alarm一声
  • sleep 50 的意思是暂停50秒,否则反复测试会消耗CPU资源

5. while循环

教材235页,程序while03.sh

(下面粘贴执行截图Ê)

Linux的Shell练习--个人笔记的更多相关文章

  1. Linux shell 菜鸟学习笔记....

    20171123 Linux shell 基础学习笔记1. shell 的开始 一般是 #!/bin/bash 通过 #! 来唯一指定使用的shell路径 其他的 # 都表示注释.2. shell 的 ...

  2. 《The Linux Command Line》 读书笔记02 关于命令的命令

    <The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is inter ...

  3. 《The Linux Command Line》 读书笔记01 基本命令介绍

    <The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...

  4. loadrunner调用plink,远程linux执行shell命令

    loadrunner调用plink,远程linux执行shell命令   脚本: Action() {   char* cmd; cmd = lr_eval_string("C:\\\&qu ...

  5. Linux及Arm-Linux程序开发笔记(零基础入门篇)

    Linux及Arm-Linux程序开发笔记(零基础入门篇)  作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/bee ...

  6. Linux——帮助命令简单学习笔记

    Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信 ...

  7. Linux操作系统及应用课程笔记 索引

    第0部分  软件的安装与配置 Linux下软件的安装与配置 第1部分*   绪论 第2部分*  Linux的安装过程 第3部分   系统Shell和经常使用命令 Shell文件相关经常使用命令及參数总 ...

  8. Linux内核设计与实现笔记_1_基本概念

    Linux内核设计与实现笔记_1_基本概念 操作系统 系统这个词包含了操作系统和所有运行在它上面的应用程序.操作系统是指在整个系统中负责完成分最基本功能和系统管理的那些部分,这些部分应该包括: 内核, ...

  9. 【Linux开发】Linux及Arm-Linux程序开发笔记(零基础入门篇)

    Linux及Arm-Linux程序开发笔记(零基础入门篇) 作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer ...

随机推荐

  1. Item 13: 比起iterator优先使用const_iterator

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 STL中的const_iterator等价于pointers-to ...

  2. Visual studio 2015 Community 安装过程中遇到问题的终极解决

    早就有给自己电脑升级VS的想法,可是安装过程并不顺利,一直拖到现在,昨天下定决心,把遇到的问题一个个解决,终于安装成功了,将安装过程中遇到的问题和解决方法记录一下. 需要说明一下的是,不同的电脑环境可 ...

  3. immutability因React官方出镜之使用总结分享!

    作者:首席填坑官∙苏南 公众号:honeyBadger8,群:912594095,本文原创,著作权归作者所有,转载请注明原链接及出处. 引言 之前项目中遇到数据拷贝.引用之间数据层级嵌套过深,拷贝的值 ...

  4. Python Revisited Day 04 (控制结构与函数)

    目录 4.1 控制结构 4.1.1 条件分支 4.1.2 循环 4.2 异常处理 4.2.1 捕获与产生异常 4.2.2 自定义异常 4.3 自定义函数 Tips 参数默认值为可变时 危险 4.3.1 ...

  5. Selenium库

    '''自动化测试工具,支持多种浏览器.爬虫中主要用来解决JavaScrip渲染的问题.''''''基本使用'''from selenium import webdriverfrom selenium. ...

  6. Factors of Factorial AtCoder - 2286 (N的阶乘的因子个数)(数论)

    Problem Statement You are given an integer N. Find the number of the positive divisors of N!, modulo ...

  7. Springboot通过cors解决跨域问题(解决spring security oath2的/oauth/token跨域问题)

    @Bean public CorsFilter corsFilter() { final UrlBasedCorsConfigurationSource source = new UrlBasedCo ...

  8. (Git 学习)Git SSH Key 创建步骤

    首先感谢segmentfalut上的朋友对我帮助. 首先:查看你是否有../ssh 这个文件:怎么查看:找到你的git安装目录,在安装目录下查看是否./ssh,以我的为例: 在C盘/Users/11/ ...

  9. javascript重定向页面并用post方法传递消息

    javascript中重定向页面得方法很多,同时能传递消息的也不少:但可用post方法传递的我只找到两种: 第一种方法:用document.write在 JavaScript函数中,用document ...

  10. 福州大学软件工程1816 | W班 第1次作业成绩排名

    1.作业地址 第一次作业--准备篇 2.作业要求 (1)回想一下你初入大学时对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的? 你认为过去两年中接触到的课程是否符合你对计算机专业的期待,为什 ...