托米开发设计托米开发设计

欢迎光临
我们一直在努力

《Linux技术与应用》课程设计

1.1 课设目的

1 linux常用的命令一定要熟练掌握。

2.掌握linux软件包的常用安装方法,例如源码安装,rpm方式安装等等。

3.学习安装设备驱动程序(比如网卡、显卡驱动)

4.熟悉Grub/Lilo引导程序及简单的修复操作。

5.熟悉Linux文件系统和目录结构以及linux基本运行原理。

6.掌握vigccgdb等常用编辑器,编译器,调试器。

7.理解shell别名、I/O重定向、输入和输出以及shell简单脚本编程。

8.学习Linux环境下的网络基本组建。

1.2 课设要求

课程设计为2人一组,在Linux操作系统Ubunturedhat完成下列内容,把正确的结果附在报告后面。

具体要求如下:

1、root身份登录系统,进入root目录;

2、新建file目录,在file目录下新建以自己拼音命名的文件(两位同学就新建两个文件),并查看文档具体内容;

3、root下再新建test目录,把test移动到用户主目录/home中,然后改名为tmp;在tmp下新建的函数文件需要实现以下功能,并编写maikefile函数进行编译,实现功能。函数分别如下:

text1.c text1.h:子函数实现打印A同学名字

text2.c text2.h:子函数实现打印B同学名字

text3.c text3.h:子函数实现1+2+....+100的值

text4.c text4.h:子函数实现终端打印时间日期(当前)

main.c  text1.h  text2.h  text3.h  text4.h:该函数实现各个函数的调用,输入1,终端打印A同学名字并换行;输入2,终端打印B同学名字并换行,输入3,打印1+2+....+100的值并换行,输入4,终端打印时间日期。

撰写Makefile实现上述内容,产生的可执行文件为AB姓名拼音简称(如张三李四:zs_ls)。

4、实现上述功能之后,新建用户u1u2,u1加入到root组内,对于u1用户可以读tmp目录,可以新建文件也可以运行问题3中实现的可执行文件,u2用户可以读tmp文件,不可以新建文件,也不可以运行问题3中实现的可执行文件。

5、在上述执行过程中,打开另外一个终端界面,查看当前的进程,并kill当前的执行文件进程。

6、退回到/home目录,把tmp目录压缩成gzA同学命名)和bz2B同学命名)格式并查看当前目录,把压缩文件通过设置的共享文件夹复制到window系统的文档中。

1.3 虚拟机运行环境与硬件需求

1、运行环境

VMWare可运行在Windows(WinNT以上)Linux操作系统上。

Virtaul PC可运行在Windows(Win98以上)MacOS上。

2、硬件需求

虚拟机是将两台以上电脑任务集成到一台电脑上来,因此对硬件要求比较高,主要是内存,硬盘和cpu;内存要足够大,因为每个虚拟机都会占用一定的内存资源,内存的总大小等于各个虚拟系统的总和。

二.课程设计实现过程

1、以root身份登录系统,进入root目录;

Ø  执行命令: su – root ;cd /root

2、新建file目录,在file目录下新建以自己拼音命名的文件(两位同学就新建两个文件),并查看文档具体内容;

Ø  执行命令:mkdir -p file/; cd file; touch xrjtouch zy

3、在root下再新建test目录,把test移动到用户主目录/home中,然后改名为tmp

Ø  执行命令mkdir test;mv -v test /home/tmp

 

        text1.c text1.h子函数实现打印A同学名字

vim text1.c

#include<stdio.h>

#include"text1.h"

void hello_myname1()

{

   printf("xrj\n");

}

 

 

vimtext1.h

void hello_myname1();

 

        text2.c text2.h子函数实现打印B同学名字

vim text2.c

#include<stdio.h>

#include"text2.h"

void hello_myname2()

{

   printf("zy\n");

}

 

vim text2.h

void hello_myname2();

text3.c text3.h: 子因数实现1+2+....+100的值

vi text3.c

#include<stdio.h>

#include"text3.h"

void adder()

{

int sum=0;

int n=0;

while(n<101)

{

     sum=sum+n;

     n=n+1;

}

printf("1+2+...+100等于:%d \n循环次数n=%d \n",sum,n-1);

}

 

vi text3.h

void adder();

text4.c text4.h:子函数实现终端打印时间日期(当前)

vi text4.c

#include <stdio.h>

#include <stddef.h>

#include <time.h>

#include"text4.h"

void system_time()

{

    time_t timer;

    struct tm *tblock;

    timer = time(NULL);

    tblock = localtime(&timer);

    printf("Local time is: %s\n",asctime(tblock));

}

 

vi text4.h

void system_time();

main.c  text1.h  text2.h  text3.h  text4.h:该函数实现各个函数的调用,输入1,终端打印A同学名字并换行;输入2,终端打印B同学名字并换行,输入3,打印1+2+....+100的值并换行,输入4,终端打印时间日期。

Ø  设计主函数:

vim main.c

#include<stdio.h>

#include<stddef.h>

#include<time.h>

#include"text1.h"

#include"text2.h"

#include"text3.h"

#include"text4.h"

int main()

{

        int x;

        int n;

        for(n;n!=0;n)

        {

        printf("请输入数字:");

        scanf("%d",&x);

        switch(x)

        {

        case 1:hello_myname1();break;

        case 2:hello_myname2();break;

        case 3:adder();break;

        case 4:system_time();break;

        default:printf("输入错误!\n");break;

        }

        printf("是否继续,退出输入0:");

        scanf("%d",&n);continue;

        }

        return 0;

}                                                                   

撰写Makefile实现上述内容,产生的可执行文件为AB姓名拼音简称(如张三李四:zs_ls):

  1 xrj_zy:main.o text1.o text2.o text3.o text4.o

  2     gcc -o xrj_zy main.o text1.o text2.o text3.o text4.o

  3 main.o:main.c text1.h text2.h text3.h text4.h

  4     gcc -c main.c text1.h text2.h text3.h text4.h

  5 text1.o:text1.c text1.h

  6     gcc -c text1.c text1.h

  7 text2.o:text2.c text2.h

  8     gcc -c text2.c text2.h

  9 text3.o:text3.c text3.h

 10     gcc -c text3.c text3.h

 11 text4.o:text4.c text4.h

12     gcc -c text4.c text4.h

 

 

Ø  make指令执行文件:

Ø  执行结果:

4、实现上述功能之后,新建用户u1u2,u1加入到root组内:

Ø  执行命令: useradd -m u1useradd -m u2

chmod 774 /home/tmp/hl_xgy

 

登录u1用户,可以读tmp目录,可以新建文件也可以运行问题3中实现的可执行文件:

 

登录u2用户,可以读tmp文件,不可以新建文件,也不可以运行问题3中实现的可执行文件:

5、在上述执行过程中,打开另外一个终端界面,查看当前的进程,并kill当前的执行文件进程。

Ø  执行命令:ps -ef 查看进程并删除

6、退回到/home目录,把tmp目录压缩成gzA同学命名)和bz2B同学命名)格式并查看当前目录,把压缩文件通过设置的共享文件夹复制到window系统的文档中。

Ø  压缩执行命令:tar -zcvf xrj.tar.gz tmp/

tar -zcvf zy.tar.gz tmp/

Ø  复制到windows电脑:

安装 lrzsz工具apt-get install lrzsz将打包好的文件拷贝到windows

 

三.课程设计总结及收获

总结:这次课设让我受益匪浅,让我明白了学好 linux 不是一件一蹴而就的事,一定要能坚持使用它,特别是在使用初期,要增加自己的Linux技能,只有通过实践来实现。只要多动手,就一定会有收获。遇到问题时要自己去寻找答案,在寻找答案的过程中,会学到更多知识。由于在 linux 中,用户权限很大,做任何事情都很自由,所以,往往需要知道自己做的每一步在干什么,系统做了些什么,这需要时间去掌握,尽量掌握一些常用命令。应该说目前我们对于Linux的学习只是入门而已,学习Linux是一个长期的过程,很耗时间。作为电子信息工程专业的学生,对我们来说,Linux将来主要应用于嵌入式Linux系统的开发,这非一日之功,我们还需要不断深入地学习它。


未经允许不得转载:托米开发设计 » 《Linux技术与应用》课程设计
分享到: 更多 (0)

带给你想要内容

联系我们
QQ在线咨询
QQ咨询
QQ:181364310
QQ咨询
QQ:32112583
Hello,欢迎来咨询~
tmidev
tmidev
已为您复制好微信号,点击进入微信