当前位置:文档之家› Linux实验四

Linux实验四

Linux实验四
Linux实验四

实验四shell 及其程序设计

实验目的

1. 理解shell 操作环境

2. 掌握shell 程序编写方法

二、实验内容

1. 练习、理解下面命令

Alias 答:别名命令,显示所有的别名信息。alias ld= '- ldls. '

答:使用别名命令,添加别名信息。history 20 答:显示最近输入系统的20 条命令!!执行上一次输入的命令var1= ”abcd1234 ”答:将var1 变量赋值echo ${var1:3:4} 答:显示var1[3]-var1[3+4] 的字符echo $HOME 答:显示当前用户主目录的路径信息var2=$HOME 答:将当前用户主目录的路径信息赋给var2 变量echo ”我的主目录是$var2 ”答:双引号下可以进行字符替换,将var2 变量替换为当前用户主目录的信息set —

答:显示系统环境各配置的状态

ls *sh 答:显示当前目录下以“sh ”结尾的文件名称arr1=(long live chair mao) 答:给arr1 数组变量赋值echo ${arr1[1]} 答:显示数组arr1 中下标为 1 的字符串

arr2=('date')

答:将date 命令显示的结果赋给数组变量arr2

echo ${arr2[3]} 答:显示数组变量arr2 中下标为 3 的字符串

[ $? -eq 0 ] || echo

答:”上面命令执行失败。”判断上条命令是否操作失败,若是,则显示“上面命令执行失败”

{ date;pwd;tty;stty; } 答:分步执行四条命令:显示当前日期信息;显示当前操作的目录;显示当前终端设备

的名称;显示当前终端的设置;

2. 编写shell 程序

1) 文件名adds.sh ,实现多个数值相加; (提示:多个数值通过参数提供)

#!/bin/bash

#多个数相加

s=0

for i in $*

do

let s=s+i

done

echo $s

exit 0

2) 文件名cleardirs.sh ,删除指定目录下的文件和子目录;

#!/bin/bash

# 删除指定目录下的文件和子目录

if [ -d $1 ]

then

cd $1 rm -r *

else

echo “$1 目录不存在!”

fi

exit 0

3) 文件名clearfiles.sh ,删除指定目录下的文件及其子目录下的文

提示:件;使用find 命令查找目录下文件)

#!/bin/bash

# 删除指定目录下的文件和子目录下的文件

if [ -d $1 ]

then

rm -f ‘find $1 -type f '

else

echo “$1 目录不存在!”

fi

linux实验报告

实验一 实验名称:Linux 基本命令的使用 实验时间:2学时 实验目的:熟练使用Linux字符界面、窗口系统的常用命令。 实验内容 (一)Linux操作基础 1.重新启动linux或关机(poweroff,shutdown,reboot,init 0,init 6) 2.显示系统信息(uname),显示系统日期与时间,查看2014年日历(date,cal) ①uname:查看系统与内核相关信息 uname -asrmpi 参数: -a :所有系统相关的信息; -s: 系统内核名称; -r: 内核的版本; -m:本系统的硬件名称,如i686或x86_64; -p: CPU的类型,与-m类似,只是显示的是CPU的类型; -i :硬件的平台(ix86). ②date:显示日期的命令 ③cal:显示日历 单独cal:列出当前月份的日历 cal 2014:列出2014年的日历 cal 5 2014:列出2014年五月的目录 3.使用帮助命令(man,help) ①man:是manual(操作说明)的简写,是在线帮助系统 man后跟某个命令就会详细说明此命令,例如:man man就会详细说明man 这个命令的用法; ②help:也是帮助命令,一般会在命令后,例如:cd --help 就会列出cd命令的使用说明。 4.查看当前登陆用户列表(who),显示当前用户(whoami) ①who:显示目前已登录在系统上面的用户信息; ②whoami:查询当前系统账户 5.建立一个新用户mytest,设定密码(useradd,passwd) ①useradd mytest(建立新用户mytest);

LINUX实验报告

实验报告 ( 2014/ 2015 学年第一学期) 课程名称操作系统A 实验名称文件系统 实验时间2014 年12 月8 日指导单位计算机学院计算机科学与技术系 指导教师徐鹤 学生姓名王生荣班级学号B12040809 学院(系) 计算机学院专业软件工程

实验名称文件系统指导教师徐鹤 实验类型设计实验学时 2 实验时间2014.12.08 一、实验目的和要求 1. 学习LINUX系统下对文件进行操作的各种命令和图形化界面的使用方法。 2. 深入学习和掌握文件管理系统的基本原理和LINUX等操作系统下常用的系统调用,编写一个使用系统调用的例程。 3.实现一个文本文件的某信息的插入和删除 4.实现一个记录文件的某记录的插入和删除 二、实验环境(实验设备) Windows XP + VMWare + RedHat Linux 8

三、实验过程描述与结果分析 1. 目录/proc下与系统相关的文件和目录 (1) /proc/$pid/fd:这是一个目录,该进程($PID号码进程)每个打开的文件在该目录下有一个对应的文件。 例如:#ls /proc/851/fd 0 1 2 255 这表示,851号进程目前正在使用(已经打开的)文件有4个,它们的描述符分别是0、1、2、255。其中,0、1、2 依次分别是进程的标准输入、标准输出和标准错误输出设备。 (2)/proc/filesystems:该文件记录了可用的文件系统类型。 (3)/proc/mounts:该记录了当前被安装的文件系统信息 例如:#cat /proc/mount (4)/proc/$pid/maps:该文件记录了进程的映射内存区信息。 例如:#cat /proc/851/maps 2.常用命令讲解 ls 命令 用来查看用户有执行权限的任意目录中的文件列表,该命令有许多有趣的选项。例如: $ ls -liah * 22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile

浙江大学Linux程序设计实验报告

Linux程序设计实验报告1 ——操作系统基本命令使用 一、实验目的 1.通过对Emacs、vi、vim、gedit文本编辑器的使用,掌握在Linux环境下文本文件的编辑方法; 2.通过对常用命令mkdir、cp、cd、ls、mv、chmod、rm等文件命令的操作,掌握Linux操作系统中文件命令的用法。 二、实验任务与要求 1.emacs的使用,要求能新建、编辑、保存一个文本文件 2.vi或vim的使用,要求能新建、编辑、保存一个文本文件 3.gedit的使用,要求能新建、编辑、保存一个文本文件 4.掌握mkdir、cd命令的操作,要求能建立目录、进入与退出目录 5.掌握cp、ls、mv、chmod、rm命令的操作,要求能拷贝文件、新建文件、查看文件、文件重命名、删除文件等操作。 三、实验工具与准备 计算机PC机,Linux Redhat Fedora Core6操作系统 四、实验步骤与操作指导 任务1.学习emacs的使用,要求能新建、编辑、保存一个文本文件 (1)启动emacs (2)输入以下C程序 (3)保存文件为kk.c (4)用emacs打开文件kk.c (5)修改程序 (6)另存为文件aa.txt并退出。 任务2.vi或vim的使用,要求能新建、编辑、保存一个文本文件 (1)点击”应用程序”→ “附件”→“终端”,打开终端,在终端输入命令: [root@localhost root]#vi kk.c 按i键,进入插入状态。 (2)输入以下C程序 #include int main( ) {

printf(“Hello world!\n”); return 0; } 此时可以用Backspace、→、←、↑、↓键编辑文本。 (3)保存文件为kk.c 按Esc键,进入最后行状态,在最后行状态输入:wq保存文件,退出vi。 (4)用vi打开文件kk.c,输入命令: [root@localhost root]#vi kk.c (5)修改程序为: #include int main( ) { printf(" Hello world!\n"); printf("*****************\n"); return 0; } (6)按Esc键,进入最后行状态,在最后行状态输入:wq aa.txt保存文件,如图1所示,另存为文件aa.txt并退出vi。。 图1 程序编辑环境 任务3.gedit的使用,要求能新建、编辑、保存一个文本文件 (1)启动gedit,点击”应用程序”→ “附件”→“文本编辑器”,打开文本编辑器,如图所示。

Linux实验项目四--shell编程

实验项目四shell编程 一、实验目的 (1)了解shell的作用和主要分类; (2)掌握bash的建立和执行方式; (3)掌握bash的基本语法; (4)学会编写shell脚本。 二、实验内容 (1)shell脚本的建立和执行; (2)历史命令和别名定义; (3)shell变量和位置参数、环境变量; (4)bash的特殊字符; (5)一般控制结构; (6)算术运算及bash函数。 三.实验软件 VMWare Workstation 5.0; Red hat linux 9.0; 四.实验主要步骤 1、利用vi建立一个脚本文件,其中包括date,cal,pwd,ls等常用命令。然后以不同方式执行脚本。 2、运行history命令,配置历史命令环境。 3、体会bash的命令补齐功能。 4、用alias定义别名,然后执行。 5、编辑如下脚本进行执行: 6、编写一个shell脚本,求斐波那契数列的前10项及总和。 7、设计一个程序cuts,它由标准输入读取数据,获取由第一个参数n和第二个参数m所限定范围的数据,n和m都是整数,即从输入的字符串中抽取第n个字符至第m个字符之间的所有字符(包括这两个字符)。例如: $cuts 11 14 tis is a test of cuts program (输入) tst(显示结果

五.实验结果 1、利用vi建立一个脚本文件,其中包括date,cal,pwd,ls等常用命令。然后以不同方式执行脚本。 2、运行history命令,配置历史命令环境。 3、体会bash的命令补齐功能。 双击tab键,能列出所有符合条件的结果,只有唯一结果时单击可补全。 4、用alias定义别 名,然后执行。 5、编辑如下脚本进行执行:

2《Linux基础》实验报告 基本配置Linux

实验序号: 2 《Linux基础》 实验报告 实验名称:基本配置Linux操作系统 姓名: 学院:计算机学院 专业: 班级: 学号: 指导教师: 实验地址:N6-113 实验日期:2017.3.7

说明 一.排版要求 1.实验报告“文件名”按模板要求填写。 2.一级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,四号字体,加粗。 3.二级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,小四号字体,加粗。 4.三级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,五号字体。 5.正文:每段缩进量:2个汉字。两端对齐;汉字用宋体,阿拉伯数字用 Times New Roman字体,五号字体。 6.图形要求 (1)在正文中要有引用。 (2)要有图名,图名位于图的下方,汉字用宋体,阿拉伯数字用Times New Roman字体,五号字体。 (3)图和图名“居中”。 7.表格要求 (1)在正文中要有引用。 (2)要有表名,表名位于表的上方,汉字用宋体,阿拉伯数字用Times New Roman字体,五号字体。 (3)表和表名“居中”。 二.注意事项 1.复制、拷贝、抄袭者取消成绩。 2.没有安实验报告排版要求者不及格。

实验2基本配置Linux操作系统实验 【实验目的】 1.。。。。 2.。。。。 3.。。。。 4.思考: (1)Linux默认的系统超级管理员帐户是什么? (2)Linux的操作系统引导器是什么?它有哪几种的操作界面? (3)RHEL的支持哪几种X-Window图形管理器?默认是使用哪一种?(4)RHEL支持哪几种Shell?默认是使用哪一种? 【实验原理】 1.。。。 。。。 2.。。。 。。。 (1)。。。 。。。 (2)。。。 。。。 3.。。 【实验环境】 1.实验配置 本实验所需的软硬件配置如表1所示。 表1 实验配置 本实验的环境如图1所示。

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

实验四 shell编程实验(二) 班级:姓名:学号:上机时间:年月日 任课教师:实验教师:实验成绩: 一、实验目的 综合Linux常用命令和vi编辑器的使用,熟练掌握shell脚本编程。 二、实验注意事项 实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。要求每个同学登录后系统后,要在自己的家目录下创建一个属于自己的子目录(以自己(拼音)名字或学号)。以后所有工作都要在自己的目录内进行。建议以后的实验都在同台计算机上做,这样可以保持连续性。 三、实验内容 1. 编写一个脚本,求斐波那契数列的前10项及总和。 num1=1 num2=1 echo -n “$num1+$num2” sum=2 for((i=1;i<=8;i++)) do tmp=$(expr $num1 + $num2) echo -n “+$tmp” ((num1=num2)) ((num2=tmp)) sum=$(expr $sum + $tmp) done echo “=$sum” 2.编写一个脚本,求一个数的逆序。 echo -n please input num: read num echo -n The num is while [ $num -gt 0 ] do sd=$(($num % 10)) echo -n "$sd" num=$(($num/10)) done echo

3.设计一个Shell程序,在用户主目录下建立一个userdata目录,在此目录下再建立5个目录,即user1~user5,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。(注意:最后删除自己所建立的目录,恢复原样,以便后面同学做此实验) mkdir -m 754 /home/userdata i=1 temp=/home/userdata/user while[ $i -le 5 ] do mkdir -m 754 $temp$i let”i=i+1”# done 4.用Shell编程,判断一文件是不是普通文件,如果是将其拷贝到/home/student/test 目录下,用命令查看test目录内容,最后再删除test目录。 mkdir -m 777 /home/test echo “Input file name:” read FILENAME if [ -f “$FILENAME” ] then cp $FILENAME /home/test ls /home/test cd test rm $FILENAME cd . ls else echo”The FILENAME is not a regular file!” fi 5.编程实现简单计算器。要求用户输入一个表达式并输入结果,程序会判断用户输入的结果是否正确,并给出提示。直到用户输入‘q’时,才退出执行。 参考程序: #!/bin/bash #fileName:first #note:This is the first title #function:input an expretion and the answer, I will tell you right or wrong # You can try it as many times as you like. echo Hello! @_@ echo Welcom to the calculate testing! echo You can input an expretion such as 2*2 or 3+1, and input the answer echo I will tell you whether you are right or wrong. echo You can input 'q' to exit.

linux操作系统实验报告要点

LINUX操作系统实验报告 姓名 班级学号 指导教师 2011 年05月16 日 实验一在LINUX下获取帮助、Shell实用功能 实验目的: 1、掌握字符界面下关机及重启的命令。 2、掌握LINUX下获取帮助信息的命令:man、help。 3、掌握LINUX中Shell的实用功能,命令行自动补全,命令历史记录,命令的排列、替

换与别名,管道及输入输出重定向。 实验内容: 1、使用shutdown命令设定在30分钟之后关闭计算机。 2、使用命令“cat /etc/cron.daliy”设置为别名named,然后再取消别名。 3、使用echo命令和输出重定向创建文本文件/root/nn,内容是hello,然后再使用追加重定向输入内容为word。 4、使用管道方式分页显示/var目录下的内容。 5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。 实验步骤及结果: 1.用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输入 命令Shutdown -h 30 2、使用命令alias将/etc/cron.daliy文件设置为别名named,左边是要设置的名称右边是要更改的文件。查看目录下的内容,只要在终端输入命令即可。取消更改的名称用命令unalias 命令:在命令后输入要取消的名称,再输入名称。 3.输入命令将文件内容HELLO重定向创建文本文件/root/nn,然后用然后再使用追加重定向输入内容为word。步骤与输入内容HELLO一样,然后用命令显示文件的全部内容。 4.使用命令ls /etc显示/etc目录下的内容,命令是分页显示。“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。

实验四同步与互斥Linux实验报告材料

实验四同步与互斥 【实验目的和要求】 1、掌握进程(线程)的同步与互斥。 2、掌握生产者消费者问题的实现方法。 3、掌握多线程编程方法。 【实验容】 实现生产者消费者问题 1、有一个仓库,生产者负责生产产品,并放入仓库,消费者会从仓库中拿走产品(消费)。 2、仓库中每次只能入一个(生产者或消费者)。 3、仓库中可存放产品的数量最多10个,当仓库放满时,生产者不能再放入产品。 4、当仓库空时,消费者不能从中取出产品。 5、生产、消费速度不同。 【实验原理】 1、信号量mutex提供对缓冲池访问的互斥要求并初始化为1,信号量empty和 full分别用来表示空缓冲项和满缓冲项的个数,信号量empty初始化为n,信号量full初始化为0。 2、定义如下结构及数据: 定义缓冲区的数据类型:typedef int buffer_item; 缓冲区:buffer_item buffer[BUFFER_SIZE];

对缓冲区操作的变量:int in,out; 信号量mutex提供了对缓冲池访问的互斥要求:pthread_mutex_t mutex; 信号量empty和full分别表示空缓冲顶和满缓冲顶的个数:sem_t empty,full; 可以设定生产者的生产速度及消费者的消费速度:int pro_speed,con_speed; 对缓冲区操作的自增函数:#define inc(k) if(k < BUFFER_SIZE) k = k+1;else k=0 3、并定义了如下实现问题的函数模块: 将生产的产品放入缓冲区: int insert_item(buffer_item item) 从缓冲区移走一个产品: int remove_item(buffer_item *item) 生产者进程:void *producer(void *param) 消费者进程:void *consumer(void *param) 生产者结构进程消费者结构进程 【程序代码】 //sx.c #include

操作系统-Linux课程实验报告材料

实验1.1、1.2 Linux Ubuntu的安装、创建新的虚拟机VMWare

实验1.3 Shell编程 1.实验目的与内容 通过本实验,了解Linux系统的shell机制,掌握简单的shell编程技巧。 编制简单的Shell程序,该程序在用户登录时自动执行,显示某些提示信息,如“Welcome to Linux”, 并在命令提示符中包含当前时间、当前目录和当前用户名等基本信息。 2.程序源代码清单 #include #include int main(){ printf("Hello Linux\n"); int pid; int state; int pfd[2]; pipe(pfd); if (fork()==0){ printf("In the grep progress\n"); dup2(pfd[0],0); close(pfd[0]); close(pfd[1]); execlp("grep","grep","sh",0); perror("exelp grep error");

} esle if(fork()==0){ printf("In the ps progress\n"); dup2(pfd[1],1); close(pfd[0]); close(pfd[1]); execlp("ps","ps","-ef",0); perror("execlp ps -ef"); } close(pfd[1]); close(pfd[0]); wait(&state); wait(&state); } 实验2.3 内核模块 实验步骤: (1).编写内核模块 文件中主要包含init_clock(),exit_clock(),read_clock()三个函数。其中init_clock(),exit_clock()负责将模块从系统中加载或卸载,以及增加或删除模块在/proc中的入口。read_clock()负责产生/proc/clock被读时的动作。(2).编译内核模块Makefile文件 # Makefile under 2.6.25

Linux文件系统实验报告

黄冈师学院 提高型实验报告 实验课题文件系统的设计与实现(实验类型:□综合性 设计性□应用性) 实验课程操作系统原理 实验时间2015-2016 第二学期 学生何正发 专业班级软件工程1401 学号07

成绩: 一、实验目的和要求 1、熟悉操作系统设计的过程,巩固操作系统的基本知识,加深对操作原理、功能及各种不同的存储管理方法理解与应用; 2、学会运用各种语言、软件开发新软件的基本方法; 3、增强实际应用能力和动手操作能力。 二、实验条件 Win7 /Windows 8.1/Linux等操作系统,装有java、C、C++、C#等语言工具的环境。 三、实验原理分析 可以选择最佳适应算法,按照从小到大的次序组成空闲区自由链,当用户作业或进程申请一个空闲区时,存储管理 程序从表头开始查找,当找到第一个満足要求的空闲区时,停止查找。如果该空闲区大于请求表中的请求长 度,将减去请求长度后的剩余空闲区部分留在可用表中。回收时,从作链中删去要回收的作业块,同时在空 闲链中插入该作业大小的空闲区,并按顺序排列 四、实验方案或步骤 1、应用环境、需求分析 本模拟系统主要针对文件的管理和操作名主要有:创建用户、文件、文件夹,读文件,写文件,执行文件,关闭文件,删除用户、文件夹、文件的功能。 创建用户、文件、文件夹:在对系统发出操作命令之前必须先登录用户,然而登录之前必须创建该用户。在创建完后,可通过登录用户来创建文件和文件夹。在创建文件时可设置文件的属性和输入文件的容。 读文件:读取任何已创建的只读或读写文件的容;如果所要读的文件不是可读文件时,系统会显示该文件不可读;如果所读文件不存在,系统会显示文件不存在。 写文件用户可写或重写读写文件中的容,并保存文件中的重写容,以供下次读取;当所要写的文件不是可写的文件时,系统会显示该文件不可写;当所要写的文件并不存在时,系统会显示该文件不存在。

linux操作系统实验报告

LINUX 操作系统实验报告 姓 名 班级学号 指导教师 2011 年 05月 16 日 实验一 在LINUX 下获取帮助、Shell 实用功能实验目的: 1、掌握字符界面下关机及重启的命令。 2、掌握LINUX 下获取帮助信息的命令:man 、help 。 3、掌握LINUX 中Shell 的实用功能,命令行自动补全,命令历史记录,命令的排列、替半径标式,为线敷设资料试案;过关运行要避高中资要求电

换与别名,管道及输入输出重定向。 实验内容: 1、使用shutdown命令设定在30分钟之后关闭计算机。 2、使用命令“cat /etc/cron.daliy”设置为别名named,然后再取消别名。 3、使用echo命令和输出重定向创建文本文件/root/nn,内容是hello,然后再使用追加重定向输入内容为word。 4、使用管道方式分页显示/var目录下的内容。 5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。 实验步骤及结果: 1.用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输 Shutdown -h 30 入命令 2、使用命令alias将/etc/cron.daliy文件设置为别名named,左边是要设置的名称右边是要更改的文件。查看目录下的内容,只要在终端输入命令即可。取消更改的名称用命令命令:在命令后输入要取消的名称,再输入名称。 unalias 3.输入命令将文件内容HELLO重定向创建文本文件/root/nn,然后用然后再使用追加重定向输入内容为word。步骤与输入内容HELLO一样,然后用命令显示文件的全部内容。 4.使用命令ls /etc显示/etc目录下的内容,命令是分页显示。“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。

Linux常用命令实验报告

实验二 姓名:陈辉龙学号:201407010201 班级:14计科(1)一.实验目的: 掌握Linux常见命令,为今后的实验打下良好的基础。 二.实验内容 1.新建用户为chenhuilong,配置密码为passwd: 2.切换到chenhuilong用户,并在/home/chenhuilong目录下新建文件夹dir: 3.在文件夹dir下新建文件hello(内容为"printf hello world!"),并将其拷贝至/home/user目录: 4.统计/home/user目录下文件的个数,包括子目录里的首字符为-的普通文件:

5.统计/home下目录的个数,包括子目录里的目录: 6.显示/home/user目录下名为hello的文件的行数、字数以及字符数(使用输入重定向): 7.将上步的结果输出重定向到名为cnt_hello的文件: 8.删除/home/user目录下的hello文件: 9.进入/home/user/dir文件夹,将hello文件属性变为-rwxrw-r--(使用符号标记方式),并为hello文件在/home/user目录下建立软链接,链接文件名为link_hello:

10.查看/home/user/dir/hello文件的详细信息: 11.切换至根目录下查找hello文件: 12.打包home/user/dir/hello文件,并进行压缩,然后再进行解压缩解包: 13.退出user用户,删除/home/user文件夹:

14.将文件夹/home的所有者改为user用户,并删除user用户: 三.实验总结: 本实验旨在熟悉Unix的常用命令,实验较简单,操作起来还算顺利,做了一遍感觉还不是很熟悉,因此做了两遍,第二遍就很得心顺手。通过这次实验,熟悉了一些常用的命令操作,为以后的学习打下坚实的基础,提高自己的动手能力。

实验四 Linux的文件处理

实验四Linux的文件处理 1.目的要求 (1)学习和掌握gcc等Linux的开发调试环境。 (2)学习并掌握Linux的文件操作。 (3)编写并实现“学生管理系统”程序。 2.实验内容 (1)文件底层系统调用实验 ●使用vi将程序清单4-1和4-2的程序输入,并在当前目录下创建文件“file.in”和文 件“file.out”,尽可能的使文件“file.in”大一些。 ●利用gcc分别编译这两个程序,写出编译命令和执行结果;如果不成功,尝试利用 gdb调试。 实现将file.in中的内容复制到file.out中; ●仔细观察这两个程序,比较标准C的文件操作和Linux的系统调用open、read、 write等的使用区别。 _两者的描述符不一样,写入和读入调用的函数也是不一样,一个是底层系统调用,一个是库函数,带的参数也不一样,方法大致是一致的 ●按照说明重新修改程序4-2,并使用time命令察看程序执行的时间效率上有何区别。 分别是注释前和注释后的运行时间 ●输入、编译并运行程序4-3和4-4,写出执行结果,并比较他们fseek和lseek在使 用方法上的异同。 创建了一个名为hole.file的文件文件的内容是、 内容无差异

(2)目录信息的单层浏览 ●使用vi将程序清单4-5和4-6程序输入。 ●利用gcc分别编译这两个程序,写出编译命令和执行结果;如果不成功,尝试 利用gdb调试。 搜索Mydirection目录里的内容; ●仔细观察这两个程序,比较它们的区别。 后者是封装函数,方便使用而且不需要知道原理; (3)录信息的完整浏览 ●使用vi将程序清单4-7和4-8程序输入。 ●利用gcc分别编译这两个程序,写出编译命令和执行结果;如果不成功,尝试 利用gdb调试。 4_7.:

实验一 Linux基本操作实验报告

实验一Linux基本操作 一.实验目的: 1. 二.实验环境: 虚拟机+Red Hat Enterprise Server 5.0 三.实验内容: 根据以下的文字提示,调用相应的命令来完成,记录相应的运行结果。一)用户和组基本操作 1.添加一个user01用户,家目录为/home/sub2,并设置密码 2.添加一个group1 组 3.将user01用户添加到group1组中 4.修改group1组名称为group2 5.修改user01的家目录为/home/user01 6.判断/etc/password这个目录是否包含user01这个用户 7.修改user01的shell为/bin/tcsh 8.添加一个group3组,把user01和root用户都添加到该组

https://www.doczj.com/doc/9b8525385.html,er01用户从group2组切换到group3组 10.设置user01的密码在2012-5-20过期 11.把/home/user01目录所属的组修改为group3 12.删除user01帐号 13.查看内核版本号 二)进程管理 1.运行cat命令:vi test,输入若干字符如this is a example,挂起vi进程 2.显示当前所有作业 3.将vi进程调度到前台运行

4.将vi进程调度到后台并分别用kill/pkill/killall命令结束该该进程。 三)磁盘管理 1.通过fdisk 将为硬盘增加一个分区(主分区或者逻辑分区)。 2.并格式化ext3系统,

3.检测分区是否有坏道 4.检测分区的完整性 5.加载分区到/mnt目录(或者其他分区)下,并拷贝一些文件到该目录下 6.(选做)为test用户设置磁盘配额(软限制和硬限制参数自行设定) 7.退出/mnt目录后卸载该分区 8.用du查看/usr目录的大小

linux编程实验报告

linux编程实验报告 篇一:Linux程序设计实验报告 《Linux程序设计》 实验报告 安徽工业大学计算机学院 XX年6月 1 实验一 Linux基本 命令的使用 1、实验目的 学习和掌握Linux的基本命令。 2、实验内容和步骤 步骤1:以user_login用户身份并使用telnet登录Linux服务器,按照提示创建自己的账户和口令。 步骤 2:使用新创建的用户账户和口令登录Linux系统,察看登录后的界面。 步骤3:使用pwd命令察看当前的工作目录,然后用ls 命令查看当前目录下的内容,尝试使用-a,-l,-F,-A,-lF等不同选项并比较不同之处。 步骤4:在当前目录下建立一个名为test的新目录,然后将工作目录切换到test下,尝试将/etc目录下的文件passwd拷贝到该目录下(cp 源文件目的目录)。察看当前目录下的passwd文件的属主和文件权限。

2 步骤5:尝试向当前目录下的passwd文件和/etc/passwd 文件分别写入一些新内容(可使用echo “字符串” >>文件的命令),看看操作能否成功,如果不能成功,请说明原因。用cat命令浏览文件password的内容,用more命令进行浏览翻页操作,再用less命令浏览文件的内容。比较这几个命令的不同之处 步骤6:用ls命令查看test下文件的权限,用mv命令更改文件password的文件名为test.txt,尝试用chown和chgrp更改文件的属主为root、组为root,看看能否成功,不成功,请说明原因。尝试用chomd将文件权限为“-rw-------”。看看能否成功,不成功,请说明原因。 3 步骤7:用rm命令删除test目录下的所有文件,再用rmdir命令删除test目录。(想一想有没有一条命令将目录及目录下的所有文件删除,写出这条命令) 步骤8:使用ps命令查看当前系统内的进程,并利用man命令获取ps命令的参数,写出获取当前终端进程执行情况的ps命令。 4 步骤9:使用df命令查看当前系统已安装的文件系统的空间使用情况,记录结果。

实验四 Linux下的C语言编程

实验四Linux下的C语言编程 实验类别:设计型实验时数:6学时 开课单位:计算机学院计算机科学与技术系实验地点:健翔校区计算中心 一、实验目的 通过本实验练习,使学生掌握有关文件管理与文件操作的内容。首先要熟悉在LINUX系统下文件系统的构建方法;其次要熟练掌握在LINUX 环境下用C语言进行高级编程的方法(即有关文件操作的系统调用的使用),进而充分了解LINUX文件系统中shell命令的实现原理以及它们用到的系统调用。 二、实验环境 操作系统:任何Unix/Linux及Sun Solaris 或windows 系列 应用系统:gcc编译器。若OS为windows系列,则还需相应的模拟环境 三、预备知识 1、关于系统调用和库函数 C语言支持一系列的库函数的调用,其中最基本的是studio库函数。事实上,库函数只是C语言在较高层次上调用的方式,系统调用是更低 层次的与C语言的界面,是内核提供给用户调用的函数。 2、L INUX环境下系统调用和库函数的异同 ⑴C程序使用系统调用的语句和调用库函数的语句形式完全相同,但是 二者运行的环境和运行机制截然不同。 ⑵从运行环境来看,库函数使用依赖于所运行的用户环境,程序调用库 函数时,它运行的目标代码是属于程序的,程序处于“用户态”执行; 而系统调用的使用不依赖于它运行的用户环境,是LINUX内核提供

的低层服务,系统调用时所执行的代码是属于内核的,程序处于“核 心态”执行。 ⑶程序库函数的调用最终还是要通过LINUX系统调用来实现,库函数 一般执行一条指令,该指令(操作系统陷阱operating system trap) 将进程执行方式变为核心态,然后使内核为系统调用执行代码。 四、实验内容 本实验要求在LINUX/UNIX环境下用C语言编写三个具体的SHELL 命令,基本涉及了LINUX/UNIX文件系统中较为常用的有关文件操作的系统调用。内容如下: ⑴编程实现copy命令,执行格式:copy file1 file2 file3 功能:将file1、file2两文件的内容合并拷入file3中,其中间应有30个字节的空洞。 程序可能涉及到的系统调用:read(), write(), open(), creat(), close(), lseek() ⑵编程实现renam(即LINUX下的rename)命令,功能是实现文件的重命名。 执行格式:renam filea fileb; 其中filea为源文件,fileb为目标文件。程序执行时应显示出命令行的所有参数,并给出重命名前后两个文件的大小、索引节点号及最近一次状态改变的时间。 程序可能涉及到的系统调用:read(), write(), open(), stat(), close(), link(), unlink() ⑶编程实现:从A文件某处(任意)读取n个字符(连续),写入B文件某 个位置。 执行格式:a.out A x n B y;

Linux实验报告

Linux实验 一、实验目的 1. 了解Linux基本使用方法; 2. 掌握Linux基本设置方式; 3. 掌握Linux基本操作命令使用。 二、内容要求 1. 了解进程管理、文件管理与内存管理 2.掌握系统设置文件与命令 3. 熟练使用系统操作与维护命令 4. 熟练使用系统操作与维护命令 三、实验原理 Linux 系统常用命令格式: command [option] [argument1] [argument2] ... 其中option以“-”开始,多个option可用一个“-”连起来,如 “ls-l -a”与“ls-la”的效果是一样的。根据命令的不同,参数 分为可选的或必须的;所有的命令从标准输入接受输入,输出结果显示在 标准输出,而错误信息则显示在标准错误输出设备。可使用重定向功能对这 些设备进行重定向。如: ls –lh > a.txt 命令在正常执行结果后返回一个0值,如果命令出错可未完全完成,则返回 一个非零值(在shell中可用变量$?查看)。在shell script中可用此返 回值作为控制逻辑的一部分。 DSL命令操作: 帮助命令: man 获取相关命令的帮助信息 例如:man dir 可以获取关于dir的使用信息。 info 获取相关命令的详细使用方法 例如:info info 可以获取如何使用info的详细信息。 基本操作: echo 显示字符串 pwd 显示当前工作目录 ls 查看当前文件夹内容 ls -a 查看当前文件夹内容(包括隐藏项) ls -l 查看当前文件夹内容(详细) ls / 查看根目录内容 cd / 移动到根目录

pwd 显示当前工作目录 ls -al 查看根目录文件夹内容(详细情况并包括隐藏项) cd /home/dsl 回到“家”目录 pwd 显示当前工作目录 df -h 显示剩余磁盘空间,参数“-h”表示适合人读取(human readable) du -h 显示文件夹(及子文件夹)所占空间 mkdir fd0 在当前目录下创建目录fd0 touch a.txt 创建一个空文件a.txt ls / -lh > a.txt 利用重定向功能将根目录中的内容写入a.txt。 cat a.txt 显示a.txt内容 wc a.txt 显示a.txt的行数,字数与字节数 find / -name *conf 在根目录下(包括子目录)查找以conf结尾的文件 sudo mount /dev/fd0 fd0 将软盘镜像挂载到目录fd0上 cd fd0 进入软盘镜像所挂载的目录 ls -lh 查看软盘镜像中的文件 cd .. “..”表示进入上一层目录 gzip a.txt 使用gzip压缩a.txt ls -lh 查看当前文件夹 sudo cp a.txt.gz fd0/ 将a.txt复制到fd0目录下,即将其复制到软盘镜像中 sudo mv fd0/a.txt.gz ./ 将a.txt移动到当前目录下,“.”表示当前目录 sudo umount /dev/fd0 将软盘镜像卸载 ls fd0 显示fd0 目录内容 gzip -d a.txt.gz 解压缩a.txt.gz ls -lh 查看当前文件夹 权限管理: 假设当前处于/home/dsl 目录下,且有a.txt(文件)与fd0(目录),当前用户名为dsl。 sudo cat /etc/passwd 用户 sudo cat /etc/shadow 密码 sudo cat /etc/group 组 users 查看当前登录用户 sudo chmod -x fd0 更改文件夹权限 ls fd0 fd0不能被执行,则意味着无法打开! sudo chmod +x fd0 更改文件夹权限 ls fd0 fd0能被打开 sudo chown root fd0 更改目录fd0的所有者 ls -lh 注意看fd0目录的属性 sudo chown dsl:root fd0 更改目录fd0的所有者为dsl,所属组为root ls -lh 注意看fd0目录的属性 chmod a-r a.txt 现在a.txt不具有“读”权限,不能被读取

linux基础实验报告含代码

Linux基础实验

目录 实验一 (3) 实验二 (4) 实验三 (6) 实验四 (9) 实验五 (11) 实验六 (14) 实验七 (16)

实验一螺旋矩阵 一、实验目的 1.熟悉linux下c程序编写。 2.掌握Makefile编写方法。 二、实验环境和工具 Red Hat Linux 三、实验流程 1.编写螺旋矩阵程序 2.编写Makefile文件 四、实验结果 五、实验心得 通过这次实验,我熟悉了linux下c语言程序的编写,掌握了vi的一些常用操作,学会了使用gcc命令和makefile文件两种方法编译程序。同时也使我熟悉了linux里常用命令的使 用,还有,学会了挂载U盘的方法,可以很方便的往linux里传送文件。 六、关键代码 Makefile 文件 CC=gcc EXEC=juzhen OBJS=juzhen.o all:$(EXEC) $(EXEC):$(OBJS) $(CC) -o $@ $(OBJS) clean: -rm -f $(EXEC) $(OBJS)

实验二添加、删除用户 一、实验目的 1.设计一个shell程序,分组批量添加用户。 2.再设计一个批量删除用户的shell程序。 二、实验环境和工具 Red Hat Linux 三、实验流程 1.编写shell程序 2.修改文件权限 chmod +x addusers 3.运行脚本 四、实验结果 添加用户: 删除用户:

五、实验心得 通过本次实验,我了解了shell脚本编程的方法和其语法规则。掌握了使用shell脚本程序添加、删除用户的方法。需要注意的是:shell脚本直接用vi编写,要特别注意空格。 六、关键代码 添加用户: 删除用户:

LINUX实验四报告

一、实验目得 掌握Linux系统中常用命令得作用与命令中各选项得作用、 二、实验环境 安装了fedora17系统得计算机一台 三、实验过程(实验步骤、记录、数据、分析、结果) 1.查瞧当前系统下用户Shell定义得环境变量得值。 2.定义变量AK得值为200,并将其显示在频幕上。 3.定义变量AM得值为100,并使用test命令语句比较其值就是否大于150。 4.创建一个简单得Shell程序,其功能为显示计算机主机名以及显示系统日期与时间、 5.使用for语句创建一个shell程序,其功能为1+2+3+4+5+……n、 6.使用until语句创建一个shell程序,其功能为计算1~10得平方。 按步骤依次写出命令包括运行结果(可截屏) 1。查瞧当前系统下用户Shell定义得环境变量得值、 2. 定义变量AK得值为200,并将其显示在频幕上、

3、定义变量AM得值为100,并使用test命令语句比较其值就是否大于150、 4。创建一个简单得Shell程序,其功能为显示计算机主机名以及显示系统日期与时间。

5、使用for语句创建一个shell程序,其功能为1+2+3+4+5+……n、

6.?使用until语句创建一个shell程序,其功能为计算1~10得平方。

四、实验总结 (掌握了什么知识,实验中遇到得问题及解决方法) 在实验中,我掌握了创建shell程序得语法:#!/bin/bash与chmod u+x 文件名 也了解了shell定义得环境变量,并且掌握了test语句得用法,数字得比较,循环控制中得for语句、un til语句得用法。 实验4 实验名Linux常见命令

Linux实验报告

Linux程序设计 实验报告 姓名:杨帆 班级:计1242 学号: 121842284 专业:计算机科学与技术指导老师:赵帼英

实验一 Linux系统安装与启动(选做实验) 一、实验目的(通过实践及查阅资料完成如下实验) 1.掌握虚拟机的配置过程。 2.掌握Linux系统的安装过程和简单配置方法。 3.掌握与Linux相关的多操作系统的安装方法。 4.掌握Linux系统的启动、关闭步骤。 5.了解Linux文件系统和目录结构。 二、实验内容 1.安装虚拟机软件(如VMware、Virtualbox)。 2.在虚拟机软件中安装Linux操作系统(如Fedora、Ubuntu、redhat等)。 3.配置Linux系统运行环境。 4.正确地启动、关闭系统。 三、实验步骤 1 .安装虚拟机软件(VMware Workstation 7.0) 。 2.在虚拟机软件中新建Linux虚拟机 2.1设置内存大小(建议大于256MB) 2.2设置虚拟硬盘大小(建议大于8GB) 2.3设置虚拟光驱(虚拟方式,镜像文件) 2.4设置网络连接模式(建议采用桥接方式) 2.5设置共享目录(建议英文目录名) 1.在Linux虚拟机中安装Linux操作系统(fedora10 )。 3.1选择安装界面 3.2检测安装截介质(建议跳过) 3.3安装过程中的语言、键盘选择 3.4磁盘分区(采用自动分区,总大小与2.2相匹配) 3.5引导程序选择(采用GRUB) 3.6注意事项(禁用SELinux) 2.通过相关命令实现对操作系统的登录、退出与关机 3.使用文件浏览器査看Linux操作系统目录结构

相关主题
文本预览
相关文档 最新文档