linux原理与应用上机实验_第1页
linux原理与应用上机实验_第2页
linux原理与应用上机实验_第3页
linux原理与应用上机实验_第4页
linux原理与应用上机实验_第5页
免费预览已结束,剩余23页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课外实验:Linux系统的安装实验目的掌握Linux操作系统的安装步骤。掌握启动、关闭操作系统的方法。学会安装其它

的方法。实验内容从光盘安装Linux。从硬盘安装Linux。在硬盘上安装多个系统Linux、windows实验一:Linux系统管理实验目的掌握Linux系统的进入和退出。掌握Linux系统用户管理。掌握Linux系统文件系统管理。实验内容Linux的进入和退出用户和用户组管理文件系统管理挂载和卸载文件系统Linux的进入和退出进入系统login用户名:例如root口令:***退出系统logout

;exit

;Ctrl+D查看当前用户命令whoami(某些版本的linux可以是who)关机命令halt ;

shutdown注:符号#表示超级用户;符号$表示普通用户。Root是超级用户,对整个系统拥有一切权利。Linux命令对大小写是敏感的。用户管理每一个Linux系统上都有一个UID(User

ID)为0的特殊用户,被称作超级用户或令就行了。用者root用户。如果需要切换成root用户只需要键入su并输exit命令切换到原来的状态。增加用户账号useradd或adduser[root@local

host[root@local

host[root@local

host删除用户账号如:/]#adduser/]#Canoe/]#passwd

CanoeChanging

password

for

user

CanoeNe

ssword:…修改用户账号例:[root@local

host切换用户/]#usermod

–e

1/4/09

Canoe//用户Canoe在2009.4.1后失效#su

Canoe#su//若在超级用户下可以直接切换,否则提示需要root口令//切换到超级用户用户组管理用户组管理类似于用户管理增加、修改和删除用户组 令依次为#groupadd

[选项]

用户组名#groupmod

[选项] 用户组名#groupdel

[选项] 用户组名注:Linux命令常带有各种选项。选项一般用‘-’加字符串表示,选项可以组合使用。命令

–help可以获得帮助man

+

命令 可以获得更为详细的帮助文件系统管理安装文件系统mount卸载文件系统umount实验二:熟悉Linux常用命令1实验目的学习Linux常用命令的使用,管道命令,命令的重定向,命令组合。了解Unix类操作系统的文本工作方式。实验内容1创建一个文件file,查询其

属性,并修改其

属性为任何用户可读、可执行,属主用户可写;2创建该文件的软连接和硬连接分别为fileA和fileB,比较二者的差异;3创建新文件dir;改变

属性说明其属性与文件到属性各个标志位有什么不同;4将文件file拷贝到dir;5删除步骤1中创建的文件file;察看步骤2创建的软硬连接文件是否有效;实验二:熟悉Linux常用命令26

将dir下的file文件“剪切”(mv)到其上层 下;7查找文件file:find、locate;8将ls的结果按照文件名排序输出,重定向到文件result;9列出当前的所有进程;10

察看硬盘的剩余空间(使用情况);11

change

mod

,change

group。。。Linux常用命令举例ls

–l1创建一个文件file,查询其

属性,并修改其

属性为任何用户可读、可执行,属主用户可写;filename

//

显示文件权限。

文件权限|文件

数…|文件名od

777

filename

//

修改文件权限。只有文件属主或超级用户可以修改。od

755

filename2创建该文件的软连接和硬连接分别为fileA和fileB,比较二者的差异;filename//查看文件节点号fileAfileBfilenamefileA//看看会产生什么?ls

–i

filenamels

–slsrm软dir;改变

的的权限总是rwxrwxrwx。但实际上其权限是有

目标决定的。软连接通常用于为

或者设备文件增加名称。属性说明其属性与文件到属性各个标志位3创建新文件有什么不同;mkdir

canoels

–lod

777

canoels

-

l4将文件file拷贝到dir;cp

srcfile

desdir如:cp

fileB

canoe5删除步骤1中创建的文件file;察看步骤2创建的软硬连接文件是否有效;无效6将dir下的file文件“剪切”(mv)到其上层下;mv

canoe/fileB

../7查找文件file:find、locate;findfind要查找的文件或

//

当前

下查找直接输入find将打印当前

下所有各层次文件Linux常用命令举例8将ls的结果按照文件名排序输出,重定向到文件result;ls

|sort

–f>>result

或ls

–X

>>resultcat

result9列出当前的所有进程;ps -

A10

察看硬盘的剩余空间(使用情况);11改变文件权限和所属用户组改变文件/

权限参

面改变所属用户组

chgrp

–hR

root

filename实验三:熟悉Linuxvi的使用实验目的:学习Linux

vi编辑器的使用。实验内容进入和退出vi。利用文本

方式建立一个文件。在新建的文本文件上移动光标。在文本文件执行删除、复原、修改、替换操作。实验四:学习使用Linux系统调用1实验目的:学习使用Linux系统调用,加深对进程的理解。利用vi编辑器输入上述代码后,存盘退出,再用gcc编译执行。格式如下:gcc

源文件名 -

o

执行文件名最后,在s

提示符下输入./执行文件名就可执行该文件。实验四:学习使用Linux系统调用2实验内容:1使用Linux系统调用fork(),注意例子中的输出和变量结果。#include

<stdio.h>int

myvar=0;int

main(){int

pid;pid

=

fork();if

(pid

<

0

)

{//系统调用,创建进程//创建不成功,出错printf(“fork

failed.”);exit(1);//系统调用//子进程执行}else

if

(pid

==

0

)

{executing…\n”);}完成printf(“child

processmyvar

=

1;else{

//父进程执行wait();

//系统调用,等待子进程printf(“child

complete.”);myvar

++;myvar);

printf(“father,myvar=%d”,}

exit(0);}实验四:学习使用Linux系统调用3实验内容:2父进程继续等待从终端读入命令。char

command[256];void

main(){int

rtn;

/*子进程的返回数值*/while(1)

{

/*

从终端

要执行

*/从终端读入命printf(

">"

);fgets(command,

256,

stdin);令并执行之,command[strlen(command)-1]=0;if(fork()==0){/*子进程执行此命令执行完成后,*/execlp(mand);/*如果exec函数返回,表明没有正常执行令,打印错误信息*/perror(command);exit(errorno);命}else{/*父进程,等待子进程结束,并打印子进程的返回值

*/wait(&rtn);printf("child

process return

%d\n",.

rtn);}}}实验四:学习使用Linux系统调用4实验内容:3等待子进程结束。#include

<unistd.h>#include

<sys/types.h>#include

<sys/wait.h>#include

<stdio.h>#include

<stdlib.h>int

main(

void){pid_t

childpid;int

status;childpid

=

fork();if

(

-

1

==

childpid

){perror("fork()");exit(EXIT_FAILURE);}else

if

(0

==

childpid){puts("In

child

process");sleep(3);//让子进程睡眠3秒printf("\tchild

pid

=

%d\n",

getpid());printf("\tchild

ppid

=

%d\n",

getppid());exit(EXIT_SUCCESS);}else{waitpid(childpid,

&status,

0);puts("In

parent

process");printf("\tparent

pid

=

%d\n",

getpid());printf("\tparent

ppid=

%d\n",

getppid());printf("\tchild

process

exited

with

status

%d

\n",

status);}exit(EXIT_SUCCESS);实验四:学习使用Linux系统调用5实验内容:4进程终止。#include<stdlib.h>main(){printf("This

is

the

example

of

exit!\n");exit(0);printf("never

be

RUN!\n");}实验五:观察Linux行为1实验目的:学习Linux内核、进程、

和其他资源的一些重要特征。使用/proc机制检查反映机器平均负载、进程资源利用等方面的各种信息。并准备一个有关所观察到的累积行为的报告。实验五:观察Linux行为2实验内容:回答下列有关问题。如果 有好几台机器,那么选择一台来提供答案:CPU类型和型号;所使用的Linux内核版本;从系统最后一次启动以来已经经历了多长时间(天、小时和分);总共有多少CPU时间执行在用户态、系统态、空闲态;配置了多少内存;当前有多少可用内存;有多少磁盘读写请求;内核已经进行了多少次上下文转换;从系统启动以来,已经创建了多少进程?实验六:S

编程1实验目的:了解s的作用和主要分类。了解bash的一般语 则。能编写简单的s

程序。实验六:S

编程2实验内容:1配置你的s

环境显示你的当前工作改为上一级和HOME环境变量的值。把工作,再显示HOME的值。将工作

改回你的主

。显示你的PATH环境变量。将你建立

从PATH中删除,看看执行

时有何问题。将PS1变量置为你的

名。看环境变量有无变化。将PS1恢复成原来位置的值。显示.profile文件的内容,了解其大体功能。实验六:S

编程3实验内容:2在你的主下建立一个新的临时

,随便拷贝5个文件到该临时

下,用mv命令将这些文件名都变成大写,现在请你编个s

程序,将这些文件名都变成小写。实验七:Linux环境下C编程1

.

GCC

的使用(参考g

cc

使用手册)

http:/

/content/develop/GCC_zh.htm2.makefile的编写(参考跟我一起写makefile)或http

/41006.html3.Linux系统接口函数的使用(参考实验8)4.调试工具gdb的使用(参考gdb使用手册)ht

/edu/unix/2005/10/u031579.htmlLinux

Inter-ProcessCommunicationLinux下进程间通信的几种主要

简介:1.

管道(Pipe)及有名管道(namedpipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;2.

信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信

程还可以发送信号给进程本身;Linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够

对外接口,用sigaction函数重新实现了signal函数);3.

报文(Message)队列(消息队列):消息队列是消息的

表,包括Posix消息队列systemV消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。4.

共享内存:使得多个进程可以

同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。5.

信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步。6.

套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:Linux和System

V的变种都支持套接字。实验举例:共享内存机制#include

<stdio.h>#include

<stdlib.h>//exit()#include

<string.h># include

<sys/types.h># include<sys/ipc.h># include

<sys/shm.h>

#include

<errno.h>

//errno#include<sys/types.h>

//pid_t#include<unistd.h>

//pid_t

fork()#include<sys/stat.h>#define

PERM

S_IRUSR|S_IWUSR//数据、文件或int

main(

void){权限设置int

shmid;char

*

p_addr,

*

c_addr;key_t

ipckey;ipckey=

ftok(“./MemShared.c”,‘a’);//第一个参数为文件名或目录,必须存在实验举例:共享内存机制if((

shmid

=

shmget(ipckey,1024,IPC_CREAT|PERM))==-1){fprintf(stderr,

"

Create

Share

Memory

Error:\

n

%s\

n\

a

"

,strerror(errno));exit(

1

);}if

(fork()){p_addr

=

shmat(shmid,

0

, 0

);memset(p_addr,'\0',

1024

);strncpy(p_addr,"

",

20

);printf(

"The

string

of

pointer p_addr

is:

%s\

n

"

,p_addr);exit(

0

);}else{c_addr =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论