shell管理脚本实验报告

合集下载

linux的shell脚本实验报告

linux的shell脚本实验报告

第二次实验内容一、实验名称:Linux下shell编程二、实验类型:设计三、实验目的:1.熟悉Linux的shell几种变量使用2.熟练掌握Linux的shell编程几种结构3.熟练掌握Linux下shell脚本的编写四、实验准备参考教材,课件第7章内容及笔记。

要求实验内容全部写到实验报告上(B5纸)。

五、实验内容1. 练习使用shell四种变量,参考课件例题。

用户自定义变量,环境变量,位置变量,特殊变量这四种变量类型的使用,书中有例题。

2. 调试课件所有shell脚本的例题。

3. 编写如下脚本:●编写脚本if1,测试其功能。

echo -n "word 1: "read word1echo -n "word 2: "read word2if test "$word1" = "$word2"thenecho "Match"fiecho "End of program."●编写脚本chkargs,测试其功能if test $# -eq 0thenecho "You must supply at least one argument."exit 1fiecho "Program running."●编写脚本if2,测试其功能if test $# -eq 0thenecho "You must supply at least one argument."exit 1fiif test -f "$1"thenecho "$1 is a regular file in the working directory"elseecho "$1 is NOT a regular file in the working directory"fi●编写脚本if3,测试其功能echo -n "word 1: "read word1echo -n "word 2: "read word2echo -n "word 3: "read word3if [ "$word1" = "$word2" -a "$word2" = "$word3" ]thenecho "Match: words 1, 2, & 3"elif [ "$word1" = "$word2" ]thenecho "Match: words 1 & 2"elif [ "$word1" = "$word3" ]thenecho "Match: words 1 & 3"elif [ "$word2" = "$word3" ]thenecho "Match: words 2 & 3"elseecho "No match"fi●编写smartzip 脚本,测试其功能#!/bin/bashftype=`file "$1"`case "$ftype" in"$1: Zip archive"*)unzip "$1" ;;"$1: gzip compressed"*)gunzip "$1" ;;"$1: bzip2 compressed"*)bunzip2 "$1" ;;*) echo "File $1 can not be uncompressed with smartzip";;esac●编写脚本dirfiles,测试其功能。

操作系统实验报告shell程序

操作系统实验报告shell程序
if(c == '\n') {
buf[i-1] = '\0';
return i;
}
}return i;
}
void init_environ()
{
int fd,n;
char buf[80];
if((fd = open("ysh_profile",O_RDONLY,660)) == -1) {
printf("init environ variable error!\n");
j++;
}
for(i = 0;i <= envhis.end;i++){
printf("%d\t%s\n",j,envhis.his_cmd[i]);
j++;
}
}
}
void cd_cmd(char * route)
{
if(route != NULL) {
if(chdir(route) < 0)
printf("cd;%s Error file or directory!\n",route);
strcpy(p -> state,input_cmd);
strcpy(p -> state,"running");
p -> link = NULL;
if(head == NULL) {
head = p;
end = p;
} else {
end -> link = p;
end = p;
}
}
void del_node(int sig,siginfo_t * sip)

shell系统实验报告

shell系统实验报告

shell系统实验报告《Shell系统实验报告》摘要:本实验通过对shell系统的学习和实践,对shell脚本编程进行了深入的研究和探讨。

通过实验,我们深入了解了shell系统的基本概念、语法和功能,并通过实际编程实践加深了对shell脚本的理解和掌握。

本实验报告将对实验过程、实验结果和实验感想进行详细的介绍和分析。

一、实验目的通过本次实验,我们的主要目的是深入了解shell系统的基本概念和语法,掌握shell脚本编程的基本方法和技巧,提高对Linux系统的操作和管理能力。

二、实验过程1. 学习shell系统的基本概念和语法规则;2. 编写简单的shell脚本,包括文件操作、流程控制、函数定义等;3. 运行和调试编写的shell脚本,检验脚本的正确性和可靠性;4. 分析实验结果,总结实验感想。

三、实验结果通过本次实验,我们深入了解了shell系统的基本概念和语法规则,掌握了shell 脚本编程的基本方法和技巧。

我们成功编写了一些简单的shell脚本,包括文件操作、流程控制、函数定义等,通过运行和调试这些脚本,我们验证了它们的正确性和可靠性。

实验结果表明,我们对shell系统有了更深入的认识和理解,对Linux系统的操作和管理能力得到了提高。

四、实验感想通过本次实验,我们对shell系统有了更深入的认识和理解,对Linux系统的操作和管理能力得到了提高。

我们深刻体会到了shell脚本编程的重要性和实用性,相信在今后的工作和学习中,我们会更加熟练地运用shell系统,提高工作效率和解决实际问题。

同时,我们也意识到了自己在shell系统方面的不足之处,今后需要进一步学习和实践,不断提高自己的技能水平。

综上所述,本次实验对我们的学习和成长都具有重要意义,我们将继续努力学习和提高自己,在shell系统和Linux系统方面取得更大的进步和成就。

实验十 Shell编程实验

实验十 Shell编程实验

实验10 Shell编程实验
1 实验目的
通过实验了解shell编程。

2 实验环境
VMware中已经安装好CentOS5.5版本。

3 实验原理
参见课件。

4 实验任务
完成shell简单程序设计。

5 实验步骤
1、编写一个shell脚本要求如下:
(1)脚本名字:autobak.sh
(2)脚本功能:实现目录和文件的备份,需要备份的目录(文件)由位置参数指出。

(3)备份后的文件存放在/backup目录下,备份文件名:原目录(文件).日期.bak
(4)备份成功与否都在/backup目录下生成一个日志文件记录,文件名:原目录(文件).日期.bak
2、编写一个shell脚本,要求如下:
(1)文件名:adduser.sh
(2)脚本功能:用循环为系统添加多个用户,添加的用户数量和用户名规则都由read 命令获得。

(3)用echo $passwd |/usr/bin/passwd –stdin $username可以为用户$username添加密码$passwd(非交互过程)。

3、设计一个shell程序计算n的阶乘。

要求:
(1)从命令行接收参数n。

(2)在程序开始后立即判断n的合法性,即是否有参数。

若有,是否为正整数?若非法,请给出错误提示。

(3)最后出计算的结果。

6 实验总结
略。

实验三 Shell脚本编程实验

实验三  Shell脚本编程实验

实验三 Shell脚本编程实验一、实验目的1.掌握Shell编程的基本方法2.了解Shell脚本的基础知识二、实验要求1.完成一个简单Shell程序的编写和执行过程;2.设计一个Shell程序,显示欢迎界面;3.使用until语句创建一个输入exit退出的Shell程序。

三、实验准备Shell是一个命令语言解释器,它拥有自己内建的Shell命令集,Shell也能被系统中其他应用程序调用。

用户在提示符下输入的命令都由Shell解释后传给Linux核心。

Shell的另一个重要特性是它自身就是一个解释型的程序设计语言。

Shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。

Shell 编程语言简单易学,任何在提示符中能键入的命令都能放到一个执行的Shell程序中。

Shell脚本的建立和执行Shell程序可以存放在文件中,这种被Shell解释执行的命令文件称为Shell脚本(Shellscript),也称做Shell文件或者Shell过程。

Shell脚本可以包含任意从键盘输入的UNIX命令。

1)·.Shell脚本的建立建立Shell脚本的方法同建立普通文本文件的方法相同,利用编辑器(如vi)进行程序录入和编辑加工。

例如,要建立一个名为ex1的Shell的脚本,可以在提示符后打入命令:$ vi ex12). 执行Shell脚本的方式执行Shell脚本的方式基本上有三种:(1)输入定向到Shell这种方式是用输入重定向方式让Shell从给定文件中读入命令行并进行相应处理。

其一般形式是:$ sh < 脚本名例如,$ sh < ex1(2)以脚本名作为Shell参数。

其一般形式是:$ sh 脚本名[参数] 例如,$ sh ex2 /usr/mengqc/usr/liuzhy(3)将Shell脚本改为有执行权限的文件,由正文编辑器(如vi)建立的Shell脚本,用户通常是不能直接执行的,需要利用命令chmod将它改为有执行权限。

Shell编程实验报告

Shell编程实验报告

南京信息工程大学实验(实习)报告【实验目的】1、了解和熟悉创建并使用脚本的步骤。

2、熟悉bash的控制结构。

3、学会简单的shell编程。

【实验内容】1、创建一个简单的列目录和日期的shell脚本并运行之。

步骤:⑴输入下列命令,创建一个新文件:cat >n ew_script⑵输入下列行:echo Your files are ”lsecho today is ”date按回车键将光标移到一个新行,按Ctrl+D键保存并退出。

⑶检查文件内容,确保它是正确的:cat n ew_script⑷运行月脚本,输入它的文件名:n ew_script该脚本不运行。

⑸输入下列命令,显示文件的权限:ls - l new _script权限表明该文件不是可执行。

要通过简单调用文件名来运行脚本,必须有权限。

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

chmod +x n ew_script⑺要查看新的权限,输入:ls - l现在拥有文件的读、写和执行权限。

⑻输入新脚本的名字以执行它:n ew_script所有输入到文件的命令都执行,并输出到屏幕上。

⑼如果接收到错误信息,比如:comma nd not found输入下列命令:./n ew_script该命令行通知shell到哪里寻找shell脚本new_script,即您的当前目录“.” 程序运行过程如下:一2、用Shell 语言编制一 Shell 程序,该程序在用户输入年、月之后,自动打印 数出该年该月的日历。

程序运行过程如下:[root (?rhl00 root 1H cat>timee echo M Please input tl )e month: read nitonth echo R Pl ease input tl )c ycai': M read yearcal $fnonth $year [root(3rh 100 root] H bash times PloatJR input thp month: 9 PlpaHR input, thp ypar: 2012 九片 2012 0 一二三回五六6 7 8 13 \A 15 20 21 22 27 23 29 root]H |3、编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个 单词相同则显示“ Match ”,并显示“ End of program ”,如果不同则显示“ End ofprogram ”。

LinuxShell脚本实验

LinuxShell脚本实验

学 号: 姓 名:
提交日期:
任课教师:
一、 实验题目
Shell脚本实验
1.编写脚本文件sum.sh,存放在/home/cauc/scripts目录下。脚本功能为:计算
从 1加到100的和并返回结果。
2.编写脚本文件Fibonacci.sh,存放在/home/cauc/scri希望老师能够讲更多的例子,并且出一些更典型的练习题,适当提高难度, 让我们可以从这些精选出的练习题中找到一个一个的知识点,并且得到拓宽的知识。
在编写程序之时我也要注意将知识融会贯通,比如在编写完后可以设置行号, 用:set nu 命令,这样可以清晰的看出结构,在出现错误时也可以很快找到错误处。同 时沿袭高级语言编写时的命令,可以使得脉络清晰。
Shell 命令可以用纯文本的形式来进行编写,利用编辑器 vi 进行程序录入和编辑加 工。并且运用解释器 bash shell 直接进行执行,不需要进行编译。
命令为 bash 脚本名 [参数] 或者为 sh 脚本名 [参数]。但是每次使用 bash 或者 sh 进行可能仍然觉得不够简便,像 C、C++语言中调用函数,源程序则使用其本身名 字,所以我也像直接用脚本名来在 shell 中直接执行。而若想直接用脚本名作为 shell 的命令行参数,需要将 shell 脚本的权限设置为可执行,用 chmod 命令将其设置为有 “执行”权限;随后,将该脚本所在的目录添加到命令搜索路径中 PATH=$PATH:[当前 目录],添加结束后就可以在 shell 命令提示符后直接输入脚本名来执行编写的程序了。
二、实验完成
1.编写脚本文件sum.sh,存放在/home/cauc/scripts目录下。脚本功能为:计
算从1加到100的和并返回结果。

实验一shell实验报告

实验一shell实验报告

实验1: SHELL编程实验目的熟悉linux常用命令,为以后的实验打下良好基础;熟悉vi编辑器的使用;了解Shell程序的语法规则,能编写简单的Shell程序。

实验内容1、使用常用的Linux命令,主要包括如下命令:date, mail, write, man, ls, cat, mv, grep, tail, head, cp, wc, pwd, who等;2、使用vi编辑器编辑文件,熟悉vi编辑器的各种操作模式和常用命令。

3、使用vi编辑器编写一段Shell程序,取名为mycal,实现与Linux中cal命令类似的功能,当输入:$mycal [月份名] 年时,屏幕输出指定的年月的月历。

例如:$mycal October 2009屏幕输出2009年10月的月历。

注:参数可以是英文或者是数字。

实验结果1、2、3、实验2:观察Linux的行为实验目的了解Linux proc文件系统;加深对Linux系统的理解;增强Linux系统管理知识。

实验内容在Linux中,proc文件系统提供了一套在用户态检查内核状态和系统特征的机制。

proc文件系统将进程的地址空间、系统的硬件信息、系统相关机制(中断、I/O)等内容全部设置为虚拟的Linux文件,为访问系统内核数据的操作提供接口。

1、以root登录系统,并进入/proc目录,键入ls命令,查看/proc下的内容,同时查看每个文件的读写权限。

2、根据/proc下的信息,回答:CPU的类型和型号、当前Linux版本、从启动到当前时刻所经过的时间、当前内存状态。

实验结果1、2、Cpu类型和型号:当前linux版本:启动时间:内存情况:。

LinuxShell脚本实验

LinuxShell脚本实验
在程序出错时要学会调试程序。bash –x 能够进行单步跟踪,将程序的错误找出。 而我们编写和调试的还是太少,所以我发现真的需要我们认真的去多多编写一些程 序,多多练习,发现自己的问题,解决自己的问题。
还有很多提示符和符号在编辑中的使用并不熟悉,有时还会再查书获取其用法, 因此我觉得我对书本和老师的课件掌握的还是不够熟悉,因此我认为自己应该熟悉熟 悉课本尤其是老师课件的内容,起码将老师讲授的全部掌握,然后在拓宽一下自己的 知识,对 Linux 有更深的理解和掌握。
为:求费波纳奇数列的前10项及总和。
二、实验完成
1.编写脚本文件sum.sh,存放在/home/cauc/scripts目录下。脚本功能为:计
算从1加到100的和并返回结果。
程序具体内容如下: #!/bin/bash #Get the sum of 1 to 100 sum=0 for((i=1;i<=100;i++)) do
sum=$(($sum+$i)) done echo “The total number is $sum.”
2.编写脚本文件Fibonacci.sh,存放在/home/cauc/scripts目录下。脚本功能
为:求费波纳奇数列的前10项及总和。
程序具体内容如下: #!/bin/bash #list the first ten numbers of Fibonacci an count them fun2() {
《Linux 操作系统》
实验报告
实验名称: 实验二:Shell 脚本实验
学 号: 姓 名:
提交日期:
任课教师:
一、 实验题目
Shell脚本实验
1.编写脚本文件sum.sh,存放在/home/cauc/scripts目录下。脚本功能为:计算

Shell编程实验报告

Shell编程实验报告

S h e l l编程实验报告 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】南京信息工程大学实验(实习)报告【实验目的】1、了解和熟悉创建并使用脚本的步骤。

2、熟悉bash的控制结构。

3、学会简单的shell编程。

【实验内容】1、创建一个简单的列目录和日期的shell 脚本并运行之。

步骤:⑴输入下列命令,创建一个新文件:cat >new_script⑵输入下列行:echo “Your files are”lsecho “today is”date按回车键将光标移到一个新行,按Ctrl+D键保存并退出。

⑶检查文件内容,确保它是正确的:cat new_script⑷运行脚本,输入它的文件名:new_script该脚本不运行。

⑸输入下列命令,显示文件的权限:ls –l new _script权限表明该文件不是可执行。

要通过简单调用文件名来运行脚本,必须有权限。

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

chmod +x new_script⑺要查看新的权限,输入:ls –l现在拥有文件的读、写和执行权限。

⑻输入新脚本的名字以执行它:new_script所有输入到文件的命令都执行,并输出到屏幕上。

⑼如果接收到错误信息,比如:command not found输入下列命令:./new_script该命令行通知shell到哪里寻找shell脚本new_script,即您的当前目录“.”。

程序运行过程如下:2、用Shell 语言编制一Shell 程序,该程序在用户输入年、月之后,自动打印数出该年该月的日历。

程序运行过程如下:3、编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同则显示“Match”,并显示“End of program”,如果不同则显示“End of program”。

程序运行过程如下:4、修改上述程序,编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同显示“Match”,不同则显示“Not match”,最后显示“End of program”。

Linux实验报告(实验四)shell编程实验

Linux实验报告(实验四)shell编程实验

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

二、实验注意事项实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。

要求每个同学登录后系统后,要在自己的家目录下创建一个属于自己的子目录(以自己(拼音)名字或学号)。

以后所有工作都要在自己的目录内进行。

建议以后的实验都在同台计算机上做,这样可以保持连续性。

三、实验内容1. 编写一个脚本,求斐波那契数列的前10项及总和。

num1=1num2=1echo -n “$num1+$num2”sum=2for((i=1;i<=8;i++))dotmp=$(expr $num1 + $num2)echo -n “+$tmp”((num1=num2))((num2=tmp))sum=$(expr $sum + $tmp)doneecho “=$sum”2.编写一个脚本,求一个数的逆序。

echo -n please input num:read numecho -n The num iswhile [ $num -gt 0 ]dosd=$(($num % 10))echo -n "$sd"num=$(($num/10))doneecho3.设计一个Shell程序,在用户主目录下建立一个userdata目录,在此目录下再建立5个目录,即user1~user5,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。

(注意:最后删除自己所建立的目录,恢复原样,以便后面同学做此实验)mkdir -m 754 /home/userdatai=1temp=/home/userdata/userwhile[ $i -le 5 ]domkdir -m 754 $temp$ilet”i=i+1”#done4.用Shell编程,判断一文件是不是普通文件,如果是将其拷贝到/home/student/test 目录下,用命令查看test目录内容,最后再删除test目录。

shell实验报告

shell实验报告

操作系统实验报告(shell命令解释器)目录1功能描述 (2)2主要数据结构 (2)3主要自定义函数功能及接口说明 (3)4主要功能实现方法和系统调用 (4)4.1重定向功能 (4)4.2多管道功能 (4)4.3命令的后台运行 (5)4.4历史命令 (6)4.5CD命令 (6)4.6其他简单命令 (6)4.7其他自定义命令 (6)5心得体会 (6)6源代码 (7)1功能描述(用红色标示的字体显示了本解释器完成的基本功能)本实验完成了一个shell命令解释器,实现了shell的解释命令功能,实现了重定向功能和多管道、后台运行等功能。

具体功能描述如下:1)解释器的命令格式为cmd1[<infileName][|cmd2][|cmd3]…[|cmdn][>or>>outfileName][&]2)cmdi为命令名+参数形式的命令,<为输入重定向,后跟输入重定向文件名infileName;>或>>后跟输出重定向文件名,输出内容将写入outfileName,>>表示以追加方式写入文件,>则表示以覆盖方式写入;3)实现了多管道4)命令结尾可加后台运行符号& ,表示此命令将以后台运行的方式执行5)实现了cd命令6)exit为退出命令7)history为历史命令,可以显示最近执行的命令,最多100条8)!i为执行历史命令,意为执行第i条历史命令。

!!为执行上一条命令。

9)’|’为管道符号,使用|符号隔开的若干条命令之间,前一条命令的输出是后一条命令的输入。

10)自定义命令myname,将输出此Shell的版本信息11)本解释器命令格式中的简单命令可为所有外部命令和一部分内部命令和自定义命令2主要数据结构本shell解释器实现手法上非常直观易懂,没有用到复杂的数据结构。

运行过程中大部分数据采用字符数组的形式存储。

其中定义了命令结构类型cmd,用以表示一条简单命令。

shell实验报告

shell实验报告

shell实验报告Shell实验报告一、实验目的本次实验旨在通过学习和实践Shell编程,掌握Shell脚本的基本语法和使用方法,提高对Linux系统的操作和管理能力。

二、实验环境本次实验使用的操作系统为Ubuntu 20.04 LTS,Shell编程语言为Bash。

三、实验内容1. Shell脚本的编写在实验开始前,我们首先需要了解Shell脚本的基本结构和语法。

Shell脚本是一种批处理脚本语言,它通过解释器执行,可以用来编写一系列的命令和程序,实现自动化的任务。

2. 变量和数据类型在Shell脚本中,我们可以定义变量来存储和操作数据。

变量可以是整数、字符串等不同的数据类型。

通过使用变量,我们可以方便地在脚本中引用和修改数据。

3. 控制流程控制流程是Shell脚本中非常重要的一部分,它可以用来控制程序的执行顺序和条件。

常见的控制流程语句包括if语句、for循环和while循环等。

通过合理使用控制流程,我们可以实现不同的逻辑和功能。

4. 输入输出Shell脚本可以通过读取用户的输入和输出结果来实现交互式的操作。

我们可以使用read命令来获取用户的输入,并通过echo命令来输出结果。

这样可以增加脚本的灵活性和可用性。

5. 函数和模块化函数是Shell脚本中的一种重要的代码组织方式,它可以将一段代码封装为一个独立的功能模块。

通过定义函数,我们可以提高代码的可读性和重用性。

6. 实际应用通过学习Shell脚本的基本语法和使用方法,我们可以将其应用于实际的系统管理和运维工作中。

比如,我们可以编写一个自动备份脚本,定期备份重要的文件和数据;或者编写一个自动化部署脚本,简化软件部署的流程。

四、实验心得通过本次实验,我对Shell脚本的编写和使用有了更深入的了解。

Shell脚本作为一种强大的工具,可以帮助我们简化繁琐的操作,提高工作效率。

同时,学习Shell脚本还可以培养我们的逻辑思维和编程能力。

在实验过程中,我发现Shell脚本的语法相对简单,上手较快。

操作系统实验报告_shell

操作系统实验报告_shell
li_cmd++;
k = 0;
j = 0;
}
if(j == 0){
continue;
} else{
buf[j++] = '\0';
if(flag == 0){
argv[li_cmd][k] = (char *)malloc(sizeof(char) * j);
strcpy(argv[li_cmd][k],buf);
int is_founded(char * cmd)
{
int k = 0;
while(envpath[k] != NULL){ strcpy(buf,envpath[k]);
strcat(buf,cmd);
if(access(buf,F_OK) == 0){ return 1;
} k++;
}
return 0;
if((input[i] == ' ') || (input[i] == '\t') || (input[i] == '\0') ||
(input[i] == '|') || (input[i] == '>') || (input[i] == '\n')){
if((input[i] == '|') || (input[i] == '>')){
while(s[i] != '\0'){ if(s[i] == ':') {
buff[j++] = '/';
buff[j] = '\0';

实验五 编程实现自己的shell操作系统实验报告

实验五 编程实现自己的shell操作系统实验报告

学年第学期操作系统课程实验报告学院:专业:班级:姓名:学号:任课教师:摘要shell 是一个命令处理器(command processor)——是一个读入并解释你输入的命令的程序,它是介于使用者和操作系统之核心程序(kernel)间的一个接口。

它是一个交互性命令解释器。

shell 独立于操作系统,这种设计让用户可以灵活选择适合自己的shell。

shell 让你在命令行键入命令,经过shell 解释后传送给操作系统(内核)执行。

Shell是一个管理进程和运行进程的程序。

有三个主要功能。

(1)运行程序:shell是一个程序启动器。

(2)管理输入和输出:shell将进程的输入和输出连接到一个文件或其他的进程。

(3)编程关键字:shell;解释器;程序;实验日期:2017年6月12日exit(1);default:while(wait(&exitstatus)!=pid);printf("child exited with status %d,%d\n",exitstatus>>8,exitstatus&0377);}}char *makestring(char *buf){char *cp,*malloc();buf[strlen(buf)-1]='\0';cp=malloc(strlen(buf)+1);if(cp==0){fprintf(stderr,"no memory\n");exit(1);}strcpy(cp,buf);return cp;}3.测试运行结果(1)分别执行psh1和psh2,执行过程中,输入ps命令写出两个程序运行的结果。

并分析区别和原因。

(2)在执行psh2过程中,输入./psh1和ps命令写程序运行的结果。

(1)实验结果分析:在psh1.c中,构造函数intexecute(){execvp(arglist[0],arglist); ;exit(1);}只执行一次,所以在输入ps后直接自动退出;在psh2.c中,构造函数int execute(char *arglist[]){ switch(){case -1: ; exit(1);case 0: execvp(arglist[0],arglist); exit(1);Default: }}运用switch函数,所以在输入ps后仍继续执行。

湖北汽车工业学院实验报告 实验二 shell 脚本实验

湖北汽车工业学院实验报告 实验二  shell 脚本实验

湖北汽车工业学院实验报告实验二 shell 脚本实验一、实验目的1、熟悉Linux提供的文本编辑器Vi的使用。

2、掌握shell脚本的建立和执行方式。

3、掌握bash的基本语法。

4、学会编写shell脚本。

二、实验内容1.编写Shell脚本文件,该文件的功能:从键盘输入年月,然后自动显示该年份下该月的日历,然后再显示系统当前的日期和时间。

要求用2种不同方式执行该脚本。

(2分)参考程序:$vi mycal(进入vi环境输入下列脚本程序)echo “Please input year:”read year #从键盘读入年份给year变量echo “Please input month:”read month #从键盘读入月份给month变量cal $month $yeardate:wq!回车(保存文件并退出vi)执行脚本方法:方法一:以脚本名作为bash参数(格式:$bash 脚本名 [参数])$bash mycal 回车#斜体部分是输入命令,$是终端提示符显示:方法二:将shell脚本的权限设置为可执行,然后在提示符下直接执行。

(用chmod命令)$chmod a+x mycal#把mycal设置为对所有用户都有“执行”权限。

$PATH=$PATH:. #将脚本所在的目录添加到命令搜索路径(PATH)中。

$mycal #输入脚本名直接执行该脚本操作和结果截屏:注:cal 命令显示公园1~9999年中任意一年或任意一个月的日历。

如果不带任何参数,则显示当前月份的日历。

如果只有一个参数,则该参数被解释为年份。

当有两个参数时,则第一个参数表示月份,第二个参数表示年份。

两个参数之间应留有空格。

年份要使用完整形式,如2006,不能写成06。

2、编写Shell脚本文件,要求从命令行接收数值参数,并计算这些参数的和。

(1分)参考程序:$vim sy3_2(进入vim环境输入下列脚本程序)x=0 #累加器变量清零for y in $* #变量依次取位置参数值,然后执行循环体中的命令表,至位置参数取完为止。

shell管理脚本实验报告

shell管理脚本实验报告

shell管理脚本实验报告
Shell环境的切换:
/etc/shell文件记录了系统支持的有效登陆Shell:
修改用户的Shell环境:/etc/passwd
Bash 的启动脚本为(在用户的家目录下):
Shell命令使用:
历史记录默认保存1000条,在/etc/profile 文件中history –c 删除全部历史记录,但下次开机还会存在
彻底删除历史记录:
(1)删除配置文件。

bash__history
(2)再使用history –c删除全部的历史记录
未删除前:
删除配置文件。

bash__history
使用history –c删除全部的历史记录后:
重定向:
输出重定向:
#find /tmp/a.txt > b.txt 将a中查看到的内容重定向到b中(覆盖)
#find /tmp/a.txt >> b.txt 将a中查看到的内容重定向到b中(追加)
$find /etc –name passwd 2> b。

txt 将得到的错误信息重定向到b中(覆盖)
$fnd /etc –name passwd 2>>b。

txt 将得到的错误信息重定向到b中(追加)
$fnd /etc –name passwd 2> /dev/null 将得到的错误信息重定向到无底洞中
$fnd /etc –name passwd >a.txt 2>b.txt 将得到的正确信息重定向到a中,错误信息重定向
到b中
管道:
cmd1 | cmd2 shell脚本:。

试验报告六SHELL编程

试验报告六SHELL编程

实验六SHELL编程实验环境:Linux操作系统实验目的:(1)掌握vi的三种工作方式,熟悉vi编辑程序的使用。

(2)学习Shell程序设计方法。

掌握编程要领。

实验内容:1.用Vi编写例1。

练习内部变量和位置参数的用法。

用chmod将文件的权限设置为可执行模式,并在提示符后键入命令行: $./prog1.或$sh prog1.屏幕显示:Name not provided实验截图:echo *rat provided echo *rour name is •枇h 匕tu^p亡L ~]4 wi m簞progl.h[stu^pci sh mypcogl.[stu^pcl. -■]! sh wprogi^hNdine not provided(stu^pcl T$ ・/niwprQgX.h Theodore bf»qh; /ra^prog] , h: Me file or fdi rectory[乳喀亡].sh mypragi,h TheodoreYour name is Theodore(stu^pcl -]$ |2.进一步修改程序progl.h[stu@pcl *]s vi m/progl.h[5tu@pcl -]$ ./nyprogl.hYour shell program name 15,/^YP roq 1 r h[stuGlpcl T$ ./myprogl.h H NO KOYour parairieter nunb-er is 3[stu@pcl -]S |3•修改例1程序。

用read命令接受键盘输入。

若没有输入显示第一种提示,否则第二种提示。

di^frlay p ramread chif [ -2 S<h ]then要求显示参数个数、程序名字,并逐个显示参数elfi4.用vi编写例2、例3练习字符串比较运算符、数据比较运算符和文件运算符的用法,观察运行结果。

例2:^atririgl - "TTlie First one-1^string? » "The Second one*[st ring 1 ■=■ strings ]thenecho ■strina丄equa L to strLino2welse<*chc 1 not o img?"fli f f 五七ri ng 1 ]thenecho "atring丄is not empt/"else■r电hui ^slring3 1( t-npty*fl0T | -n st ring?]t henecho "string^ has. a Length g re ate than zero* elseecho ring2 has a length equial to zero**(ETugpcl -]$ vi co®pare[stu^pc 1 *H vi coaipdre.ti(sTu^pci &h co«ipare.h stingl not equal o string?stringl is ncl eupty strings lias 启length gre^te than zero例3:t -d <ppdir ]Lhehecho H cppdir i% directory*pchn " c ppd L r 1 no t H <!i rpc tor/"n(十 filea IthenecM 'filoa B rc^ul^rels*?'ecrw "tllea not a regular fils'*r丄t -r filea |the”echo '"fh住金read pemj_^£iDn$"el s*rcbK " filca du亡、noL fcdd pri IUIK'fi[w filea ]rhpnecrw " hds wilLe terni丄s士丄uiif住I 5 H看uhto H filco not wrl七乜pcmii^i^nc14fiIT[ -x cppdir |thenech-G H cpMdu h<i> eAemte pen rvl^^ic!n Mech« M cippdi r dl&es not have execute perwis&i OF ri运行结果:cppdir 15 not a directory filea is not a regular file filea does net r-ead permissione filefl does net write pernissi口rw cppdir does not have execute pernBsLoii5•修改例2程序。

操作系统原理实验6-实现一个简单的Shell

操作系统原理实验6-实现一个简单的Shell
3)设计银行家算法相关的数据结构;
4)动态进行资源申请、分配、安全性检测并给出分配结果。
三、实验内容与步骤
计数资源数
对象初始化
UI设计
判断系统是否处于安全状态
进程检查请求
测试打印序列
四、实验结果与数据处理
五、分析与讨论
》实验报告
实验序号:6实验项目名称:实现一个简单的Shell
学 号
姓 名
专业、班
20网工
实验地点
指导教师
实验时间
2022-11-19
一、实验目的及要求
1)理解死锁避免相关内容;
2)掌握银行家算法主要流程;
3)掌握安全性检查流程。
二、实验设备(环境)及要求
1)设计多个资源(≥3);
2)设计多个进程(≥3);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

shell管理脚本实验报告
Shell环境的切换:
/etc/shell文件记录了系统支持的有效登陆Shell:
修改用户的Shell环境:/etc/passwd
Bash 的启动脚本为(在用户的家目录下):
Shell命令使用:
历史记录默认保存1000条,在/etc/profile 文件中history –c 删除全部历史记录,但下次开机还会存在
彻底删除历史记录:
(1)删除配置文件。

bash__history
(2)再使用history –c删除全部的历史记录
未删除前:
删除配置文件。

bash__history
使用history –c删除全部的历史记录后:
重定向:
输出重定向:
#find /tmp/a.txt > b.txt 将a中查看到的内容重定向到b中(覆盖)
#find /tmp/a.txt >> b.txt 将a中查看到的内容重定向到b中(追加)
$find /etc –name passwd 2> b。

txt 将得到的错误信息重定向到b中(覆盖)
$fnd /etc –name passwd 2>>b。

txt 将得到的错误信息重定向到b中(追加)
$fnd /etc –name passwd 2> /dev/null 将得到的错误信息重定向到无底洞中
$fnd /etc –name passwd >a.txt 2>b.txt 将得到的正确信息重定向到a中,错误信息重定向
到b中
管道:
cmd1 | cmd2 shell脚本:。

相关文档
最新文档