一、实验目的:

(1)了解Shell的作用和主要分类

(2)练习编写简单的Shell程序

二、实验准备

(1)了解远程登录的概念,以及远程登录软件putty。

(2)了解Linux shell编程的基本概念。

(3)掌握shell编程的基本步骤。

三、实验过程

(1)创建一个简单的列目录和日期的shell脚本并运行。

步骤:

①输入下列命令,创建一个新文件:

$ cat >new_file

②输入下列行:

echo “Your files are”

ls

echo “today is”date

按回车键将光标移到一个新行,按Ctrl+D键保存并退出。

③检查文件内容,确保它是正确的:

$cat new_file

④运行脚本,输入它的文件名:

$. /new_script 该脚本不运行

⑤输入下列命令,显示文件的权限:

ls –l new _file 权限表明该文件不是可执行。要通过简单调用文件名来运行脚本,必须有权限。

⑥输入下列命令,使new_file变成可执行文件。

chmod a+x new_file

⑦要查看新的权限,输入:

$ls –l 现在拥有文件的读、写和执行权限。

⑧输入新脚本的名字以执行它:

$. /new_file

所有输入到文件的命令都执行,并输出到屏幕上。(也可以用vi创建新文件,用:wq命令退出)

(2)编写Shell程序,该程序在用户输入年、月之后,自动打印输出该年该月的日历。

用 vi times  或 cat> times 命令均可

echo "please input the month:" read month

echo "please input the year:"

read year

cal $month $year

$ bash times  (试试用此命令执行脚本)

(3)命令执行控制符练习

①命令顺序执行用法:

$ cd ..;pwd;ls

②命令替换符的用法:

$ echo Today is `date  ‘+%A’`

③条件执行命令用法:用 vi 命令建立两个文件 file1 和 file2,然后执行下列文件,

将文件 file1 复制到 file2,如果成功则删除 file1

$ cp file1 file2 && rm file1

④后台执行命令用法:在后台顺序执行两命令,20 秒后跳出提示信息“Tea is ready”

$ ( sleep 20; echo Tea is ready ) &

⑤命令组合符用法:将两命令的输出送到 mydoc,mydoc 的第1行是 Report,后面是file3 的内容:

$ ( echo Report; cat file3 ) > mydoc

(4)元字符的引用

(1)$ echo “* is a wildcard.” #消除*字符的特殊含义

(2)$ echo ‘The prompter is  “$”’  #消除双引号字符的特殊含义

(3)$ echo “Don’t do that!”       #消除单引号字符的特殊含义

(4)$ echo “Name ID   Age Class” #消除空格符的特殊含义

(5)编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同则显示“Match”,并显示“End of program”,如果不同则显示“End of

program”      (先用 vi 或 cat>命令建立脚本)

echo -n "word1:"

read word1

echo -n "word2:"

 read word2

if test "$word1" = "$word2" then

echo "Match"

fi

echo "End of program."

(6)修改上述程序,编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同显示“Match”,不同则显示“Not match”,最后显示“End of  program”。<编程提示>请使用if ⋯ then ⋯ else  控制结构。

(7)简单 for 循环(先用 vi 或 cat>命令建立脚本)

for day in Monday Wednesday Friday Sunday

do

echo $day

Done

(8)创建一个shell 脚本,该程序能接收用户从键盘输入的100个整数,然后求出其总和、最大值及最小值。

参考程序:

#!/bin/sh

read max

min=$max

sum=$max

i=1

while [$i –lt 100]

do

read  x

sum=`expr $sum + $x`

if [ $max –lt  $x ]

then

max=$x

fi

if [ $ x –lt  $min ]

then

min=$x

fi

i=`expr $i + 1`

done

2.问题解答

1、shell程序的第一行的语句#!/bin/sh有什么作用?

指定你运行脚本的shell类型,是bash,ksh还是其它

2、shell编程里面的循环结构有哪几种,对应的形式是怎样的?

第一种:

for var in 单次表

do

命令行

done

第二种:

while 命令或表达式

do

命令表

done

3、shell中test命令常用的表达式有哪些?

检查文件和比较值

test –n 字符串

test 整数1 –eq 整数2

test  File1 –ef  File2

test –z 字符串

4、什么是退出状态,在shell编程中,退出状态的作用是什么?

每一条 Shell 命令,不管是 Bash 内置命令(例如 cd、echo),还是外部的  Linux 命令(例如 ls、awk),还是自定义的 Shell 函数,当它退出(运行结束)时,都会返回一个比较小的整数值给调用(使用)它的程序,这就是命令的退出状态(exit statu)。

5、shell编程中,如遇到shell的特殊字符,怎么办?为什么这么做?请列举几个这样的特殊字符。

1、$ 美元符

2、\ 反斜杠

3、` 反引号

4、" 双引号

四、实验总结

(1)Linux 一般作为服务器使用,而服务器一般放在机房,你不可能在机房操作你的 Linux 服务器。这时我们就需要远程登录到Linux服务器来管理维护系统。

Linux 系统中是通过 ssh 服务实现的远程登录功能,默认 ssh 服务端口号为 22。

Window 系统上 Linux 远程登录客户端有 SecureCRT, Putty, SSH Secure Shell 等,本文以 Putty 为例来登录远程服务器。

(2)yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

Linux课程--实验四 shell 编程相关推荐

  1. linux 程序实验总结,Linux实验报告(实验四) shell编程实验

    实验四 shell编程实验(二) 班级:姓名:学号:上机时间:年月日 任课教师:实验教师:实验成绩: 一.实验目的 综合Linux常用命令和vi编辑器的使用,熟练掌握shell脚本编程. 二.实验注意 ...

  2. linux系统shell讲解实验报告,《操作系统》课程实验报告 SHELL编程.doc

    华南理工大学 <操作系统 SHELL编程 姓名: 余柳红 学号: 201330571011 班级: 13信息安全班 合作者: 无 指导教师: 贺小箭 实验概述[实验目的及要求] 实验目的: 熟悉 ...

  3. 实验四 Shell编程

    一.实验目的 1.掌握shell环境变量.管道.输入输出重定向使用方法: 2.掌握shell脚本建立和执行方法: 3.掌握shell脚本的基本结构: 4.掌握基本的shell编程方法. 二.实验环境: ...

  4. linux分支结构,实验四 Shell脚本中的分支结构

    实验四 Shell脚本中的分支结构 #实验内容: ###一.if分支结构 •if结构是最基本的分支结构类型. •使用if结构时,只有满足某个条件才会执行某些语句,而在不满足此条件的情况下执行其他语句. ...

  5. Linux课程---7、shell技巧(获取帮助命令)

    Linux课程---7.shell技巧(获取帮助命令) 一.总结 一句话总结: ls --help:简单手册 man ls:内容手册 1.tab补全? 命令+tab:加快敲命令敲文件目录的速度,多敲几 ...

  6. Linux知识点回顾之shell编程

    Linux知识点回顾之shell编程 shell编程 1 基本介绍 1.1 Shell 脚本 1.2 Shell 环境 1.3 第一个shell编程 1.4 运行 Shell 脚本有两种方法: 1.5 ...

  7. MOOS-ivp 实验四 MOOS编程入门(2)MOOS类讲解

    MOOS-ivp 实验四 MOOS编程入门(2)MOOSapp类讲解 文章目录 MOOS-ivp 实验四 MOOS编程入门(2)MOOSapp类讲解 前言 一.MOOSapp父类的结构和方法 1.使用 ...

  8. MOOS-ivp 实验四 MOOS编程入门(1)

    MOOS-ivp 实验四 MOOS编程入门(1) 文章目录 MOOS-ivp 实验四 MOOS编程入门(1) 前言 一.MOOS概览 1.MOSS应用程序结构 2.定义在MOOSmsg上的便携函数(h ...

  9. C#面向对象程序设计课程实验四:实验名称:C#面向对象程序设计基础

    C#面向对象程序设计课程实验四:实验名称:C#面向对象程序设计基础 实验内容:C#面向对象程序设计基础 一.实验目的 二.实验环境 三.实验内容与步骤 3.1.1.实验内容 3.1.2.实验步骤 3. ...

  10. linux操作系统中的shell编程----基于头歌实践教学编写shell脚本测试结果

    一.前言 今天,又要使用我的大学技能-写实验报告.linux操作系统课程实验课到了尾声,这是最后一次linux操作系统实验报告,我喜极而泣. 行了,废话不多说,我直接开始肝!!本实验是基于基于头歌实践 ...

最新文章

  1. 继Facebook开源PyTorch3D后,谷歌开源TensorFlow 3D场景理解库
  2. Maven学习——安装与修改Maven的本地仓库路径
  3. python cv2.imencode()(将图像编码到内存缓冲区中。)(图像压缩原理)
  4. CentOS下安装Hbase
  5. 《实战突击.php项目开发案例整合》.(明日科技).[PDF]ckook
  6. python怎样编写定时程序_Python如何实现定时器功能
  7. 一个Linux下C线程池的实现(转)
  8. [react] React中怎么检验props?
  9. 生成静态页面的五种方案 收藏
  10. CCNA笔记:Access Lists
  11. php字符型和数字型的注入,Sql注入的分类:数字型+字符型
  12. SAS基础练习(一)
  13. 【原创】Kakfa log包源代码分析(一)
  14. python中from的用法_Python import用法以及与from...import的区别
  15. 信息学奥赛一本通题解
  16. ps制作哈7海报字体
  17. 大众点评 java_大众点评评分爬取-图文识别ORC
  18. 谷歌地球 Google Earth v7.3.2.5495 专业版
  19. Native Instruments Maschine 2 v2.14.7 WiN-MAC 节奏音乐制作软件含拓展
  20. pci-e服务器显卡性能,PCI-E带宽揭密 显卡究竟能吃多大的带宽

热门文章

  1. 小米手机 VS 阿里手机,阿里输在512MB内存,华为Honor只有电池容量跟小米差不多...
  2. 【基金学习】小白基金学习记录-从入门到实践(一)
  3. 74HC573锁存器的原理和使用
  4. 同时定位与地图创建综述
  5. android 矢量粒子动画,Android碎裂的粒子效果
  6. 水晶易表 oracle,水晶易表和水晶报表的区别
  7. excel工具栏隐藏了怎么办_Excel的可视化伴侣—水晶易表
  8. 一张图回顾Hadoop十年 Hadoop老矣,尚能饭否
  9. PROXMOX VE备份还原
  10. 我们真的需要复杂的密码吗?