Linux的Shell练习--个人笔记
一、 实验准备(预防抄袭,此步必做)
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练习--个人笔记的更多相关文章
- Linux shell 菜鸟学习笔记....
20171123 Linux shell 基础学习笔记1. shell 的开始 一般是 #!/bin/bash 通过 #! 来唯一指定使用的shell路径 其他的 # 都表示注释.2. shell 的 ...
- 《The Linux Command Line》 读书笔记02 关于命令的命令
<The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is inter ...
- 《The Linux Command Line》 读书笔记01 基本命令介绍
<The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...
- loadrunner调用plink,远程linux执行shell命令
loadrunner调用plink,远程linux执行shell命令 脚本: Action() { char* cmd; cmd = lr_eval_string("C:\\\&qu ...
- Linux及Arm-Linux程序开发笔记(零基础入门篇)
Linux及Arm-Linux程序开发笔记(零基础入门篇) 作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/bee ...
- Linux——帮助命令简单学习笔记
Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信 ...
- Linux操作系统及应用课程笔记 索引
第0部分 软件的安装与配置 Linux下软件的安装与配置 第1部分* 绪论 第2部分* Linux的安装过程 第3部分 系统Shell和经常使用命令 Shell文件相关经常使用命令及參数总 ...
- Linux内核设计与实现笔记_1_基本概念
Linux内核设计与实现笔记_1_基本概念 操作系统 系统这个词包含了操作系统和所有运行在它上面的应用程序.操作系统是指在整个系统中负责完成分最基本功能和系统管理的那些部分,这些部分应该包括: 内核, ...
- 【Linux开发】Linux及Arm-Linux程序开发笔记(零基础入门篇)
Linux及Arm-Linux程序开发笔记(零基础入门篇) 作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer ...
随机推荐
- (1)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- 什么是微服务架构,.netCore微服务选型
开发工具:VS2017 .Net Core 2.1 什么是微服务?单体结构: 缺点: 1)只能采用同一种技术,很难用不同的语言或者语言不同版本开发不同模块: 2)系统耦合性强,一旦其中一个模块有问题, ...
- Docker 最佳入门
https://www.cnblogs.com/lanxiaoke/p/10432631.html https://www.cnblogs.com/viter/p/10463907.html http ...
- flink1.7 checkpoint源码分析
初始化state类 //org.apache.flink.streaming.runtime.tasks.StreamTask#initializeState initializeState(); p ...
- Redux与它的中间件:redux-thunk,redux-actions,redux-promise,redux-saga
序言 这里要讲的就是一个Redux在React中的应用问题,讲一讲Redux,react-redux,redux-thunk,redux-actions,redux-promise,redux-sag ...
- Log4.Net 在Winform、MVC、ashx程序里的使用,ashx程序里使用异步
最近做一个双11活动的,是一套相关的H5页面.本来以为难度不大,但是做下来几天还是遇到些问题.就总结一下吧,还是有收获的. 1.在H5页面中,有一个遮罩层,还是挺有意思的.直接用div+css控制遮罩 ...
- 使用matplotlib画饼图
import matplotlib.pyplot as pltx = [4, 9, 21, 55, 30, 18]labels = ['math', 'history', 'chemistry', ' ...
- npm5踩过的坑!
1. 版本问题导致环境问题 我们第一次npm install时是根据package.json来安装相关依赖的,但是它里面的版本不固定,因此默认会根据最高的版本来安装相关依赖,但是在npm5是根据pac ...
- 安装sqlprompt
特别说明:注册机会报毒,安装前请先关闭杀毒软件!下载好附件之后解压,打开SQLPrompt_7.2.0.241.exe按照提示安装完成.安装完成后断网!打开数据库,会在菜单栏中看到SQL Prompt ...
- 名称空间2.0path
Django 1点几跟2点几的区别 2.0path 是什么路径就是什么路径.第一个参数不再是正则表达式. 转换器 path的分组 <int:year> 匹配正整数 <str:year ...
- RocketMQ消息队列安装
一.官方安装文档 http://rocketmq.apache.org/docs/quick-start/ 下载地址 https://github.com/apache/rocketmq/releas ...