linux实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)通配符的使用
$ls [a-c]*和$ls [a,m,t]*命令
(3)重定向和管道的使用
ls | more
cat> file1.txt
(4)变量
(5)编辑并运行程序
1 fortest
#!/bin/bash
for a in x y z
do
echo now a=$a
done
2fortest1
#!/bin/bash
3、实验要求
(1)写出源程序,并编译运行
(2)详细记录程序调试及运行结果
(1)
图1:编写hello.c文件
Print.c
图2:编写print.c文件
Makefile
图3:编写Makefile文件
图4:用gcc编译
用gdb调试以及运行结果
(2)以下任选其一:
1,编写一个多进程通信程序,采用Message Queue或shared Memory或者Maped File机制进行通信
(2)编辑器vi的使用:使用vi建立并修改一个文本文件
(3)档案管理
rpm、gzip、tar等命令
(4)网络命令
telnet、ftp、talk
3、实验记录
1、在实验过程中,注意记录实验现象
2、使用过程体会、心得、技巧
4、实验截图
(1)常用命令:
(2)Vi编辑器的使用
(3)档案管理
实验3 Linux系统管理
} put(&buffer, OVER);
return NULL;
}
void *consumer(void *data)
{
int d;
while (1)
{
d = get(&buffer);
if (d == OVER)
break;
printf("--->%d \n", d);
}
return NULL;
int readpos, writepos;
pthread_cond_t notempty;
pthread_cond_t notfull;
};
void init(struct prodcons *b)
{
pthread_mutex_init(&b->lock, NULL);
pthread_cond_init(&b->notempty, NULL);
{
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);
2,编写一个多线程程序(pthread),实现2程同步互斥
#include <stdio.h>
#include <pthread.h>
#define BUFFER_SIZE 16
struct prodcons
{
//缓冲区相关数据结构
int buffer[BUFFER_SIZE];
pthread_mutex_t lock;
4、实验步逐
(1)在Windows XP下安装VMware 5.5
(2)配置虚拟机
(3)启动虚拟机
(4)启动Linux安装过程
(5)安装过程配置
(6)安装后配置
(7)第1次启动VMWare下Linux操作系统
5、实验记录
(1)记录详细安装过程
(2)安装过程中出现的问题及其解决措施
实验2 Linux基本操作
}
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);
ls | more
cat > test.txt
(4)变量
$lookup=/usr/mydir
$echo $lookup
$export lookup:让进程使用
(5)编辑并运行以下程序(shell程序控制结构)
1 fortest
#!/bin/bash
for a in x y z
do
echo now a=$a
#!/bin/bash
number=0
until (test $number–gt 5)
do
echo“$number”
number=`expr $number + 1`
done
3、实验要求
(1)每个shell程序事例运行多遍,并给不同参数
(2)详细记录程序调试及运行结果
(1)查看/etc/.profile文件:相当于DOS下autoexe.bat
pthread_join(th_b, &retval);
return 0;
}
实验6:Linux内核
i实验目的
(1)了解Linux操作系内核
(2)掌握内核编译和内核升级方法
(3)了解有关内核编程
ii 实验内容
(1)内核配置和编译(课后完成)
until (test $number–gt 5)
do
echo“$number”
number=`expr $number + 1`
done
实验5 Linux 高级程序设计
1、实验目的
(1)了解Linux操作系统下应用程序开发流程
(2)掌握gun工具链的使用
(3)了解Linux高级编程技巧(例如IPC机制、系统调用等)
for a
do
echo now a=$a
done
3functest
#!/bin/bash
setup()
{
echo setup…
}
do_date()
{
date
}
chgdir()
{
cd $1
}
do_date
setup
chgdir
4 paramtest
#!/bin/bash
echo filename:$0
done
2 fortest1
#!/bin/bash
for a
do
echo now a=$a
done
3 funcFra Baidu bibliotekest
#!/bin/bash
setup()
{
echo setup…
}
do_date()
{
date
}
chgdir()
{
cd $1
}
do_date
setup
chgdir
4 paramtest
#!/bin/bash
(2)使用过程体会、心得、技巧
(1)用户管理
adduser、useradd、passwd等
(2)文件系统管理
df、du命令使用
mount、umount命令使用:
安装usb盘或者光盘,
/etc/fstab文件
(3)存储器
(4)关机
halt、shutdown–h、init 0
reboot、shutdown -r now
2、实验内容
(1)编写一个简单的C语言程序,编写Makefile文件。了解编译过程,并用gdb进行调试。
(2)以下任选其一:
1.编写一个多进程通信程序,采用Message Queue或shared Memory或者Maped File机制进行通信
2.编写一个多线程程序(pthread),实现2程同步互斥
(2)掌握Linux Shell程序基本语法
(3)了解Linux环境变量
(3)编写简单Linux shell程序
2、实验内容
(1)查看/etc/.profile文件:相当于DOS下autoexe.bat
(2)通配符“*”、“?”、“[]”的使用
$ls [a-c]*和$ls [a,m,t]*命令
(3)重定向和管道的使用
并比较它们之间的差别
halt:---------------
halt会先检测系统的runlevel。若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。
shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。
reboot重新开机。
Halt实际上调用了shutdown -h,shutdown命令安全地将系统关机,-h指定延时时间,init 0改变的是系统的级别。
}
int main(void)
{
pthread_t th_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);
1、实验目的
(1)掌握Linux基本系统管理命令
(2)掌握基本管理方法
(3)初步了解Linux中与系统管理相关的有关配置文件
2、实验内容
(1)用户管理
adduser、useradd、passwd等
观察:/etc/passwd文件
(2)文件系统管理
df、du命令使用
mount、umount命令使用:安装usb盘或者光盘,查看分析/etc/fstab文件
pthread_mutex_unlock(&b->lock);
}
int get(struct prodcons *b)
{
int data;
pthread_mutex_lock(&b->lock);
if (b->writepos == b->readpos)
{
pthread_cond_wait(&b->notempty, &b->lock);
echo arguments:$*
echo number arg:$#
echo arg2:$2
shift
echo number arg:$#
echo arg2:$2
set hello,everone
echo args:$*
echo arg2:$2
5 untiltest
#!/bin/bash
number=0
(3)存储器
free:了解存储器使用情况
(4)关机
halt、shutdown–h、init 0
reboot、shutdown -r now
并比较它们之间的差别
(5)网络配置
netconfig的使用
(6)启动配置
/etc/inittab:查看、修改并观察其响应
3、实验记录
(1)在实验过程中,注意记录实验现象
echo filename:$0
echo arguments:$*
echo number arg:$#
echo arg2:$2
shift
echo number arg:$#
echo arg2:$2
set hello,everone
echo args:$*
echo arg2:$2
5 untiltest
Reboot调用shutdown。Shutdown -h指定延时时间。
(5)网络配置
(6)启动配置
把里面中间的id从5改成3,表示将启动方式由图形化界面改成命令行启动(想用图形化界面的话,改成5即可):
系统重新启动后的界面:
实验4 Linux Shell程序设计
1、实验目的
(1)掌握Linux shell程序运行方法
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等
pthread_cond_init(&b->notfull, NULL);
b->readpos = 0;
b->writepos = 0;
}
void put(struct prodcons *b, int data)
{
pthread_mutex_lock(&b->lock);
if ((b->writepos + 1) % BUFFER_SIZE == b->readpos)
return data;
}
#define OVER ( - 1)
struct prodcons buffer;
void *producer(void *data)
{
int n;
for (n = 0; n < 10000; n++)
{
printf("%d --->\n", n);
put(&buffer, n);
Linux实验报告
学 院: 信息科学与工程学院
班 级:计科0908班
姓 名:郭 豪
学 号:0909093211
指导老师:胡小龙
完成日期:2012.6.1
实验一 Linux的安装
1、实验目的
(1)了解硬盘分区的概念和方法;
(2)掌握硬盘的分区规划;
(3)掌握Linux操作系统的安装和配置过程。
2、实验设备
一台pc机、RedHat Linux 7.2以上版本、VMware Workstation v5.5
3、实验原理
Linux可以以多种方式安装在PC机上:(1)独立分区安装、(2)DOS分区安装和(3)虚拟机VMWare下安装。鉴于VMware下安装对原来系统影响较小且不影响本实验目的,因此采用VMWare下安装方式。
相关文档
最新文档