Linux程序设计实验报告

1

《Linux程序设计》

实验报告

安徽工业大学计算机学院

2009年6月

2 实验一 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文件的属主和文件权限。 3

步骤5:尝试向当前目录下的passwd文件和/etc/passwd文件分别写入一些新内容(可使用echo “字符串” >>文件的命令),看看操作能否成功,如果不能成功,请说明原因。用cat命令浏览文件password的内容,用more命令进行浏览翻页操作,再用less命令浏览文件的内容。比较这几个命令的不同之处

步骤6:用ls命令查看test下文件的权限,用mv命令更改文件password的文件名为test.txt,尝试用chown和chgrp更改文件的属主为root、组为root,看看能否成功,不成功,请说明原因。尝试用chomd将文件权限为“-rw-------”。看看能否成功,不成功,请说明原因。 4

步骤7:用rm命令删除test目录下的所有文件,再用rmdir命令删除test目录。 (想一想有没有一条命令将目录及目录下的所有文件删除,写出这条命令)

步骤8:使用ps命令查看当前系统内的进程,并利用man命令获取ps命令的参数,写出获取当前终端进程执行情况的ps命令。 5 步骤9:使用df命令查看当前系统已安装的文件系统的空间使用情况,记录结果。______________________________________________________________________________________________________________________________________________________________

步骤10:使用du命令查看用户的工作目录占用了多少空间,记录结果。

步骤11:使用free命令查看内存资源的使用情况,记录结果。________________________________________________________________________________ 6 步骤12:使用man获取tar和gzip的帮助信息,尝试将test目录下的文件打包并压缩,然后到另外一目录tmp下解包,写出这几条命令。

步骤13:尝试执行“ls –l > tmp”,看看这条命令的执行会出现什么结果,解释一下这条命令。

解释:将ls –l输出的结果输出重定向到tmp文件中

步骤14:尝试执行find /usr/src -name *.c -print | xargs grep “#include”,看看这条命令的执行会出现什么结果,解释一下这条命令。 7 解释:匹配查找列表输出/usr/src下以.c结尾的文件中含有“#include”的内容。

步骤15:执行cal和date命令,说说这两条指令的用途。

cal:输出当月的日历,date:输出当前的时间。

步骤16:执行命令clear和logout,退出系统。(想一想有没有其他的方法,写出这种方法)

还可以用命令:exit

步骤17:执行命令shutdown,关闭系统。(想一想有没有更简单的命令,写出这条命令)

还可以用命令:init 0

3、实验结论

通过本次试验让我熟悉了linux系统下一些简单命令的用法,对系统有个初步的认识,为以后的学习垫下良好的基础,增强了自己对linux的浓厚的兴趣。 8 实验二 简单Shell程序设计

1、实验目的

(1) 学习和掌握vi编辑器的基本使用方法。

(2) 学习和掌握编写简单的shell程序。

2、实验内容和步骤

2.1 vi的使用

步骤1:以root用户身份登录进入Linux 系统。

步骤 2:启动Vi,切换到输入模式,输入一段英文:

This ia an exercise!

We use Vi to edit it.

Left,down,up,right

步骤3:尝试匹配其中的一串字符,写出这命令及执行结果。

步骤4:尝试替换其中的一串字符,写出这命令及执行结果。

步骤5:尝试复制/删除其中的一行或几行文本,写出命令及执行结果。

步骤6:尝试复制/删除其中的一个单词或几个字符,写出命令及执行结果。

步骤7:尝试使用鼠标复制文本,写出命令及执行结果。

步骤8:尝试存盘退出操作,写出命令。

可以用的命令 :wq 或:x

2.2 简单的shell程序

步骤1:使用Vi将程序清单2-1的程序输入。 9 步骤 2:尝试运行该程序,如果不能运行,原因是什么,怎样修改。

步骤3:执行程序,写出程序的执行结果。

步骤4:阅读程序,掌握shell函数的编写方法,补全函数file_run。

for i in `ls`

do

if test -x $i;then

echo $i

fi

done

步骤5:修改程序中的函数uers(),使得显示在线用户时不分行。(提示:可以使用循环,对每个在线用户分别处理。

echo "there are `who|wc -l` users online"

for i in "who are\n`who|awk '{print $1}'`" 10 do

echo -n $i

echo -n" "

done

3、实验结论

本次实验让我在实验一的基础上进一步了解linux下的一些常用命令,同时学习巩固了linux下的shell编程。

4、程序清单

清单2-1 menu

MYDATE=`date +%d/%m/%y`

THIS_HOST=`hostname -s`

USER=`whoami`

file_run()

{

echo "you must complete it"

}

uers()

{

echo "there are `who|wc -l` users online"

echo -e "who are\n`who|awk '{print $1}'`"

} 11

while :

do

tput clear

cat <

---------------------------------------------------------------------

User:$USER Host:$THIS_HOST Date:$MYDATE

---------------------------------------------------------------------

1 : List subdirectory in current directory

2 : List files in current directory which can run

3 : See who is on the system

H : Help screen

Q : Exit Menu

--------------------------------------------------------------------

aaa

echo -e -n "\tYour Choice [1,2,3,H,Q] >"

read CHOICE

case $CHOICE in

1) ls -l|awk '/^d/ {print $8}'

;;

2) file_run

;;

3) uers

;;

H|h)

cat <

This is the help screen,nothing here yet to help you!

aaa

;;

Q|q) exit 0

;;

*) echo -e "\t\007 unkown user response"

;;

esac

echo -e -n "\n\n\tHit the return key to continue"

read DUMMY

done

12 实验三 Linux下简单C程序设计与文件操作

1、实验目的

(1) 学习和掌握gcc等Linux的开发调试环境。

(2) 学习并掌握Linux的文件操作。

(3) 编写并实现实验步骤6要求的程序。

2、实验内容和步骤

步骤1:使用Vi将程序清单3-1和3-2的程序输入,并在当前目录下创建文件“file.in”和文件“file.out”,尽可能的使文件“file.in”大一些。

步骤 2:利用gcc分别编译这两个程序,写出编译命令和执行结果,如果不成功,尝试利用gdb调试。

Gcc –o list3_1 list3_1.c

Gcc –o list3_2 list3_2.c

步骤3:仔细观察这两个程序,比较标准C的文件操作和Linux的系统调用open、read、write等的使用区别。

答:一个是底层的系统调用,另一个是库函数调用,其效率略有差距,同时参数也不同。

步骤4:按照说明重新修改程序3-2,并使用time命令察看程序执行的时间效率上有何区别。

修改之前的系统时间: [root@localhost ~]# time ./ list3_2

real 0m18.791s

user 0m0.824s

sys 0m17.317s

修改之后的时间:___[root@localhost ~]# time ./list3_2

real 0m0.049s

user 0m0.000s

sys 0m0.036s

步骤5:输入、编译并运行程序3-3和3-4,写出执行结果,并比较他们fseek和lseek在使用方法上的异同

合集下载

Linux实验3

Linux实验3

- 1 - 福建农林大学实验报告

系: 专业: 年级:

姓名: 学号: 实验室号__ 计算机号

实验时间: 指导教师签字: 成绩:

实验三 用户管理

一、 实验目的和要求

1) 掌握在Linux系统下利用命令方式实现用户和组的管理;

2) 掌握批量创建用户的方法。

二、 实验内容和原理

1. 用户的管理

 创建一个新用户user01,设置其主目录为/home/user01。

 查看/etc/passwd文件的最后一行,看看是如何记录的。

 查看文件/etc/shadow文件的最后一行,看看是如何记录的。

 给用户user01设置密码。

 再次查看文件/etc/shadow文件的最后一行,看看有什么变化。

 使用user01用户登录系统,看能否登录成功。

 锁定用户user01。

 查看文件/etc/shadow文件的最后一行,看看有什么变化。

 再次使用user01用户登录系统,看能否登录成功。

 解除对用户user01的锁定

 更改用户user01的帐户名为user02。

 查看/etc/passwd文件的最后一行,看看有什么变化。

 删除用户user02。

2. 组的管理

 创建一个新组,stuff。

 查看/etc/group文件的最后一行,看看是如何设置的。

Linux操作系统实验总结分析报告

Linux操作系统实验总结分析报告

Linux操作系统实验总结分析报告

从系统的⾓度分析影响程序执⾏性能的因素

1.Linux系统概念模型

从全局的⾓度来看,Linux系统分为内核空间和⽤户空间,但毫⽆疑问内核空间是Linux系统的核⼼,因为内核负责管理整个系统的进程、内存、设备驱动程序、⽂件,决定着系

统的性能和稳定性。于是从这个⾓度我构建的Linux系统的概念模型如下图所⽰:

此模型将Linux系统主要划分为四个模块:内存管理、进程管理、设备驱动程序、⽂件系统。这四个部分也是⼀个操作系统最基本也是最重要的功能。

2.概念模型解析

2.1 内存管理

Linux系统采⽤虚拟内存管理技术,使得每个进程都有各⾃互不⼲涉的进程地址空间。该空间是块⼤⼩为4G的线性虚拟空间,⽤户所看到和接触到的都是该虚拟地址,⽆法看到

实际的物理内存地址。利⽤这种虚拟地址不但能起到保护操作系统的效果(⽤户不能直接访问物理内存),⽽且更重要的是,⽤户程序可使⽤⽐实际物理内存更⼤的地址空间。

内存管理主要有分为如下⼏个功能:地址映射、虚拟地址管理、物理内存管理、内核空间管理、页⾯换⼊换出策略和⽤户空间内存管理,这些模块的架构图如下所⽰:

2.2 进程管理

进程管理是Linux系统⾮常重要的⼀部分,进程管理虽然不像内存管理、⽂件系统等模块那样复杂,但是它与其他⼏个模块的联系是⾮常紧密的。进程管理主要包括进程的创建、

切换、撤销和进程调度。

2.2.1 进程的创建、切换、撤销

进程的创建:在Linux编程中,⼀般采⽤fork()函数来创建新的进程,当然,那是在⽤户空间的函数,它会调⽤内核中的clone()系统调⽤,由clone()函数继续调⽤do_fork()完成进

程的创建。

整个进程创建过程可能涉及到如下函数:

fork()/vfork()/_clone----------->clone()--------->do_fork()---------->copy_process()

进程的切换:进程切换⼜称为任务切换、上下⽂切换。它是这样⼀种⾏为,为了控制进程的执⾏,内核挂起当前在CPU上运⾏的进程,并恢复以前挂起的某个进程的执⾏。跟函

Linux实验报告(dns配置)

Linux实验报告(dns配置)

1 Linux期中实验报告

——DNS的配置

实验运行环境:Red Hat Linux9/WindowsXP/Win7

实验前准备:bind-9.2.1-16.i386.rpm

bind-utils-9.2.1-16.i386.rpm

redhat-config-bind-1.9.0-13.noarch.rpm

caching-nameserver-7.2-7.noarch.rpm

bind-chroot-9.2.4-2.i386.rpm(可选)

ftp-0.17-17.i386.rpm

httpd-2.0.40-21.i386.rpm

无线路由器一个

实验的整体框图

一、实验目的

1. 认识DNS、FTP、WEB、SMB服务器的主要功能及其工作原理;

2. 学习DNS、FTP、WEB、SMB服务器的安装和配置;

3. 学习如何组建一个局域网,使局域网中的所有的计算机的Windows系统和Linux系统可以互相访问;

4. 掌握对DNS、FTP、WEB、SMB服务器的调试方法及检验问题、解决问题的方法

二、 实验的主要内容

1. 在计算机上配置DNS、FTP、WEB、SMB服务器。

2. 单台计算机下的DNS、FTP、WEB、SMB服务器的调试。

3. 组建一个局域网,实现局域网中所有计算机Windows系统和Linux系统的互相访问(Windows系统与Windows系统、Windows系统与Linux系统、Linux系统与Linux系统)。

4. 在多台电脑之间配置主域名服务器,辅助域名服务器,实现Linux系统之间的DNS的正反向解析调试。

5. 在多台电脑之间实现Windows系统对Linux系统的DNS的正反向解析调试。

6. 在局域网中实现FTP、WEB、SMB服务器在Windows系统和Linux系统之间的相互访问和测试。 wei peng pangzi zhang WLAN

linux实验报告

linux实验报告

西安航空职业技术学院 课程设计用纸

- 1 - 西安航空职业技术学院

课 程

课 程 设 计 说 明 书

设计题目:

专 业:

班级学号:

姓 名:

指导教师:

年 月 日

教务处印制

西安航空职业技术学院 课程设计用纸

- 2 - 西安航空职业技术学院

课 程 设 计 任 务 书

课题名称:

设计内容:

技术条件或要求:

指导教师(签名): 教研室主任(签名):

开题日期: 年 月 12日 完成日期: 年 月 23 日

西安航空职业技术学院 课程设计用纸

- 3 - [摘要]随着Internet的日益普及,在网络上学会配置网络服务器,有着非常重要的意义。综合网络服务器基于LINUX操作系统上,进行服务器与客户端之间的连接,实现服务器为客户端提供服务。其实训内容包括linux服务器搭建与测试:dhcp(主机IP的动态获取)服务器搭建与应用、dns(域名解析)服务器搭建与应用、ftp(能够实现网络文件传输的上传和下载)服务器搭建与应用、www(能够实现基于域名的虚拟机访问)服务器搭建与应用、网络访问等等。综合网络服务器的功能强大,操作简单,扩展性强,稳定性高;方便不同操作系统平台之间的移植;网站最大限度地实现易维护性和易操作性。Linux是一套免费使用和自由传播的操作系统,以其稳定性和灵活性而著称。完善的内置网络是Linux的一大特点。Linux为用户提供了完善的、强大的网络功能。作为一种网络操作系统,它在网络服务器上得到了广泛的应用。

嵌入式Linux系统开发教程实验报告

嵌入式Linux系统开发教程实验报告

.

.

kszl

嵌入式实验报告

学号:

学院:

日期:

.

.

kszl 实验一 熟悉嵌入式系统开发环境

一、实验目的

熟悉 Linux 开发环境,学会基于S3C2410 的Linux 开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc 编译,使用基于NFS 方式的下载调试,了解嵌入式开发的基本过程。

二、实验容

本次实验使用 Redhat Linux 9.0 操作系统环境,安装ARM-Linux 的开发库及编译器。创建一个新目录,并在其中编写hello.c 和Makefile 文件。学习在Linux 下的编程和编译过程,以及ARM 开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。

三、实验设备及工具

硬件::UP-TECH S2410/P270 DVP 嵌入式实验平台、PC 机Pentium 500 以上, 硬盘10G 以上。

软件:PC 机操作系统REDHAT LINUX 9.0+超级终端(或X-shell)+AMR-LINUX 开发环境。

四、实验步骤

1、建立工作目录

[rootlocalhost root]# mkdir hello

[rootlocalhost root]# cd hello

2、编写程序源代码

我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:

[rootlocalhost hello]# vi hello.c

linux实验五、Shell脚本程序编制实验

linux实验五、Shell脚本程序编制实验

南京晓庄学院 数信学院Linux 实验五

实验五Shell脚本程序编制实验

 编写一个Shell命令脚本程序的基本步骤如下:

 (1)编辑包含用户命令脚本程序的文本文件

 (2)添加Shell定义语句,使Linux操作系统可以知道用户使用哪一种Shell

 (3)编写Shell命令脚本程序内容

 (4)保存脚本程序并退出。用“chmod +x ”命令改变该脚本程序的存取权限和执行权限,使其可以被适当的用户使用。

 (5)运用该命令脚本程序以进行测试

 (6)如有必要,可进行程序纠错。

 (7)如有必要,可把完整的命令脚本程序移动到相应位置

 (8)如有必要,可在path语句中加上此脚本的路径

练习:编写书本P107welcome Shell脚本程序

运行脚本程序的三种方法:

a. bash 脚本文件名

b. bash < 脚本文件名

c. chmod u(或g,o,a)+x 脚本文件名 #为脚本添加执行权限

Shell定义的环境变量 shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,这些变量用户还可以重新定义,常用的shell环境变量有:

 HOME:用于保存注册目录的完全路径名。

 PATH:用于保存用冒号分隔的目录路径名,shell将按PATH变量中给出的顺序搜索这些目录,找到的第一个与命令名称一致的可执行文件将被执行。

 TERM:终端的类型。

 UID:当前用户的标识符,取值是由数字构成的字符串。

 PWD:当前工作目录的绝对路径名,该变量的取值随cd命令的使用而变化。

 PS1:主提示符,在特权用户下,缺省的主提示符是“#”,在普通用户下,缺省的主提示符是“$”。

 PS2:在shell接收用户输入命令的过程中,如果用户在输入行的末尾输入“\”然后回车,或者当用户按回车键时shell判断出用户输入的命令没有结束时,显示这个辅助提示符,提示用户继续输入命令的其余部分,缺省的辅助提示符是“>”。

Linux 实验报告二文件和目录管理

第 1页 共 12页 Linux操作系统报告单

专业:计算机科学与技术

学号:

姓名:

名称:文件和目录管理

任课教师:

班级:

完成日期:

成绩:

一、实验名称及目的:

实验名称:文件和目录管理

实验目的:1、了解linux系统的文件和目录结构

2、熟悉linux系统的文件和目录管理的方式和命令

3、能够熟练的使用文件和目录管理命令

二、实验内容及要求:

1.查看操作系统的根目录下,有哪些目录

2.文件操作

第 2页 共 12页 (1)查看文件(可以是二进制的)内容 cat

执行格式:cat filename 或 more filename 或 cat

filename|more 例: cat file1 以连续显示方式,查看文件 file1 的内容 more file1

或 cat file1|more 以分页方式查看文件的内容(2)删除文件

rm

执行格式: rm filename 例: rm file? rm f*

(3)复制文件 cp

执行格式: cp [­r] source destination 例:cp file1 file2将 file1 复制成 file2

cp file1 dir1 将file1复制到目录 dir1 cp /tmp/file1

将file1复制到当前目录

cp /tmp/file1 file2 将file1复制到当前目录名为 file2 cp

–r dir1 dir2 (recursive copy)复制整个目录(4)移动或更改文件、目录名称 mv

执行格式: mv source destination 例:

mv file1 file2 将文件 file1,更名为 file2

linux系统使用实验报告

linux系统使用实验报告

Linux 系统使用实验报告

一、实验目的

本次实验旨在深入了解和熟悉 Linux 操作系统的基本操作、命令行使用以及系统配置,掌握常见的文件管理、进程管理、用户权限管理等功能,提高对 Linux 系统的实际应用能力。

二、实验环境

1、 操作系统:Ubuntu 2004 LTS

2、 实验工具:终端模拟器(Terminal)

三、实验内容与步骤

(一)系统登录与基本命令

1、 启动计算机,选择 Ubuntu 操作系统,输入用户名和密码登录系统。

2、 打开终端模拟器,熟悉常用的基本命令,如 `ls` (列出当前目录下的文件和文件夹)、`cd` (切换目录)、`mkdir` (创建新目录)、`rmdir` (删除空目录)等。

(二)文件管理 1、 在用户主目录下创建一个名为 `experiment` 的文件夹,使用 `mkdir experiment` 命令。

2、 进入该文件夹,使用 `cd experiment` 命令。

3、 在 `experiment` 文件夹中创建一个文本文件 `filetxt` ,使用 `touch filetxt` 命令。

4、 使用 `vi` 或 `nano` 编辑器打开 `filetxt` 文件,输入一些文本内容,并保存退出。

5、 查看文件的内容,使用 `cat filetxt` 命令。

6、 复制文件,使用 `cp filetxt file_copytxt` 命令。

7、 移动文件,使用 `mv filetxt/` 命令将文件移动到上级目录。

8、 删除文件,使用 `rm file_copytxt` 命令。

(三)进程管理

1、 运行一个后台进程,例如 `ping &` ,然后使用 `jobs` 命令查看后台进程。

2、 将后台进程切换到前台,使用 `fg %1` (其中 %1 为后台进程的编号)命令。

3、 终止进程,使用 `Ctrl + C` 组合键终止正在运行的进程。

linux系统实验报告

-可编辑修改- 实 验 报 告

系 别 班 级 学 号 姓 名 时间 地点

计科 Summer

课程名称 Linux操作系统 实验名称 常用命令使用3

2.实 验 过 程

一.实验目的

掌握Linux环境下命令熟练使用。

二.实验设备

虚拟机中ubuntu操作系统中的终端。

三.实验内容

1. 切换到上级目录,然后显示其绝对路径,ls命令显示所有文件;

2. 使用命令新建文件file1,使用vi编辑器编写、保存关闭,使用命令查看其内容,之后重命名为file2,然后将file2删除;

3. 在用户luchunji主目录下创建一个目录mydir 复制文件/etc/init到mydir目录下在mydir目录下创建文件mydoc 删除mydir目录 ;

4. 统计文件/etc/inittab的字符数和行数;

5. 用cat、more、less、head、tail查看文件/etc/init 统计文件/etc/init的字符数和行数,并记录;

6. 将/etc/fstab文件复制到用户luchunji的主目录下,用ls –l查看主目录下的fstab的详细信息,并记录 ;

7. 用ln命令为fstab 创建符号连接文件fstabsoft,用ls –l查看文件fstab和fstabsoft信息,并记录;.

8. 用ln命令为fstab 创建硬链接文件fstabhard,用ls –l查看文件fstab和fstabhard信息,并记录;

9. 使用命令创建一个新的用户。

-可编辑修改- 四、实验结果(截图)

输入touch file1创建文件,然后输入vi file1 进入

按ESC跳到命令模式然后输入:wq

-可编辑修改-

下面用kali 环境写的。

-可编辑修改-

-可编辑修改-

-可编辑修改-

五、实验总结

东北大学操作系统实验之Linux及进程状态

操作系统实验报告一

1 实验一 进程状态转换及其PCB的变化

一、实验目的:

自行编制模拟程序,通过形象化的状态显示,使学生理解进程的概念、进程之间的状态转换及其所带来的PCB内容 、组织的变化,理解进程与其PCB间的一一对应关系。

二、实验内容及要求:

(1)、 设计并实现一个模拟进程状态转换及其相应PCB内容、组织结构变化的程序。

(2)、 独立编写、调试程序。进程的数目、进程的状态模型(三状态、五状态、七状态或其它)以及PCB的组织形式可自行选择。

(3)、 合理设计与进程PCB相对应的数据结构。PCB的内容要涵盖进程的基本信息、控制信息、资源需求及现场信息。

(4)、 设计出可视性较好的界面,应能反映出进程状态的变化引起的对应PCB内容、组织结构的变化。

(5)、 代码书写要规范,要适当地加入注释。

(6)、 鼓励在实验中加入新的观点或想法,并加以实现。

(7)、 认真进行预习,完成预习报告。

(8)、 实验完成后,要认真总结,完成实验报告。

五状态模型:

三、主要数据结构:

struct Run_type //运行态进程

{

char name;

int state;

int needtime;

int priority;

};

struct Ready_type //就绪态进程

{

2 char name;

int needtime;

int priority;

};

struct Blocked_type //阻塞态进程

{

char name;

int needtime;

int priority;

};

四、程序源代码:

#include

#include

#include

int i=0; int j=0;

struct Run_type{

char name;

int state;

int needtime;

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档