中南大学 Linux系统实验报告.docx
- 文档编号:8244900
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:26
- 大小:1.21MB
中南大学 Linux系统实验报告.docx
《中南大学 Linux系统实验报告.docx》由会员分享,可在线阅读,更多相关《中南大学 Linux系统实验报告.docx(26页珍藏版)》请在冰豆网上搜索。
中南大学Linux系统实验报告
CENTRALSOUTHUNIVERSITY
Linux系统及应用实验报告
学生姓名
班级
学号
指导教师胡小龙
实验时间2014年11月
实验一Linux的安装(课后)
1、实验目的
(1)了解硬盘分区的概念和方法;
(2)掌握硬盘的分区规划;
(3)掌握Linux操作系统的安装和配置过程。
2、实验设备
一台pc机、RedHatLinux7.2以上版本、VMwareWorkstationv5.5
3、实验原理
Linux可以以多种方式安装在PC机上:
(1)独立分区安装;
(2)DOS分区安装;(3)虚拟机VMWare下安装。
鉴于VMware下安装对原来系统影响较小且不影响本实验目的,因此采用VMWare下安装方式。
4、实验步逐
(1)在WindowsXP下安装VMware5.5
(2)配置虚拟机
(3)启动虚拟机
(4)启动Linux安装过程
(5)安装过程配置
(6)安装后配置
(7)第1次启动VMWare下Linux操作系统
5、实验记录
(1)记录详细安装过程
(2)安装过程中出现的问题及其解决措施
Linux安装过程:
(1)语言选择:
(2)键盘配置:
(3)鼠标配置:
(4)选择安装还是升级:
(5)安装类型:
(6)磁盘分区设置:
(7)为系统分区:
(8)添加分区:
(9)引导装载程序配置:
(10)网络配置:
(11)防火墙配置:
(12)语言支持的选择:
(13)时区配置:
(14)设置根口令
(15)选择软件包组:
(16)准备安装:
应该看到一个安装RedHatLinux做准备的屏幕。
当你重新引导系统后,一份完整的安装日志可在/root/install.log中找到,以备今后参考。
要取消安装进程,按计算机的重新启动按钮,或者使用[Control]-[Alt]-[Delete]组合键来重启计算机。
(17)安装软件包:
(18)创建引导盘:
(19)视频卡配置:
(20)配置显示器:
(21)定制配置:
(22)安装完成
实验2Linux基本操作
1、实验目的
(1)复习Linux基本命令
(2)掌握常用Linux命令
2、实验内容
(1)练习命令行模式下的常用命令:
man:
命令帮助
ALT-Fx:
虚终端切换
常用命令:
cat、Ls、ps、chmod、kill、ln、cp、mv、rm、cd、pwd、mkdir、chown、who、w、wc、whoami、date、uname等
(2)编辑器vi的使用:
使用vi建立并修改一个文本文件
(3)档案管理:
rpm、gzip、tar等命令
(4)网络命令:
telnet、ftp、talk
3、实验记录
(1)在实验过程中,记录到的实验现象:
系统启动
1、Manls
按q退出
2、redhat有七个终端控制台,其中前六个为命令行模式,第七个是图形界面,按Ctrl+Alt+Fx(1~7)可互相切换。
如图可知,以root用户的身份登录了终端控制台。
3、w、who、whoami命令
查看当前登录主机的所有用户
4、date命令查看时间,uname查看系统与内核的相关信息
5、查看自己的bash相关进程:
ps–l
6、用root的身份在所有人都可以工作的/tmp目录中新建一个名为testing的目录,(在此查看自己的路径)该目录的权限为744且目录拥有者为root。
另外,在testing目录下再新建一个空文件。
尝试用VI编辑器修改其内容(用到的命令:
cd、mkdir、chmod、touch、pwd)
7、在/tmp下建立一个文件a、并用VI编辑器编辑其内容,用cp将其内容复制至b文件中。
然后移动文件至新建目录、/tmp/test下,最后删除该文件
A文件中的内容
将A中的内容复制至B中
上图为B中内容,复制成功
将A文件移动至新建目录test下,最后删除了文件A
8、rpm命令Linux是否安装logrotate软件,并且列出属于该软件所提供的所有目录和文件
9、将/etc/man.config复制到/tmp中,并且以gzip压缩
10、使用tar备份/etc/man.config目录
11、由于本机网络配置及其软件下载问题,导致网络设置命令无法成功实现
(2)使用过程体会、心得、技巧
从安装VM,到接触RedHat。
到对命令行模式的极端不适应,再到慢慢体味出在黑乎乎上的控制台上“肆意”操作的快意和喜悦。
这时候我才体味出Linux命令的博大精深,目前我只是接触了一些非常简单的命令,(正则表达式这方面我还是不太熟悉)遇到问题是还是没发好好利用man。
但是我最基本的操作命令有了一个入门,我相信再以后的日子里经过我的努力,我一定会拿下。
实验3Linux系统管理
1、实验目的
(1)掌握Linux基本系统管理命令
(2)掌握基本管理方法
(3)初步了解Linux中与系统管理相关的有关配置文件
2、实验内容
(1)用户管理
adduser、useradd、passwd等
观察:
/etc/passwd文件
(2)文件系统管理
df、du命令使用
mount、umount命令使用:
安装usb盘或者光盘,查看分析/etc/fstab文件
(3)存储器
free:
了解存储器使用情况
(4)关机
halt、shutdown–h、init0
reboot、shutdown-rnow
并比较它们之间的差别
(5)网络配置
netconfig的使用
(6)启动配置
/etc/inittab:
查看、修改并观察其响应
3、实验记录
(1)在实验过程中,注意记录实验现象
A、用户管理
建立新的用户:
gang,并且设置密码
B、文件系统管理
分别用df–h将容量结果以易读的容量格式显示出来,用du显示出了/etc/man.config的内容。
挂载了用来安装linux的原版光盘,用df查看后,解除了挂载
C、存储器
Free命令
D、关机
基本上,在默认的情况下,这几个命令都会完成一样的工作(因为halt会先调用shutdown,而shutdown最后会调用halt)。
不过,shutdown可以依据目前启动的服务来逐次关闭各服务后才关机;至于halt却能够在不理会目前系统状况下,进行硬件关机的特殊功能。
F、启动配置
修改/etc/inittab中的内容会决定liunx启动后是否启动图形界面。
实验4LinuxShell程序设计
1、实验目的
(1)掌握Linuxshell程序运行方法
(2)掌握LinuxShell程序基本语法
(3)了解Linux环境变量
(3)编写简单Linuxshell程序
2、实验内容
(1)查看/etc/.profile文件:
相当于DOS下autoexe.bat
(2)通配符“*”、“?
”、“[]”的使用
$ls[a-c]*和$ls[a,m,t]*命令
(3)重定向和管道的使用
ls|more
cat>test.txt
(4)变量
$lookup=/usr/mydir
$echo$lookup
$exportlookup:
让进程使用
(5)编辑并运行以下程序(shell程序控制结构)
1、fortest
#!
/bin/bash
forainxyz
do
echonowa=$a
done
2、fortest1
#!
/bin/bash
fora
do
echonowa=$a
done
3、functest
#!
/bin/bash
setup()
{
echosetup…
}
do_date()
{
date
}
chgdir()
{
cd$1
}
do_date
setup
chgdir
4、paramtest
#!
/bin/bash
echofilename:
$0
echoarguments:
$*
echonumberarg:
$#
echoarg2:
$2
shift
echonumberarg:
$#
echoarg2:
$2
sethello,everone
echoargs:
$*
echoarg2:
$2
5、untiltest
#!
/bin/bash
number=0
until(test$number–gt5)
do
echo“$number”
number=`expr$number+1`
done
3、实验要求
(1)每个shell程序事例运行多遍,并给不同参数
(2)详细记录程序调试及运行结果
4、实验结果
程序调试及运行结果如下:
实验5Linux高级程序设计
1、实验目的
(1)了解Linux操作系统下应用程序开发流程
(2)掌握gun工具链的使用
(3)了解Linux高级编程技巧(例如IPC机制、系统调用等)
2、实验内容
(1)编写一个简单的C语言程序,编写Makefile文件。
了解编译过程,并用gdb进行调试。
#include
intmain(void)
{
printf("HelloWorld!
");
}
调试:
gcchelloworld.c
a.out
(2)以下任选其一:
1、编写一个多进程通信程序,采用MessageQueue或sharedMemory或者MapedFile机制进行通信
2、编写一个多线程程序(pthread),实现2程同步互斥
源代码:
#include
#include
#defineBUFFER_SIZE16
structprodcons
{
//缓冲区相关数据结构
intbuffer[BUFFER_SIZE];
pthread_mutex_tlock;
intreadpos,writepos;
pthread_cond_tnotempty;
pthread_cond_tnotfull;
};
voidinit(structprodcons*b)
{
pthread_mutex_init(&b->lock,NULL);
pthread_cond_init(&b->notempty,NULL);
pthread_cond_init(&b->notfull,NULL);
b->readpos=0;
b->writepos=0;
}
voidput(structprodcons*b,intdata)
{
pthread_mutex_lock(&b->lock);
if((b->writepos+1)%BUFFER_SIZE==b->readpos)
{
pthread_cond_wait(&b->notfull,&b->lock);
}
b->buffer[b->writepos]=data;
b->writepos++;
if(b->writepos>=BUFFER_SIZE)
b->writepos=0;
pthread_cond_signal(&b->notempty);
pthread_mutex_unlock(&b->lock);
}
intget(structprodcons*b)
{
intdata;
pthread_mutex_lock(&b->lock);
if(b->writepos==b->readpos)
{
pthread_cond_wait(&b->notempty,&b->lock);
}
data=b->buffer[b->readpos];
b->readpos++;
if(b->readpos>=BUFFER_SIZE)
b->readpos=0;
pthread_cond_signal(&b->notfull);
pthread_mutex_unlock(&b->lock);
returndata;
}
#defineOVER(-1)
structprodconsbuffer;
void*producer(void*data)
{
intn;
for(n=0;n<10000;n++)
{
printf("%d--->\n",n);
put(&buffer,n);
}put(&buffer,OVER);
returnNULL;
}
void*consumer(void*data)
{
intd;
while
(1)
{
d=get(&buffer);
if(d==OVER)
break;
printf("--->%d\n",d);
}
returnNULL;
}
intmain(void)
{
pthread_tth_a,th_b;
void*retval;
init(&buffer);
pthread_create(&th_a,NULL,producer,0);
pthread_create(&th_b,NULL,consumer,0);
pthread_join(th_a,&retval);
pthread_join(th_b,&retval);
return0;
}
3、实验要求
(1)写出源程序,并编译运行
(2)详细记录程序调试及运行结果
实验6Linux内核
1、实验目的
(1)了解Linux操作系内核
(2)掌握内核编译和内核升级方法
(3)了解有关内核编程
2、实验内容
(1)内核配置和编译(课后完成)
(2)察看/proc内存文件系统下的文件,写出每个目录内容
(3)编写一个简单的字符虚拟设备程序(以模块方式编译、加载、使用)
structfile_operationsstatus_fops={
NULL,/*seek*/
read_status,
write_status,
NULL,/*readdir*/
NULL,/*poll*/
NULL,/*ioctl*/
NULL,/*mmap*/
open_status,
NULL,/*flush*/
close_status,
NULL,/*fsync*/
NULL,/*fasync*/
NULL,/*check_media_change*/
NULL,/*revalidate*/
NULL,/*lock*/
};
创建这个设备:
mknod/dev/statusc
staticintmajor_number=0;/*passamajorof0toregister_chrdev*fordynamicallocation*/
intinit_module(void)
{
major_number=register_chrdev(0,"status",&status_fops);
if(major_number<0){
printk(KERN_WARNING"Dynamicallocationofmajorfailed");
returnmajor_number;/*returnerrorcode*/
}
printk(KERN_INFO"Assignedmajornumber%i.\n",major_umber);
return0;
}
intcleanup_module(void)
{printk(KERN_INFO"Unregisteringmajornumber%i.\n",major_number);
unregister_chrdev(major_number,"status");/*givebackournumber*/
return0;}
staticssize_twrite_status(structfile*file,constchar*buffer,size_tcount,
loff_t*ppos)
{return-EINVAL;/*we’vedecidednottosupportwritesfornow*/
}
staticintopen_status(structinode*inode,structfile*file)
{MOD_INC_USE_COUNT;/*ensuresthatcurrentlyusedmodulesaren’tunloaded*/
return0;
}
staticintclose_status(structinode*inode,structfile*file)
{
MOD_DEC_USE_COUNT;/*rmmodwon’trununlessUSE_COUNTis0*/
return0;
}
staticchar*message="Allyourbasearebelongtous.";
staticssize_tread_status(structfile*file,char*buffer,size_tcount,loff_t*ppos)
{
intchar_count=0;
intcount_to_copy=0;
while(message[char_count]!
='\0')char_count++;
count_to_copy=(char_count>count)?
count:
char_count;
copy_to_user(buffer,message,count_to_copy);/*writetotheuser-spacebuffer*/
returnchar_count;
}
3、实验要求
(1)给出源程序
(2)记录调试过程和运行结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南大学 Linux系统实验报告 中南 大学 Linux 系统 实验 报告