Linux实验报告_大三上
- 格式:doc
- 大小:229.07 KB
- 文档页数:32
linux实验报告实验目的:通过对Linux操作系统的实践,掌握基本的Linux命令和操作方法,了解Linux操作系统的特点和优势。
实验一:Linux环境搭建在实验一中,我们首先需要搭建Linux操作系统的环境。
根据实验指导书的要求,我们选择了Ubuntu作为实验平台。
通过下载Ubuntu镜像文件,并利用虚拟机软件创建一个虚拟机,将镜像文件安装到虚拟机中。
在安装过程中,我们需要选择合适的分区和网络配置等,并设置root用户的密码。
实验二:基本命令的使用在实验二中,我们主要学习了Linux的基本命令的使用方法。
首先,我们了解了Linux文件系统的结构,包括根目录、用户目录、系统目录等。
然后,通过命令行终端进行一系列的实践操作,比如查看文件内容、创建目录、复制文件等。
这些命令的使用不仅提高了我们的工作效率,同时也增强了对Linux操作系统的理解。
实验三:软件安装与卸载实验三主要涉及到Linux的软件安装与卸载。
我们首先学习了使用APT工具进行软件包管理,通过安装命令行界面的方式安装了一些常用的软件,比如文本编辑器、终端工具等。
此外,我们还学习了如何卸载已安装的软件包,清理不需要的文件,以保持系统的整洁性。
实验四:权限管理在实验四中,我们学习了Linux的权限管理机制。
Linux操作系统采用了基于用户和组的权限模型,通过设置文件和目录的权限,实现对文件的读、写、执行的控制。
我们通过实际操作,创建了新的用户和组,并为不同的用户和组设置了不同的权限。
这样,可以有效地保护系统的文件和数据的安全性。
实验五:网络配置与服务搭建在实验五中,我们主要学习了Linux的网络配置和服务搭建。
通过设置网络接口、IP地址和网关等参数,实现了网络的正常连接。
同时,我们还学习了一些常用的网络命令,比如ping、ssh等。
此外,我们尝试搭建了一个简单的Web服务器,通过浏览器访问,可以查看服务器上的网页。
实验六:系统监控和故障恢复在实验六中,我们学习了Linux的系统监控和故障恢复方法。
linux的实验报告Linux的实验报告引言:Linux作为一种开源操作系统,具有广泛的应用领域和强大的稳定性,已经成为计算机科学领域中不可或缺的一部分。
在本次实验中,我们将对Linux进行深入探索和实践,以了解其基本原理和功能。
一、Linux的起源与发展Linux诞生于1991年,由芬兰大学生林纳斯·托瓦兹(Linus Torvalds)开发而成。
起初,Linux只是一个小型的个人项目,但随着时间的推移,越来越多的程序员加入其中,使得Linux逐渐成为一个强大的操作系统。
二、Linux的核心特性1. 开源性:Linux的源代码对所有人开放,任何人都可以对其进行修改和改进。
这使得Linux具有强大的灵活性和可定制性。
2. 多用户和多任务:Linux支持多用户同时登录,并能够同时处理多个任务,大大提高了工作效率。
3. 稳定性和安全性:Linux具有出色的稳定性和安全性,很少出现崩溃和漏洞。
这使得Linux成为服务器和网络设备的首选操作系统。
4. 强大的命令行界面:Linux提供了强大的命令行界面,使得用户可以通过命令行操作来完成各种任务,提高了操作的灵活性和效率。
三、Linux的实验应用在本次实验中,我们通过以下几个方面对Linux进行了实践应用。
1. 安装和配置Linux操作系统首先,我们需要选择适合的Linux发行版,并进行安装和配置。
在安装过程中,我们需要选择合适的分区方案、安装软件包和设置用户账户等。
通过这一步骤,我们熟悉了Linux的安装过程和基本配置。
2. 熟悉Linux的文件系统Linux的文件系统与Windows有所不同,我们需要了解Linux的文件结构和文件路径。
在实验中,我们通过命令行界面进入不同的目录,创建和删除文件,以及修改文件权限等操作,深入了解了Linux的文件系统。
3. 学习Linux的基本命令Linux的命令行界面是其最大的特点之一,我们需要掌握一些基本的命令来完成各种任务。
实验一 Linux基本操作一、实验目的了解并熟悉Linux操作系统的基本环境和基本操作。
二、实验内容(1)掌握开机、登录、退出、关机步骤;(2)学习Linux的常用命令;(3)学习vi 编辑器的使用:学习在命令终端下,编译、连接、运行一个程序的方法;(4)编制一个C语言程序,显示“hello world”,编译、连接、运行。
三、实验过程(1)开机输入用户名和密码即登录到linux系统中。
退出时可以直接点关机按钮,也可以用命令行:普通用户输入 logout 或者 exit 即注销;超级用户输入shutdown –h now即立刻关机,输入 shutdown –h 12:00即12点关机,输入shutdown –r now即立刻重启。
(2)linux常用命令:-pwd命令:显示当前的工作目录。
-ls 命令:列出指定的文件信息或指定的目录中的文件和子目录清单。
-rm命令:删除指定的文件或目录。
-cp命令:复制文件或目录。
(3)编译:对于c 文件:cc -o name xxx.c;对于c++ 文件:c++ -o name xxx.cpp (其中name是可执行文件名,xxx是编写时候的文件名)。
运行:./name四、调试程序过程命名程序:编写程序:编译程序:运行程序:五、总结1、调试过程中遇到的主要问题及解决过程命名的时候如果不加扩展名 .c或者 .cpp 执行的时候会提示错误,找不到文件。
2、体会和收获通过这次实验我初步认识了虚拟机环境下的linux系统的界面和一些基本的命令行操作;也学会了用vi编辑器编写c和c++文件;同时知道了一些常用的命令,比如查看文件、查看当前目录、复制、删除等等,觉得很有意思,引起了我学习linux的兴趣。
六、附录:源程序代码(另附)。
linux操作系统实验报告第一篇:linux操作系统实验报告Linux实验报告一一、实验步骤及内容1.虚拟机软件的安装(1)先准备虚拟机安装包。
(2)更改安装路径:“D: VMwareVMware Workstationvmware.exe”(3)输入序列号:ctrl+v,在安装过程中不能进行复制剪切操作。
(4)不能重新启动,才能继续安装汉化版D: vmwarevmware workstation2.新建一个虚拟机并进行配置(1)单击新建虚拟机虚拟机的类型选择:典型安装选择客户端操作系统:linux虚拟机的名字及位置根据需要网络类型选择:,桥接。
指定的磁盘容量删除软驱:双击floppy—remove虚拟内存设置:双击memory—1024MB设置linux的安装文件:选择安装镜像文件—指定第一个安装文件—就可以啦!之后会提示安装第二个安装文件就进行选择第二个中间鼠标切换用CTRL+ALT。
3.安装LINUX操作系统(1)要确定鼠标是否在虚拟机的激活状态下:敲回车不需要检测安装文件选择skip进入linux的安装前的配置选项:选择安装的语言—中文简体键盘:--默认鼠标:--默认安装类型:--workstation磁盘分区:--自动分区引导程序:默认网络配置:默认防火墙:无防火墙支持的语言:中文时区:亚洲-上海密码:root123456安装的软件包:全部。
二.在已有虚拟机软件的基础上安装LINUX的技巧。
(1)新建虚拟机—典型安装—linux ,red hat linux---给虚拟机命名,并且指定安装位置d:red hat linux---桥接---10G。
(2)在刚才建立的虚拟机上安装linux系统.(3)配置要安装的linux系统的安装文件iso镜像文件(4)选择配置好linux镜像文件刚才建立的虚拟机,启动虚拟机,开始安装。
三.实验总结充分了解linux系统的安装,学会新建虚拟机,在虚拟机上安装linux系统.和一些简单的技巧并对此门课程有了一定的兴趣。
实验1:安装Linux系统【实验目的和要求】:安装Linux系统,掌握操作系统的系统配置,建立应用环境的过程。
【实验内容】:1、首先在windows系统中安装虚拟机。
在网上找到VMwareWorksttionPro版本,确定安装目录。
一直下一步,不需要太多的说明。
2、图为安装完成后的界面。
3、然后在阿里巴巴开源镜像网站下载centos系统镜像,然后虚拟机创建新的虚拟机,进行一些简单的虚拟机设置,设置了网络链接nat模式等等。
安装完成后的界面实验2:Linux下c语言开发【实验目的】:学会和掌握用c语言开发一个应用程序的全过程,包括,编译,调试等等。
【实验步骤】:首先在系统中查看是否已经安装有gcc,输入查看命令发现没有,于是需要安装gcc。
在centos系统中可以使用比较简便的yum命令。
在之前已经配置好了yum源。
直接输入yuminstallgcc。
回车自动安装程序和需要的依赖包。
因为虚拟机中和电脑很多地方切换使用不方便,所以安装了xshell软件。
图为xshell中的截图。
安装完毕。
然后使用vi或者vim编写hello.c运行,在屏幕上打印出hello,world。
实验3:进程创建【实验目的和要求】1.了解进程的概念及意义;2.了解子进程和父进程3.掌握创建进程的方法。
【实验内容】1.子进程和父进程的创建;2.编写附件中的程序实例【实验步骤】一1、打开终端,输入命令gedit1_fork.c,在1_fork.c文件中输入1_fork.bmp中的代码;2、输入命令gcc1_fork.c-o1_fork,回车后显示无错误;3、输入命令:./1_fork运行程序。
二、1、打开终端,输入命令gedit2_vfork.c,在2_vfork.c文件中输入2_vfork.bmp中的代码;2、输入命令gcc2_vfork.c-o2_vfork,回车后显示无错误:3、输入命令:./2_vfork运行程序。
从上面可以看到两次的运行结果不一样。
linux实验报告Linux 实验报告一、实验目的本次 Linux 实验的主要目的是熟悉 Linux 操作系统的基本命令和操作,了解其文件系统、进程管理、用户权限等核心概念,并通过实际操作加深对这些知识的理解和应用能力。
二、实验环境本次实验使用的是虚拟机软件 VirtualBox 安装的 Ubuntu 2004 LTS 操作系统。
三、实验内容及步骤(一)用户和权限管理1、使用`sudo adduser` 命令创建新用户`user1` 和`user2`。
2、使用`sudo passwd user1` 和`sudo passwd user2` 为新用户设置密码。
3、使用`sudo usermod aG sudo user1` 将`user1` 添加到`sudo` 组,使其具有管理员权限。
4、以`user1` 身份登录系统,创建一个文件`file1txt`,尝试修改其权限为 777,观察权限变化。
(二)文件和目录操作1、使用`mkdir` 命令创建目录`directory1` 和`directory2`。
2、使用`touch` 命令在当前目录下创建文件`file2txt` 和`file3txt`。
3、使用`cp` 命令将`file2txt` 复制到`directory1` 目录下。
4、使用`mv` 命令将`file3txt` 移动到`directory2` 目录下。
5、使用`rm` 命令删除`file2txt` 和`directory2` 目录及其下的所有文件。
(三)进程管理1、使用`ps` 命令查看当前系统中的进程信息。
2、使用`top` 命令实时监控系统的进程状态。
3、使用`kill` 命令结束指定进程(例如,通过进程 ID 结束一个占用大量资源的进程)。
(四)文件系统管理1、使用`df` 命令查看磁盘空间使用情况。
2、使用`du` 命令查看目录或文件的磁盘使用量。
3、使用`mount` 命令挂载一个新的磁盘分区(假设已经在虚拟机中添加了新的磁盘分区)。
linux实验系统实验报告Linux实验系统实验报告一、引言Linux实验系统是一个基于Linux操作系统的实验平台,旨在提供一个实践学习的环境,帮助学生深入了解Linux操作系统的原理和应用。
本实验报告旨在总结和分析我在使用Linux实验系统进行实验时的经验和收获。
二、实验环境1. 硬件环境:我使用的是一台配备Intel Core i5处理器和8GB内存的个人电脑。
2. 软件环境:我下载并安装了Linux实验系统的最新版本,该版本基于Ubuntu操作系统,并预装了一系列常用的开发工具和软件包。
三、实验内容1. 实验一:Linux基础命令的使用在这个实验中,我通过终端窗口使用了一些常用的Linux命令,如ls、cd、mkdir、rm等。
通过实际操作,我熟悉了Linux文件系统的结构和基本操作,掌握了如何在Linux中创建、删除和移动文件夹,以及如何查看文件和文件夹的属性。
2. 实验二:Shell脚本编程这个实验要求我们使用Shell脚本编写一个简单的程序,实现对指定文件夹中所有文件进行备份的功能。
通过这个实验,我学会了如何使用Shell编程语言,掌握了一些基本的语法和命令,比如if语句、for循环和cp命令。
我还学会了如何将Shell脚本保存为可执行文件,并在终端中运行。
3. 实验三:网络配置与管理这个实验主要涉及Linux系统的网络配置和管理。
我学会了如何配置网络接口,包括设置IP地址、子网掩码和网关。
我还学会了如何使用ping命令测试网络连接,以及如何使用ifconfig命令查看和管理网络接口的状态。
通过这个实验,我对Linux系统的网络配置有了更深入的了解。
四、实验收获通过使用Linux实验系统进行实验,我获得了以下收获:1. 对Linux操作系统有了更深入的了解:通过实际操作,我对Linux操作系统的基本原理和文件系统有了更深入的了解。
我学会了如何在Linux中进行文件和文件夹的管理,以及如何使用命令行界面进行各种操作。
∣inux实验报告总结(共10篇)(Linux实验报告汇总)(一)Shell 编程一、实验目的:1)掌握在Linux下的C编程基本方法。
2)掌握shell编程方法。
3)掌握dialog图形化编程方法。
二、实验内容1、编写能输出“Hello world!”问候语的C程序,并在终端中编译、执行。
要求记录所使用的命令及结果。
#include stdio.hmain()(printf(Hello world!\n);)2、编写一个C程序并设置其在后台执行,其功能是在一段时间后(可自行设置),在屏幕上显示信息:Time for play!,写出相应的程序、命令及结果。
#include stdio.hmain()(int time=0;printf(请输入等待时间(单位:s):);scanf(%d/&time);sleep(time);printf(Time for play!\n);)3、编写C程序,求1到100之间整数的阶乘和,并对程序进行优化。
写出程序、命令和结果。
#include stdio.hmain()int i;double s = l,sum = 0;for( i= l;i= 100;i++)sum+=s*=i;printf( 1到100之间整数的阶乘和:%f\n,sum);printf( 1到100之间整数的阶乘和:%e\n,sum);}4、编写C程序,根据键盘输入的半径求圆面积,要求在命令行周率(P∣=3∙14,PI=3∙14159,PI=3.14159626 等)进行编使用不同的译,写出程序、命令和结果。
#include stdio.hint main()double r = 0.0 , Area = 0.0;printf(请输入半径:);scanf(%lf, &r);Area = PI * r * r;printf(圆面积:%f∖n, Area);)5、编写shell程序sh.l,完成向用户输出“你好!”的问候语。
Linux实验报告,,**大学 Linux 技术上机实验指导**大学实验指导实验一Linux 系统安装与简单配置一、实验目的 1.掌握Linux 系统安装的分区准备。
2.掌握 Linux 系统的安装步骤。
3.掌握 Linux 系统分区的挂载和卸载。
4.掌握 Linux 系统的启动和关闭操作。
二、实验内容 1.安装 VMware 虚拟机,设置光盘驱动器,为 Linux 系统安装做准备。
2.在虚拟机下安装 Linux 操作系统(如 Ubuntu 桌面版本)。
3.配置 Linux 系统运行环境。
4.利用空闲分区创建新的 Linux 系统分区。
5.将新的 Linux 系统分区挂载到系统中;卸载新挂载的分区,重新挂载到目录树中的其他位置。
三、主要的实验步骤 1.制定安装系统的分区计划。
2.配置光驱引导镜像文件 iso,启动系统,开始安装过程。
3.根据安装计划,对磁盘空间进行分区设置。
4.根据系统安装指导,完成 Linux 系统的安装过程。
5.安装成功后,退出系统,重新启动虚拟机,登陆Linux 操作系统。
6.对 Linux 系统进行配置,如网络设备等。
7.利用磁盘使用工具和 mount,将新创建的 Linux 系统分区挂载到系统中。
将新挂载的分区卸载,并重新挂载到目录树的其他位置。
1为作者的博览群书赞一个。
切合实际,有生活。
嵌入式Linux学习心得1、Linux命令ls:查看目录-l以列表方式查看;ls –l 与ll的功能一样 pwd: 查看当前的目录cd:改变当前操作目录cd /直接跳到根目录 cd ..回到上一级目录 cat: 打印显示当前文件的内容信息mkdir:创建目录fdisk: 查看硬盘分区信息,-l以列表方式查看->代表是链接文件,类似window下的快捷方式。
cp: 复制命令,例子cp 文件名 /home/dir/mv: 移动或改名,如mv sonf.confsonf.txt (改名)移动:mv sonf.conf / rm:删除命令,如rm –f test.c ; 如删除目录rm –fr dman:查看某个命令的帮助,man 命令2、各系统目录的功能drw—r—w-- :d代表是目录,drw代表当前用户的权限,r代表组用户的权限,w代表其它用户的权限。
linux系统使用实验报告Linux 系统使用实验报告一、实验目的本次实验旨在深入了解和熟悉 Linux 操作系统的基本操作、命令行使用以及系统配置,掌握常见的文件管理、进程管理、用户权限管理等功能,提高对 Linux 系统的实际应用能力。
二、实验环境1、操作系统:Ubuntu 2004 LTS2、实验工具:终端模拟器(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` 组合键终止正在运行的进程。
4、查看系统当前运行的进程,使用`ps aux` 命令。
(四)用户权限管理1、创建一个新用户,使用`sudo adduser username` 命令,其中`username` 为新用户的用户名。
实验三普通文件和目录编程1.编写程序mycp.c,实现从命令行读入文件的复制功能,用原始文件系统调用。
实验流程图:实验程序代码://mycp.c#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#define bufsize 5int main(int argc,char * argv[]){int fd1,fd2;int i;char buf[bufsize];if(argc!=3){printf("argument error\n");exit(1);}fd1=open(argv[1],O_RDONLY);if(fd1==-1){printf("file %s can not opened\n",argv[1]);exit(1);}fd2=open(argv[2],O_RDWR|O_CREAT);if(fd2==-1){printf("Can not open file %s\n",argv[2]);exit(1);}while(1){i=read(fd1,buf,bufsize);write(fd2,buf,i);if(i!=bufsize) break;}close(fd1);close(fd2);return 0;}Linux环境下运行情况如下:road@ubuntu:~/桌面/work$ gcc -o cp cp.croad@ubuntu:~/桌面/work$ ./cpargument errorPlease use:cp file1 file2road@ubuntu:~/桌面/work$ ./cp a b其中,a为一文件,b为空文件。
2.编写程序mycat.c,实现文件内容的显示,用原始文件系统调用实现。
//mycat.c#include<unistd.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>int main(int argc,char* argv[]){int fd;char buffer[100];int num;if(argc!=2){printf("usage : %s filename\n",argv[0]);return 1;}if((fd=open(argv[1],O_RDONLY))==-1){perror("cannot open the file");return 1;}while((num=read(fd,buffer,99))>0){buffer[num]='\0';printf("%s",buffer);}close(fd);return 0;}Linux环境下运行情况如下:road@ubuntu:~/桌面/work$ gcc -o mycat mycat.c road@ubuntu:~/桌面/work$ ./mycatusage : ./mycat filenameroad@ubuntu:~/桌面/work$ ./mycat aiamroadroad@ubuntu:~/桌面/work$其中,a为一个文件名。
3.1用流文件系统函数重新编写上面的程序。
实验流程图:不为3,提示用流文件写的文件复制功能函数://fcp.c#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int main(int argc,char * argv[]){FILE *fd1,*fd2;char buffer[20];if(argc!=3){printf("argument error\n");printf("usage : %s filename1 filename2\n",argv[0]);return 1;}fd1=fopen(argv[1],"r");if(fd1==NULL){printf("file %s can not opened\n",argv[1]);return 1;}fd2=fopen(argv[2],"w");if(fd2==-1){printf("Can not open file %s\n",argv[2]);return 1;}while(!feof(fd1)){fread(&buffer,sizeof(char),1,fd1);fwrite(&buffer,sizeof(char),1,fd2);}fclose(fd1);fclose(fd2);return 0;}运行情况如下:road@ubuntu:~/桌面/work$ gcc -o fcp fcp.cfcp.c: In function ‘main’:fcp.c:25: warning: comparison between pointer and integer road@ubuntu:~/桌面/work$ ./fcp a b3.2用流文件编写显示函数:流程图:源程序代码://myfcat.c#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int main(int argc,char * argv[]){FILE *fd1;char buffer;if(argc!=2){printf("argument error\n");return 1;}fd1=fopen(argv[1],"r");if(fd1==NULL){printf("file %s can not opened\n",argv[1]);return 1;}while(!feof(fd1)){fscanf(fd1,"%c",&buffer);printf("%c",buffer);}fclose(fd1);return 0;}运行情况如下:road@ubuntu:~/桌面/work$ gcc -o myfcat myfcat.c road@ubuntu:~/桌面/work$ ./myfcat aiamroad程序把文件a的内容显示出来了:iamroad4.调用目录函数,编写程序myls.c,实现按下面格式显示当前目录文件列表:文件名文件大小文件创建时间注意研究文件创建时间的转换,注意研究asctime()函数和ctime()函数的用法。
流程图如下:程序代码如下://myls.c#include <sys/stat.h>#include <stddef.h>#include <stdio.h>#include <sys/types.h>#include <dirent.h>int main(void){DIR *dp;struct dirent *ep;struct stat dup;dp=opendir("./");if(dp!=NULL){while(ep = readdir(dp)){ puts(ep->d_name);stat(ep->d_name,&dup);printf("%u ",dup.st_size);printf("%s ",ctime(&dup.st_atime));}closedir(dp);}elseputs("Couldn't open the directory .\n");return 0;}运行结果:列出了当前目录的所有文件的名称、大小和创建时间road@ubuntu:~/桌面/work$ gcc -o myls myls.cmyls.c: In function ‘main’:myls.c:18: warning: format ‘%u’ expects type ‘unsigned int’, but argument 2 has type ‘__off_t’myls.c:19: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’road@ubuntu:~/桌面/work$ ./mylsserver2.c~947 Sat Jan 9 17:25:42 2010pipol.c324 Fri Jan 8 22:47:21 2010newls.c498 Fri Jan 8 22:47:21 2010getip.c~635 Fri Jan 8 22:38:40 2010network1.c1552 Sat Jan 9 15:28:09 2010server28493 Sat Jan 9 17:19:13 2010程序打印出了当前目录所有文件的名称、文件大小和创建时间。
实验四进程实验1.编写程序,显示所有环境变量的名称和值。
程序源代码://environ.c#include<stdio.h>#include<unistd.h>#include<stdlib.h>int main(){char **ch;extern char**environ;ch=environ;while(*ch){printf("%s\n",*ch);ch++;}return 0;}2.*编写程序,模仿讲义上的mysystem程序,实现输入命令的执行。
流程图:程序源代码://mysystem.c#include <stddef.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/wait.h>#define SHELL "/bin/sh"int mysystem(const char* command){int status;pid_t pid;pid=fork();if(pid==0){execl(SHELL,SHELL,"-c",command,NULL);_exit(EXIT_FAILURE);}else if(pid<0)status=-1;elseif(waitpid(pid,&status,0)!=pid)status=-1;return status;}int main(int argc,char * argv[]){mysystem(argv[1]);}运行结果:其中用了Shell中的ls命令,列出了当前目录的所有文件road@ubuntu:~/桌面/work$ gcc -o mysystem mysystem.croad@ubuntu:~/桌面/work./mysystem lsa fifo_channel4 mycat.c~ myls.c~ netsever.c read.ca~ fmycat.c myfcat my_sg_get netsever.c~ serverb getip.c myfcat.c my_sg_get.c network server2b~ getip.c~ myfcat.c~ my_sg_get.c~ network1 server2.cclose.c ipop.c myfifo.c mysystem network1.c server2.c~cp kill.c~ mykill mysystem.c network1.c~ server.ccp.c ls.c mykill.c mysystem.c~ network.c server.c~cp.c~ my mykill.c~ netclt network.c~ showev.cfcp my.c mylist.c netclt.c newls.c tcp k.txtfcp.c mycat myls netclt.c~ open.c tcp.txtfcp.c~ mycat.c myls.c netsever pipol.c write.croad@ubuntu:~/桌面/work$实验五命名管道实验1.研究mkfifo命令,在当前目录下创建一个myfifo的命名管道。