1. linux常用的命令一定要熟练掌握。
2.掌握linux软件包的常用安装方法,例如源码安装,rpm方式安装等等。
3.学习安装设备驱动程序(比如网卡、显卡驱动)
4.熟悉Grub/Lilo引导程序及简单的修复操作。
5.熟悉Linux文件系统和目录结构以及linux基本运行原理。
6.掌握vi,gcc,gdb等常用编辑器,编译器,调试器。
7.理解shell别名、I/O重定向、输入和输出以及shell简单脚本编程。
8.学习Linux环境下的网络基本组建。
课程设计为2人一组,在Linux操作系统Ubuntu或redhat完成下列内容,把正确的结果附在报告后面。
具体要求如下:
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、实现上述功能之后,新建用户u1和u2,把u1加入到root组内,对于u1用户可以读tmp目录,可以新建文件也可以运行问题3中实现的可执行文件,u2用户可以读tmp文件,不可以新建文件,也不可以运行问题3中实现的可执行文件。
5、在上述执行过程中,打开另外一个终端界面,查看当前的进程,并kill当前的执行文件进程。
6、退回到/home目录,把tmp目录压缩成gz(A同学命名)和bz2(B同学命名)格式并查看当前目录,把压缩文件通过设置的共享文件夹复制到window系统的文档中。
1、运行环境
VMWare可运行在Windows(WinNT以上)和Linux操作系统上。
Virtaul PC可运行在Windows(Win98以上)和MacOS上。
2、硬件需求
虚拟机是将两台以上电脑任务集成到一台电脑上来,因此对硬件要求比较高,主要是内存,硬盘和cpu;内存要足够大,因为每个虚拟机都会占用一定的内存资源,内存的总大小等于各个虚拟系统的总和。
Ø 执行命令: 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、实现上述功能之后,新建用户u1和u2,把u1加入到root组内:
Ø 执行命令: useradd -m u1;useradd -m u2
chmod 774 /home/tmp/hl_xgy
登录u1用户,可以读tmp目录,可以新建文件也可以运行问题3中实现的可执行文件:
登录u2用户,可以读tmp文件,不可以新建文件,也不可以运行问题3中实现的可执行文件:
5、在上述执行过程中,打开另外一个终端界面,查看当前的进程,并kill当前的执行文件进程。
Ø 执行命令:ps -ef 查看进程并删除
6、退回到/home目录,把tmp目录压缩成gz(A同学命名)和bz2(B同学命名)格式并查看当前目录,把压缩文件通过设置的共享文件夹复制到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系统的开发,这非一日之功,我们还需要不断深入地学习它。