Linux实验指导书

Linux实验指导书
Linux实验指导书

Linux程序设计

实验指导书

计算机应用系

2012年11月

实验一:Linux常用命令及编程环境

1.实验相关知识简述

Unix/Linux环境下使用C语言程序开发的项目主要经历设计、开发、调试、集成、部署和维护几个阶段。目前典型的开发环境,主要使用vi、emacs、gedit等文字编辑工具完成源代码的编辑工作;通过指定不同的GCC编译器编译选项指定编译结果,根据编译器提示改正程序中的语法错误,最终生成符合目标要求的可执行二进制文件;当可执行文件执行结果与预期结果不一致时,使用GDB调试器跟踪程序执行过程,查看中间变量,改正源程序中存在的逻辑错误。在大型项目管理中,由于文件较多,整个编译过程费时较长,安装、调试难度较大。为解决手工管理效率低下的问题,引入Make工具,将项目编译、安装、维护等工作以脚本的形式组织在Makefile中,从而简化项目维护成本。手工编写Makefile脚本难度较大且不利于统一规范,推荐使用Autotools工具集直接生成。本实验仅设置手工编辑、编译Linux C源代码,生成可执行文件并调试。

GNU CC(简称为GCC)是GNU 项目中符合ANSI C 标准的编译系统,能够编译用C、C++和Object C 等语言编写的源程序。GCC也可理解为一个工具集合,包含多个编译相关工具,如gcc编译C语言源程序,g++编译C++语言源程序,ld链接器等。在编译C语言程序时,可直接使用gcc指令通过配置不同的参数选项达到指定GCC工具集的目的。

GCC的常用选项如表1.1所示

表1.1 GCC常用选项

功能选项描述

与编译相关的GCC 选项-c 只是编译不链接,生成目标文件“.o”

-S 只是编译不汇编,生成汇编代码

-E 只进行预编译,不做其他处理

-g 在可执行程序中包含标准调试信息

-o file 把输出文件输出到file 里

-v 打印出编译器内部编译各过程的命令行信息和编译器的版本-I dir 在头文件的搜索路径列表中添加dir 目录

-L dir 在库文件的搜索路径列表中添加dir 目录

-static 链接静态库

-llibrary 连接名为library 的库文件

报警与出错相关的-ansi 支持符合ANSI 标准的C 程序

-pedantic 允许发出ANSI C 标准所列的全部警告信息

GCC选项-pedantic-error 允许发出ANSI C 标准所列的全部错误信息

-w 关闭所有告警

-Wall 允许发出Gcc 提供的所有有用的报警信息

-werror 把所有的告警信息转化为错误信息,并在告警发生时终止编

译过程

与体系结构相关的GCC选项-mcpu=type 针对不同的CPU 使用相应的CPU 指令。可选择的type 有i386、i486、pentium 及i686 等

-mieee-fp 使用IEEE 标准进行浮点数的比较

-mno-ieee-fp 不使用IEEE 标准进行浮点数的比较

-msoft-float 输出包含浮点库调用的目标代码

-mshort 把int 类型作为16 位处理,相当于short int

-mrtd 强行将函数参数个数固定的函数用ret NUM 返回,节省调用函数的一条指令

使用GCC注意事项:

1)GCC指令的一般格式为:Gcc [选项] 需编译的文件[选项] [目标文件] ,其中,目标文件可缺省,GCC默认生成可执行的文件名为a.out。执行时时使用指令./a.out;

2)在include 语句中,“<>”表示在标准路径中搜索头文件,““””表示在当前目录中搜索。

故代码中使用“#include”,就需要添加GCC编译选项“-I”指定myhead.h 所在路径;

3)选项“-L dir ”的功能与“-I dir”类似,在编译时指定所需库文件路径,-l指定相应的库名称。Linux下的库文件命名时规定:必须以lib字母组合开头,后接库名称。因此用-l 选项指定链接库名为libsunq.so ,在命令中选项写为-lsunq;

GDB调试相关命令汇总如表1.2所示

表1.2 GDB相关命令汇总

功能命令描述

单步执行与函数跟踪backtrace(或bt)查看各级函数调用及参数

finish 执行到当前函数返回,然后停下来等待命令

frame(或f)帧编号选择栈帧

info(或i)locals 查看当前栈帧局部变量的值

list(或l)列出源代码,接着上次的位置往下列,每次列10行list 行号列出从第几行开始的源代码

list 函数名列出某个函数的源代码

next(或n)执行下一行语句

print(或p)打印表达式的值,通过表达式可以修改变量的值或者

调用函数

set var 修改变量的值

start 开始执行程序,停在main函数第一行语句前面等待命

step(或s)执行下一行语句,如果有函数调用则进入到函数中

断点break(或b)行号在某一行设置断点

break 函数名在某个函数开头设置断点

break...if... 设置条件断点

continue(或c)从当前位置开始连续而非单步执行程序

delete breakpoints 删除断点

display 变量名跟踪查看一个变量,每次停下来都显示它的值

disable breakpoints 禁用断点

enable breakpoints 启用断点

info(或i)breakpoints 查看当前设置了哪些断点

run(或r)从头开始连续而非单步执行程序

undisplay 取消对先前设置的那些变量的跟踪

观察点watch 设置观察点

info(或i)watchpoints 查看当前设置了哪些观察点

x 从某个位置开始打印存储器的一段内容,全部当成字

节来看,而不区分哪些字节属于哪些变量

GDB使用注意事项:

1)在Gcc 编译选项中一定要加入“-g”;

2)只有在代码处于“运行”或“暂停”状态时才能查看变量值;

3)设置断点后程序在指定行之前停止;

2.实验目的

1)掌握Linux C开发过程中的基本概念;

2)掌握如GCC,GDB等开发工具的使用;

3.实验内容

将参考代码录入到greet.c文件中,编译执行后发现结果与预期不一致,请使用GDB调试,完成字符串反序输出功能;

4.参考代码

5.实验扩展思考

1)如何使用GCC将一组功能相关的源文件编译成相应库文件(静态库或动态库自行选择),并使用代码形式演示如何使用编译好的库?

2)分析以下代码,完成指定范围内数值累加功能:

#include

int add_range(int low, int high)

{

int i, sum;

for (i = low; i <= high; i++)

sum = sum + i;

return sum;

}

int main(void)

{

int result[100];

result[0] = add_range(1, 10);

result[1] = add_range(1, 100);

printf("result[0]=%d\nresult[1]=%d\n", result[0], result[1]);

return 0;

}

实验二:文件I/O操作

1.实验相关知识简述

“文件”是Unix/Linux平台的核心概念之一。广义理解,可将普通文件、目录、设备、管道……均视为文件(Everything is File);狭义理解,文件仅代表普通文件。涉及具体上下文时,需要结合语义对其进行区分。

Unix/Linux相关文件系统在组织文件时,将文件的数据与属性分离。目录文件中记录子目录及所属文件的文件名和相应i节点,由i节点记录相应的数据存储位置及文件属性。针对文件内容时行操作时,一般需要经历步骤为:打开/创建文件→操作文件→关闭文件。

打开/创建文件推荐使用系统调用open,若仅需新建文件,亦使用creat系统调用,但creat 不负责打开文件。为保证程序运行时无异常发生,程序员必须对open返回值进行判断,若返回值为-1意味着文件打开失败,其原因或为进程已打开的文件数目超出可打开文件的最大值,或为相应路径下无对应文件(注意:Unix/Linux文件名区分大小写);当open调用成功时,将返回一个由内核管理生成的非负整型数值,对应术语为文件描述符(File Descriptor)。对文件内容操作时,文件描述符将自动维护文件读写指针。换句话说,多个进程可同时打开一个文件,并在各自的文件读写指针位置进行相应操作,程序员有责任对其进行合理规划,以保证数据有效性。

进程创建时,Linux内核将值为0,1,2这三个文件描述符预分配给标准输入设备、输出设备和错误输出设备。若使用dup系统调用,可干预内核分配文件描述符,从而达到文件重定向的目的。

open语法要点如表2.1所示:

表2.1 open语法要点

头文件#include #include #include

功能打开或创建文件

函数原型int open(const char* path, int flags)

int open(const char* path, int flags, int perms)

参数说明path 需打开或创建的文件路径名

flags 文件打开方式:

O_RDONLY:只读方式

O_WRONLY:只写方式

O_RDWR:读写方式

O_CREAT:如果文件不存在就创建文件,并以参数perms设置

文件权限

O_EXCL:测试文件是否存在,如果O_CREAT创建文件时,文

件已存在则返回错误消息

O_TRUNC:如果文件存在,打开文件后将已存在的文件内容删

除,并定位于文件开始处

O_APPEND:打开文件,在尾部添加内容

perms 新建文件时以八进制方式设置文件权限属性,只用于读或写时此参数可省略

函数返回值成功:返回打开或新建文件的文件描述符失败:-1

文件内容读写时,内核负责内存与文件所在存储设备之间的数据流动。程序员负责规划代表文件读或写时使用的缓冲区大小与类型,其类型设置,通常与操作的目标文件类型相关。l 当操作以二进制为单位存储的文件时,内存缓冲多使用byte类型数组;

l 在操作以字符为单位的存储文件时,内在缓冲多使用char类型数组;

注意:若违反文件编码方案,文件内容显示乱码;

表2.2 read语法要点

头文件#include

函数原型ssize_t read(int fd, void* buffer, size_t len)

功能读取文件内容

函数参数fd 所读文件的文件描述符buffer 存放文件读取内容的缓冲len 缓冲长度

函数返回值成功:返回实际读取的字节数(不大于len),0表示到达文件结束位置; 失败:-1

表2.3 write 语法要点

头文件#include

函数原型ssize_t write(int fd, void* buffer, size_t len) 功能写文件内容

函数参数fd 所写文件的文件描述符buffer 需写入文件的内容缓冲len 缓冲长度

函数返回值成功:返回实际实际写入文件的字节数(=len); 失败:-1

文件定位系统调用lseek实现文件读写指针在文件中移动。移动过程由文件读写指针当前位置及偏移量两部分组成。偏移量为正,表示从当前位置向后移动。若超出文件大小时,将出

现“空洞”;偏移量为负,表示从当前位置向前移动,若超出文件开始位置,将定位于文件开始位置;

表2.4 lseek语法要点

头文件#include

#include

函数原型off_t lseek(int fd, off_t offset, int whence) 功能文件读写指针定位

函数参数fd 所需定位文件的文件描述符

offset 针对whence的偏移量

>0,向后

<0,向前

whence 偏移时的基点

SEEK_SET:文件开头

SEEK_CUR:文件读或写的当前位置

SEEK_END:文件结束位置

函数返回值成功:偏移量; 失败:-1

文件关闭close系统调用将通知内核实现内存与文件存储设备实现数据同步,并释放与此文件描述符相关的数据结构。

表2.5 close语法要点

头文件#include

函数原型int close(int fd)

参数说明fd 需关闭的文件描述符

函数返回值成功:返回0 失败:-1

2.实验目的

1)掌握Linux中系统调用、文件描述符的基本概念;

2)掌握文件I/O的基本系统调用,如open, read, write, lseek, close等;

3.实验内容

将源文件中最后10KB字节拷贝到目标文件中;

4.参考代码

5.实验扩展思考

1)文件进行拷贝操作时,程序设置缓冲大小对文件读写效率有何影响?如何确定缓冲大小?请使用代码验证?

2)文件定位时偏移量出现以下异常情况,如文件大小为50KB,当前读写位置于25KB时,若向前或向后偏移30KB时,lseek如何处理?

3)目前网络环境下载文件常使用多线程下载工具,若使用实验中涉及文件I/O,请使用伪代码简要说明设计思路?

实验三:文件属性及目录操作

1.实验相关知识简述

Linux平台上将目录当作一种特殊的文件进行处理,目录文件以记录的形式存储子目录或文件的i节点及对应的文件名。为方便实现类UNIX操作系统间的程序移植,提供目录文件操作函数,如opendir, readdir, seekdir和closedir等。目录文件记录以数据结构struct dirent保存,其结构体定义如表3.1所示。i节点的主要作用是记录文件属性及其数据存储于文件系统中的位置,其结构体定义如表3.2所示。

表3.1 目录相关操作的核心数据结构:struct dirent

头文件#include

功能dirent结构体代表目录文件中的目录项

数据结构struct dirent {

ino_t d_ino; /* inode number */

off_t d_off; /* offset to the next dirent */

unsigned short d_reclen; /* length of this record */

unsigned char d_type; /* type of file; not supported by all file

system types */

char d_name[256]; /* filename */

};

表3.2 文件属性核心数据结构struct stat

头文件#include

功能stat结构体代表文件的属性集合

数据结构struct stat {

dev_t st_dev; /* ID of device containing file */

ino_t st_ino; /* inode number */

mode_t st_mode; /* protection */

nlink_t st_nlink; /* number of hard links */

uid_t st_uid; /* user ID of owner */

gid_t st_gid; /* group ID of owner */

dev_t st_rdev; /* device ID (if special file) */

off_t st_size; /* total size, in bytes */

blksize_t st_blksize; /* blocksize for file system I/O */

blkcnt_t st_blocks; /* number of 512B blocks allocated */

time_t st_atime; /* time of last access */

time_t st_mtime; /* time of last modification */

time_t st_ctime; /* time of last status change */ };

本实验中涉及关键函数及语法如下所示:

表3.3 目录操作函数语法要点

头文件#include #include

函数原型打开目录文件

DIR opendir(const char* dirname) 返回目录中的当前目录项struct dirent* readdir(DIR* dirp) 关闭目录文件

int closedir(DIR* dirp);

参数说明dirname 目录文件路径dirp 目录文件指针

函数返回值opendir返回值非空代表打开目录成功,返回目录流指针(DIR*);当返回为NULL表示目录打开失败,errno重置,失败主要原因如下:

EACCES Permission denied.

EBADF fd is not a valid file descriptor opened for reading.

EMFILE Too many file descriptors in use by process.

ENFILE Too many files are currently open in the system.

ENOENT Directory does not exist, or name is an empty string.

ENOMEM Insufficient memory to complete the operation.

ENOTDIR name is not a directory.

readdir成功时返回指向目录项(struct dirent)指针,返回NULL表示已读取到目录流结尾

closedir执行成功,返回0;失败:-1

表3.4 stat操作要点

头文件#include

功能获取文件属性

函数原型int stat(char* fname, struct stat* bufp);

参数说明fname 文件名

bufp 指向stat结构体的指针

函数返回值成功:返回0;失败:-1

头文件中,通过掩码定义实现POSIX 支持的若干种文件类型判断,其判断基础为struct stat 中st_mode 成员(如图3.1所示)

图3.1 文件类型及许可权限

对应文件类型判定宏为如下所示: S_ISREG(m) is it a regular file? S_ISDIR(m) directory? S_ISCHR(m) character device? S_ISBLK(m) block device? S_ISFIFO(m) FIFO (named pipe)?

S_ISLNK(m) symbolic link? (Not in POSIX.1-1996.) S_ISSOCK(m) socket? (Not in POSIX.1-1996.)

2.实验目的

1)理解Linux 中的目录及i 节点等基本概念;

2)掌握目录的读写时常用的函数,如opendir, readdir, closedir 等; 3)掌握文件属性的读取方法,如stat ; 4)掌握掩码技术,可实现对比特位操作;

3.实验内容

可识别用户输入路径对应文件的类型,若为目录则读取相应子目录及文件名;若为文件,则读取其i 节点号和文件大小属性;

u g s r w x r w x r w x

type

user

group

other

suid sgid sticky

4.参考代码

5.实验扩展思考

1)目录在Linux平台被认为是一种文件类型,能否使用文件I/O系统调用,如open,read,

write,close进行目录操作?如果能,为何还提供诸如opendir等函数定义,这些实现有何意义?

2)在本实验的基础之上进行改进,要求递归打印指定目录下所有子目录的文件名?

3)总结掩码实现比特位操作时,置位操作和清零操作的具体实现表达式?

实验四:进程控制

1.实验相关知识简述

进程代表一个程序的一次执行过程,是一个动态的概念,涉及程序运行时执行状态和所使用的资源的管理。在进程控制中,进程主要以三种状态出现:就绪、执行和阻塞,其转换关系如4.1所示。

就绪

运行阻塞

时间片到

调度因等待资源分配而唤醒

因等待资源而阻塞

图4.1 进程状态转换

Linux 系统将进程的执行划分为用户模式和内核模式。当用户执行应用程序或内核以外的其它程序时,进程运行在用户空间;反之,则运行在内核空间。当用户进程需要内核提供功能支持时,可通过中断或系统调用进入内核空间。 在Linux 下进程的结构如图4.2所示:

存入传递参数及环境变量

BSS 数据段数据段(可读/只读)

代码段

高地址

低地址存放未初始化的全局变量

存放静态初始化的全局变量或常量

存放程序可执行代码

存放子程序的返回地址、参数和局部变量

存放动态分配的数据

图4.2 Linux 进程映像示意图

本实验中涉及关键函数及语法如下所示:

头文件#include 函数原型pid_t fork(void)

功能创建进程

函数返回值fork返回值有三种情况:

(1)创建新进程失败,返回-1;

(2)父进程返回新建子进程标识符(pid)(3)子进程返回0

表4.2 exec函数族语法要点

头文件#include

函数原型int execl(const char* path, const char* arg,…);

int execv(const char* path, char* const argv[ ]);

int execle(const char* path, const char* arg,…, char* const envp[ ]);

int execve(const char* path, char* const argv[ ] , char* const envp[ ]); (*)int execlp(const char* file, const char* arg,…);

int execvp(const char* file, char* const argv[ ]);

功能在指定路径中查找并执行文件

参数说明path/file 执行文件对应的路径或文件名

arg/argv 执行文件所用参数,分别使用列表或向量形式组织

envp 执行文件所用环境变量

函数返回值exec返回值返回-1表明查找并执行对应文件失败;

exec函数族小结:exec函数族前4个字符串一定为exec;第5个字符可为l或v,分别代表列表(list)和向量(vector)。列表以可变参数的形式出现,最后一项为NULL;向量以数组的形式出现,对应的字符串数组最后一项为NULL,表明数组结束;第6个字符可为e或p,为e表明指定进程执行时的环境变量,为p则说明查找文件名而不是路径。

表4.3 wait语法要点

头文件#include #include

功能阻塞进程,等待进程结束

函数原型pid_t wait(int* statusptr);

参数说明statusptr 子进程的运行结果

函数返回值wait返回值有二种情况:

4)阻塞当前进程,执行失败,返回-1;

5)阻塞当前进程,当某子进程结束返回该子进程id,取消阻塞

相关函数watipid(2),wait3(2)

头文件#include

功能终止当前进程

函数原型void exit(int status)

参数说明status 进程终止状态

函数返回值无

相关函数_exit(2), atexit(3), on_exit(3)

2.实验目的

1)深入理解进程控制相关概念;

2)掌握守护进程及Linux进程之间的关系;

3)掌握进程控制时常用的函数,如fork, wait, exec,exit等;

3.实验内容

某进程创建一子进程,子进程运行“ls -l”指令。要求父进程先以阻塞方式等待子进程结束,当该子进程正常退出后,父进程再创建新的子进程,反复打印“child2 process is active!”;此时结束父进程,并观察子进程的运行情况;

4.参考代码

5.实验扩展思考

1)父进程在创建子进程后结束,子进程将由init进程托管,称之为守护进程。请分析实验代码,指出那个进程可称为守护进程?

2)用户使用Ctrl+C信号可实现终止程序,在本实验中为何无法实现终止子进程2,请分析原因,并说明此类应用的合理场景?

3)请查阅man手册,实现以下场景:父进程创建多个子进程,阻塞自身至指定子进程结束?

实验五:进程间通信

1.实验相关知识简述

进程拥有独立的运行空间,彼此隔离。但实际开发过程中,常常需要两个或多个进程间进程数据通信,UNIX/Linux提供相应的技术手段,习惯上称之为IPC(Inter-Processing Communication)。Linux IPC技术来源四个方面:传统UNIX的进程间通信、System V进程间通信、POSIX进程间通信和Socket通信。

(1)UNIX IPC主要提供管道、命名管道(FIFO)和信号;

(2)System V IPC主要提供System V消息队列、System V信号量和System V共享内存;(3)POSIX IPC主要提供POSIX消息队列、POSIX信号量和POSIX共享内存;

常用的IPC技术特点如下:

1)管道(Pipe):存在于内核,父子进程间无格式字节通信

2)命名管道(FIFO):类似管道,存在文件系统中,任意进程间通信

3)信号(Signal):软件模拟中断机制,多用于事件处理

4)消息队列(Messge Queue):按键值随机访问,消息追加到队列的尾部

5)共享内存(Shared memory):若干进程将一块物理内存映射到进程自身空间中,用于数据读写,多与同步机制(互斥锁或信号量)结合使用

6)信号量(Semaphore):进程或线程针对临界资源访问的同步或互斥实现

7)套接字(Socket):网络中位于不同机器的进程之间的通信

本实验中涉及关键函数及语法如下所示:

表5.1 pipe语法要点

头文件#include

函数原型int pipe(int array[2])

功能创建管道

参数说明array:文件描述符数组,其中array[0]只读,array[1]只写

函数返回值若创建管道失败,返回-1;创建成功,返回0

特别注意:

1)系统调用fork之前必须先调用pipe,否则子进程将不会继承父进程提供的文件描述符;

2)读一个写端已关闭的管道时,在所有数据被读取后,read返回0表示达到文件结束处;

3)写一个读端已关闭的管道时,产生信号SIGPIPE。若忽略或捕捉该信号并从处理程序中

返回时,write出错返回,errno设置为EPIPE;

4)父子进程并发运行,需同步机制保证读写次序;

5)管道不可定位(lseek);

Linux实验指导书

Linux程序设计 实验指导书 计算机应用系 2012年11月

实验一:Linux常用命令及编程环境 1.实验相关知识简述 Unix/Linux环境下使用C语言程序开发的项目主要经历设计、开发、调试、集成、部署和维护几个阶段。目前典型的开发环境,主要使用vi、emacs、gedit等文字编辑工具完成源代码的编辑工作;通过指定不同的GCC编译器编译选项指定编译结果,根据编译器提示改正程序中的语法错误,最终生成符合目标要求的可执行二进制文件;当可执行文件执行结果与预期结果不一致时,使用GDB调试器跟踪程序执行过程,查看中间变量,改正源程序中存在的逻辑错误。在大型项目管理中,由于文件较多,整个编译过程费时较长,安装、调试难度较大。为解决手工管理效率低下的问题,引入Make工具,将项目编译、安装、维护等工作以脚本的形式组织在Makefile中,从而简化项目维护成本。手工编写Makefile脚本难度较大且不利于统一规范,推荐使用Autotools工具集直接生成。本实验仅设置手工编辑、编译Linux C源代码,生成可执行文件并调试。 GNU CC(简称为GCC)是GNU 项目中符合ANSI C 标准的编译系统,能够编译用C、C++和Object C 等语言编写的源程序。GCC也可理解为一个工具集合,包含多个编译相关工具,如gcc编译C语言源程序,g++编译C++语言源程序,ld链接器等。在编译C语言程序时,可直接使用gcc指令通过配置不同的参数选项达到指定GCC工具集的目的。 GCC的常用选项如表1.1所示 表1.1 GCC常用选项 功能选项描述 与编译相关的GCC 选项-c 只是编译不链接,生成目标文件“.o” -S 只是编译不汇编,生成汇编代码 -E 只进行预编译,不做其他处理 -g 在可执行程序中包含标准调试信息 -o file 把输出文件输出到file 里 -v 打印出编译器内部编译各过程的命令行信息和编译器的版本-I dir 在头文件的搜索路径列表中添加dir 目录 -L dir 在库文件的搜索路径列表中添加dir 目录 -static 链接静态库 -llibrary 连接名为library 的库文件 报警与出错相关的-ansi 支持符合ANSI 标准的C 程序 -pedantic 允许发出ANSI C 标准所列的全部警告信息

linux实验指导书

实验一Linux安装和环境熟悉以及常用命令的练习 一、实验内容 掌握Linux下常用的文件及目录的操作命令;掌握文件打包及压缩命令;学会使用帮助信息。 二、实验目的及要求 1.了解Linux下的Shell常用命令; 2.掌握文件及目录操作命令; 3.掌握文件打包、压缩命令; 4.掌握联机帮助命令的使用方法。 三、实验环境及条件 奔腾以上微机一台,Linux操作系统。 四、实验设计及实施指导(写出每个命令的测试用例及期望输出与实际输出) 1、文件及目录操作命令 (1)练习常用shell命令 Date、bc、echo、last、history等。 (2)练习文件及目录常用的管理命令 ls find cat grep sort comm diff cp rm mv wc; mkdir rmdir chmod chown ln pwd cd。 (3)重定向和管道命令: 输入重定向 输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件中。输入重定向主要用于改变一个命令的输入源,特别是改变那些需要大量输入的输

入源。 例如: wc< /etc/passwd wc<this text forms the content >this text forms the content2s >this text forms the contents >! ?输出重定向 输出重定向是指把命令(或可执行程序)的标准输出或标准错误输出重新定向到指定文件中。这样,该命令的输出就不显示在屏幕上,而是写入到指定文件中。 例如: ls >directory.out ls >>directory.out 利用重定向将命令组合在一起,可实现系统单个命令不能提供的新功能。例:统计/usr/bin目录下的文件个数: ls /usr/bin>/tmp/dir wc –w

Linux操作系统实验指导书

《Linux系统管理与维护》实验指导书 实验一初识Linux操作系统 一实验名称 初识Linux操作系统 二实验目的与要求 掌握Linux的启动、登录与注销。 三实验内容 1.以root用户和普通用户两种不同身份登录Linux,说出其登录后得差异。 2.图形模式下的注销、重启与关机。 3.学会在虚拟机上登录和注销Linux。 四操作步骤与结果分析 五问题与建议

实验二Linux的桌面应用 一实验名称 Linux的桌面应用 二实验目的与要求 熟悉Linux操作系统桌面环境 熟悉Linux文件系统及常用的操作 掌握Linux下使用外部存储设备、网络设备 掌握Linux下安装应用程序 三实验内容 1.查看GNOME提供的“应用程序”、“位置”或者“系统”菜单,运行其中的应用程 序和工具。 2.查看Linux文件目录结构,学会常用的文件目录操作,如复制、粘贴、移动、删 除、更名、创建文档、创建文件夹等。 3.练习在Linux下使用光盘和U盘。 4.学会网络配置,使计算机能够进行网络浏览等操作。 5.学会在Linux下安装新的应用软件。 四操作步骤与结果分析 五问题与建议

实验三Linux操作系统的安装 一实验名称 Linux操作系统的安装 二实验目的与要求 掌握安装Linux操作系统 三实验内容 1.通过学习《项目五Linux操作系统的安装及远程服务》的内容,学会如何安装Linux。 环境:windows 系统、vmware虚拟机、Redhat Linux镜像光盘。 通过安装向导将安装分为两步:1、基本安装,2、配置及具体安装。 在第一阶段重点如何分区,在第二阶段重点掌握如何设置密码及安装桌面环境。四操作步骤与结果分析 五问题与建议

实验指导书1-vmware与redhat-linux-7.3安装

实验指导书1-vmware与redhat-linux-7.3安装

实验一、Vmware虚拟机与Redhat linux 7.3安装 【实验目的】 1、了解和熟悉Vmware的使用方法 2、熟悉Redhat linux7.3的安装过程 3、安装vmware tools,安装显卡驱动 4、实现vmware和linux的共享目录。 5、实现telnet远程访问 【实验准备】 1、vmware 4.5.2虚拟机软件 2、redhat linux 7.3三个ISO映像文件 valhalla-i386-disc1.ISO valhalla-i386-disc2.ISO valhalla-i386-disc3.ISO 【实验内容】 1、在Vmware虚拟机中安装redhat linux 7.3操作系统 步骤:(1)在主机的D盘或者E盘建立redhat linux 7.3的目录 (2)启动vmware 虚拟机软件,按照课件上方法新建一个操作系统 (1) (2) (3) (4)

(5) (6) (7) (8) 步骤3:启动虚拟机,准备安装redhat linux 7.3,我们使用光盘镜像来安装Linux,点击菜单[VM]-[settings],在[hardware]-[CD Rom] 中选择 [ISO image],点击“浏览”选择ISO 文件valhalla-i386-disc1.iso

步骤4.启动vmware,安装redhat linux 7.3,在boot:后输入text 回车。 提示:在安装界面上采用图形方式装,如果采用图形方式安装,在安装到840M时,会提示出错。可以退出,再次重新安装基本第二次都会成功。

Linux实验指导书

Linux操作系统 (适用于计算机专业专科学生) 实 验 指 导 书 信息科学与技术学院二0一0年八月制

目录 实验一 Red Hat Linux 9.0系统的安装 (3) 实验二常用命令的使用(一) (15) 实验三常用命令的使用(二) (21) 实验四 Vi编辑器的使用 (27) 实验五 Linux系统管理与配置 (29) 实验六 shell编程(一) (32) 实验七 shell编程(二) (37) 实验八 shell编程及图形环境的使用 (39)

实验一 Red Hat Linux 9.0系统的安装 一、实验目的 1.掌握安装Linux系统时收集计算机硬件信息的方法 2.掌握Linux硬盘的分区方法和硬盘分区的大小 3.掌握Linux系统安装的过程和在安装过程中各选项的设置 二、实验环境 微型计算机一台,Red Hat Linux9.0系统盘一套 VMware Workstation v5.5.16325 sn:8UX0R-686FT-Z054V-4PDQPORLCT4T-24GFE-A816V-4MTQQ 三、实验内容及步骤 1.安装前的准备工作 步骤一:关闭BIOS中的病毒报警功能,如果硬盘大于8G设置硬盘为LBA模式。 步骤二:备份硬盘上的所有重要数据! 步骤三:为Linux系统准备足够的硬盘空间。 2.安装Red Hat Linux 9.0 将Red Hat Linux 9.0安装光盘插入光驱,然后启动计算机,即可从CD-ROM启动Linux 安装程序。 步骤1:boot:提示。 机器启动之后,显示boot: 提示屏幕,其中包括了几个不同的引导选项,每个引导选项还有一个或多个与之关联的帮助屏幕。要访问帮助屏幕,可按在屏幕底部列出的恰当的功能键。 为以图形方式从光盘中安装Red Hat Linux,单击回车键。 步骤2:安装程序检测用户系统并试图识别光驱。如果找到了,会进入安装进程的下一阶段。 这时若要中止安装进程,应取出引导磁盘或光盘,重新引导机器。在“即将安装”屏幕(步骤19) 之前的任何时候,都可以安全地中止安装。 步骤3:欢迎使用Red Hat Linux。 “欢迎”屏幕并不提示做任何输入。可阅读左侧面板内的帮助文字来获得附加的说明,以及关于如何注册Red Hat Linux产品的信息。

linux操作系统实验指导书第2周

第3周Linux文件与目录管理 一、实验内容 1.练习Linux文件和目录操作命令。 2.实验目的练习Linux文件权限和文件查找命令。 二、实验目的 1.掌握文件与目录管理命令 2.掌握文件内容查阅命令 3.了解文件与目录的默认权限与隐藏权限 4.掌握如何改变文件属性与权限 5.掌握命令与文件的查询方法 三、实验题目 1. 文件与目录管理 (1) 查看Ubuntu根目录下有哪些内容? (2) 进入/tmp目录,以自己的学号建一个目录,并进入该目录。 (3) 显示目前所在的目录。 (4) 在当前目录下,建立权限为741的目录test1,查看是否创建成功。 (5) 在目录test1下建立目录test2/teat3/test4。 (6) 进入test2,删除目录test3/test4。 (7) 将root用户家目录下的.bashrc复制到/tmp下,并更名为bashrc (8) 重复步骤6,要求在覆盖前询问是否覆盖。 (9) 复制目录/etc/下的内容到/tmp下。 (10) 在当前目录下建立文件aaa。 (11)查看该文件的权限、大小及时间 (12) 强制删除该文件。 (13) 将/tmp下的bashrc移到/tmp/test1/test2中。 (14) 将/test1目录及其下面包含的所有文件删除。 2. 文件内容查阅、权限与文件查找 (1) 使用cat命令加行号显示文件/etc/issue的内容。 (2) 反向显示/etc/issue中的内容。 (3) 用nl列出/etc/issue中的内容。

(4) 使用more命令查看文件/etc/man.config (5) 使用less命令前后翻看文件/etc/man.config中的内容 (6) 使用head命令查看文件/etc/man.config前20行 (7) 使用less命令查看文件/etc/man.config后5行 (8) 查看文件/etc/man.config前20行中后5行的内容 (9) 将/usr/bin/passwd中的内容使用ASCII方式输出 (10) 进入/tmp目录,将/root/.bashrc复制成bashrc,复制完全的属性,检查其日期 (11) 修改文件bashrc的时间为当前时间 3. 文件权限 (1) 执行echo pwd >> pwd.sh,然后使用ls -al查询一下,发生了什么事? (2) 以两种方式查看系统中新建文件或目录的默认权限 (3) 新建文件test1和目录test2,查看它们的权限是否与(2)中的默认权限相符 (4) 修改pwd.sh文件权限为r-xr--r--。 (5) 执行pwd.sh。(提示:执行本路径下文件的命令是./文件名)。 (6) 添加用户stu,修改密码为123。 (7) 修改文件test1的属主为stu,test1所属的组为stu。 (8)增加test1的属主具有可执行的权限。 4. 文件查找 (1) 查看文件/root/.bashrc的类型 (2) 查询ifconfig和cd命令的完整文件名 (3) 只找出跟passwd有关的“说明文件”文件名 (4) 找出系统中所有与passwd相关的文件名 (5) 将过去系统上面3天前的24小时内有改动(mtime)的文件列出 (6) 使用find查找当前目录下比man.config新的文件,并存储到man.config.new文件。 (7) 列出/etc下比/etc/man.config新的文件 (8) 查找系统中所有属于root的文件及不属于任何人的文件 (9) 使用find查找/下面所有名称为man.config的文件。 (10) 找出文件名为man.config的文件 (11) 使用locate查找所有名称为man.config的文件。 (12) 11步和12步的结果一样么?为什么? (13) 找出/etc下文件类型为f的文件 (14) 找出系统中大于1M的文件

Linux操作系统实验指导书-4磁盘

《Linux操作系统》实验指导书

实验四 实验题目:磁盘管理 实验目的:熟悉并掌握磁盘管理常用命令;掌握利用虚拟机增加新硬盘,使用fdisk对磁盘分区操作;熟悉和了解磁盘显示信息内容;掌握使用卷组进行磁盘管理操作。 实验类型:综合 实验要求:必修 仪器设备:计算机 实验内容、方法、步骤: 1,使用GUI方式建立用户user01,具体属性如下: 登录shell为/bin/bash, 主目录/user01, 用户id: 520, 用户组grp01 2,使用修改配置文件方式建立用户user02,具体属性如下: 登录shell为/bin/bash, 主目录/user02, 用户id: 530, 用户组grp02 3,使用命令方式建立用户user03,具体属性如下: 登录shell为/bin/bash, 主目录/user03, 用户id: 530, 用户组grp03,附属组grp02 4,对user01,user02,user03,设置密码并登录。 一、磁盘和分区信息查看 1 fdisk查看当前系统硬盘及分区情况,在实验报告中说明当前的磁盘容量,分区数量、名称和大小,分区挂载点,分区使用方式(卷组名称、逻辑卷名称和大小)。 步骤:fdisk –l 2 显示当前文件系统使用情况,在实验报告中说明当前主要文件系统信息及使用情况(包括主要文件系统名称、挂载点、容量、使用量及百分比等)

步骤:df –h 二、添加新硬盘 内容:关闭虚拟机操作系统,添加2块硬盘,大小分别为5G和10G。开机后查看新硬盘是否成功添加。 步骤: 1 关机:init 0 2 添加新硬盘:右键单击虚拟机,选择setting(设置)。在Add中按照要求添加2块新硬盘(HardDisk) 3 开机后,打开终端。输入命令fdisk –l 或ls /dev/sd*查看新硬盘是否添加成功。 三、对新添加硬盘进行分区 内容: 1. 将第二块硬盘sdb分区(5G),要求分区1(sdb1)为主分区,类型为swap (82),大小为500M;分区2(sdb2)为主分区,类型为linux(83),大小为2G;分区3为扩展分区(sdb3),大小为sdb所有剩余容量;分区5为逻辑分区,类型为lvm(8e),大小为2G。分区后,查看sdb新添加所有分区,将截图添加到实验报告中。 2. 将第三块硬盘sdc分区(10G),要求分区1(sdc1)为扩展分区,大小为10G;

linux实验指导书(08)

《L i n u x实用操作系统》 实验指导

概述 一、实验教学的内容及目的 本课程的实验指导书对上机实验内容部分进行指导。 上机试验以培养学生的独立思考能力与动手能力为主导原则,目的在于对课堂讲授的内容加深理解和巩固,让学生在理解基本理论的基础上,掌握Linux的功能、掌握Linux操作的方法,提高学生的分析问题、解决问题的能力和动手能力。在培养学生动手实践能力的同时,逐步锻炼学生自学的能力,进一步树立学生的创新精神。 二、实验基本内容及课时 为了使学生在上机实验时目标明确,本实验指导书针对课程内容编写了10个实验,每个实验2学时,学生可以在上机时先完成指导书中给出的内容,在理解掌握所学知识的基础上再深入其他的操作。指导书中的10个实验如下: 三、实验设备要求 实验用机的软件和硬件基本配置。 软件配置:Windows 2000/XP/Vista/Win7系统 Vmware Workstation 6.0及以上版本 Linux Redhat系列 硬件配置:CPU P4 2.0G以上、内存 512MB以上

实验一安装Linux操作系统 【实验目的】 了解Linux操作系统的发行版本;掌握Linux系统安装方法;练习系统登录、注销、重启和关机。 【实验内容】 1.Vmware Workstation 6.0下创建Red Hat Linux虚拟机,要求虚拟机的内存为256MB或更大,硬盘为8GB或更大。 2.使用RHEL 5.3的DVD光盘或ISO文件安装Linux系统。 【实验指导】 1.硬盘和分区知识以及Linux文件系统的组织方式 (1)硬盘和分区知识 磁盘有IDE接口和SCSI接口两种。 磁盘在使用前需分区。磁盘分区有主分区、扩展分区和逻辑分区之分。一块硬盘可以有4个主分区,其中一个主分区的位置可以有一个扩展分区替换,即可以有3个主分区和一个扩展分区,且一块硬盘只能有一个扩展分区,在这个扩展分区中可以划分多个逻辑分区。(2)Linux如何表示分区 在Windows系统中使用盘符来标识不同的分区,而在linux下使用分区的设备名来标识不同的分区,设备名存放在/dev目录中。 磁盘设备名称如下: ●系统的第1块IDE接口的硬盘称为/dev/hda ●系统的第2块IDE接口的硬盘称为/dev/hdb ●系统的第1块SCSI接口的硬盘称为/dev/sda ●系统的第2块SCSI接口的硬盘称为/dev/sdb 分区使用数字编号表示: ●系统的第1块IDE接口硬盘的第1个分区称为/dev/hda1 ●系统的第1块IDE接口硬盘的第5个分区称为/dev/hda5 ●系统的第2块SCSI接口硬盘的第1个分区称为/dev/sdb1 ●系统的第2块SCSI接口硬盘的第5个分区称为/dev/sdb5 注意:数字编号1-4留给主分区或扩展分区使用,逻辑分区编号从5开始。 (3)Linux文件系统文件系统的组织方式------挂载点 Linux系统只有一个根目录,即只有一个目录树。不同磁盘的不同分区只是这个目录树的一部分,在linux中创建文件系统后(类似format),用户不能直接使用它,要挂载文件系统后才能使用。挂载文件系统首先要选择一个挂载点。 2.利用VMware Workstation 6.0 创建一台新的虚拟机 (1)选择VMware Workstation的File菜单下的New-Virtual Machine命令,出现以下对话框,

操作系统实验指导书(LINUX版)

《操作系统》实验指导书 实验学时:16 适用专业:计算机科学与技术 实验一:进程和线程的创建 1.在linux下编写一个应用程序,命名为an_ch2_1b。这个程序不断地输出如下行:Those output come from child,[系统时间] 另外写一个应用程序,命名为an_ch2_1a。这个程序创建一个子进程,执行an_ch2_1b。这个程序不断地输出如下行: Those output come from child,[系统时间] 观察程序运行的结果,并对你看到的现象进行解释。 2。在linux环境下编写一个控制台应用程序,程序中有一个共享的整型变量shared_var,初始值为0;创建一个线程并使其立即与主线程并发执行。新创建的线程与主线程均不断地循环,并输出shared_var的值。主线程在循环中不断地对shared_var进行加1操作,即每次循环shared_var被加1;而新创建的线程则不断地对shared_var进行减1操作,即每次循环shared_var被减1。观察程序运行的结果,并对你看到的现象进行解释。 3。提交源代码以及实验报告。 实验二:进程和线程同步和互斥 1。生产者消费者问题(信号量) 参考教材中的生产者消费者算法,创建5个进程,其中两个进程为生产者进程,3个进程为消费者进程。一个生产者进程试图不断地在一个缓冲中写入大写字母,另一个生产者进程试图不断地在缓冲中写入小写字母。3个消费者不断地从缓冲中读取一个字符并输出。为了使得程序的输出易于看到结果,仿照的实例程序,分别在生产者和消费者进程的合适的位置加入一些随机睡眠时间。

可选的实验:在上面实验的基础上实现部分消费者有选择地消费某些产品。例如一个消费者只消费小写字符,一个消费者只消费大写字母,而另一个消费者则无选择地消费任何产品。消费者要消费的产品没有时,消费者进程被阻塞。注意缓冲的管理。 2。用线程实现睡觉的理发师问题,(同步互斥方式采用信号量或mutex方式均可) 理发师问题的描述:一个理发店接待室有n张椅子,工作室有1张椅子;没有顾客时,理发师睡觉;第一个顾客来到时,必须将理发师唤醒;顾客来时如果还有空座的话,他就坐在一个座位上等待;如果顾客来时没有空座位了,他就离开,不理发了;当理发师处理完所有顾客,而又没有新顾客来时,他又开始睡觉。 3。读者写者问题 教材中对读者写者问题算法均有描述,但这个算法在不断地有读者流的情况下,写者会被阻塞。编写一个写者优先解决读者写者问题的程序,其中读者和写者均是多个进程,用信号量作为同步互斥机制。 4。提交源代码以及实验报告。 实验三:实现一个文件查找程序 仿照unix操作系统中的find命令,在实现一个myfind命令。myfind命令从指定的目录下开始,递归地查找指定文件。其命令格式如下: myfind PATH-option参数[-print][-exec命令{}\;] PATH:查找的起始目录。 -option参数:用来控制搜索方式,具体如下(以下只给我常用的): -name"文件":指定要查找的文件名,可以有通配符?*等。 -prune目录:指出搜索时不搜索该目录。 -mtime+n或-n:按时间搜索,+n:表示n天之前修改过的文件;-n:表示今天到n天前之间修改过的文件。 -ctime+n或-n:也是按时间查找,+n:表示n天之前创建的文件;-n:表示今天到n天前之间创建的文件。 -print:将搜索结果输出到标准输出。 可选的实验1:实现-exe选项。

嵌入式linux实验指导书

目录 实验一 linux常用指令练习 (3) 1、在线帮助指令 (3) 2、linux开关机及注销指令。 (3) 重启指令: (3) 1)、reboot命令 (3) 2)、init 6命令 (3) 关机指令: (3) 1)、halt命令 (3) 2)、poweroff命令 (4) 3)、init 0命令 (4) 4)、shutdown命令 (4) 注销指令: (4) 3、用户管理命令 (4) 1)、用户切换su命令 (4) 2)、添加用户命令adduser/useradd (5) 3)、删除用户及更改用户属性 (5) 4)、设置用户密码 (6) 5)、查看用户信息 (6) 4、文件目录操作指令 (7) 1)、改变当前工作目录命令(cd) (7) 2)、显示当前路径pwd (7) 3)、查看当前目录下的文件命令ls (7) 4)、新建目录指令mkdir (8) 5)、删除目录命令rmdir (8) 6)、新建文件命令touch (8) 7)、删除文件指令rm (8) 8)、文件和目录的复制命令cp (8) 9)、文件和目录的移动命令mv (9) 10)、更改文件或目录的使用权限chmod (9) 11)、查看文件的命令cat (9) 12)、文件链接命令ln (9) 13)、文件压缩解压命令 (10) 5、网络相关命令 (11) 6、磁盘管理命令 (11) 7、挂载文件命令mount (12) 8、其他系统命令 (12) 练习1: (13) 练习2: (15) 练习3: (16) 练习4: (21) 实验二 VI文本编辑器的使用 (24) 1、练习使用VI指令 (24) 2、利用VI编写一个hello.c文件 (24)

Linux课程实验指导书

Linux/Unix 实验指导书 合肥工业大学管理学院2012年12月

《Linux/Unix》课程实验是《Linux/Unix》课程的重要组成部分,旨在通过实践加深学生对操作系统理论知识的理解,建立对Linux/Unix系统的感性认识,掌握Linux操作系统的基本操作和一般性系统管理。 1 目的 本实验是课程《Linux/Unix》的重要组成部分,是培养学生掌握Linux操作系统基本概念、基本操作技能及一般性系统管理,并兼顾常用软件使用的重要环节。 2 基本要求 实验前学生要熟练掌握计算机的基础知识,在实验中具体进行实际操作,能在文本模式和X-Window图形模式下熟练使用Linux系统,会进行基本的文本编辑及网络应用的配置。通过实验,建立对操作系统和Linux/Unix的感性认识,为后续的学习铺垫。 3 实验内容 3.1 实验一 (1)实验名称 Linux/Unix系统管理。 (2)实验类型 验证。 (3)实验学时 4学时。 (5)实验地点 南区管院机房。 (6)实验目的 通过上机操作,使学生熟悉Linux/Unix系统的基本操作和系统管理。 (7)实验内容 ①Linux文件管理相关操作。 ②Linux用户管理操作。 ③设备加载和卸载。 ④ Vi的使用 ⑤ X-Window下的系统管理 (8)实验步骤与方法 ①打开计算机,进入Linux系统; ②Linux启动过程显示硬件检测、模块安装等信息,启动过程结束后显示登录提示,要求输入用户名和口令,在该状态下输入用户名和口令(用户名root,口令linux);如果用户名和口令输入正

确,进入系统,在命令行显示命令提示符“#”。这时进行以下操作试验。 ③Linux文件管理相关操作: 第一步,显示当前工作目录:输入命令“pwd”,应显示当前目录“/root”; 第二步,切换当前目录:输入命令“cd /sbin”,进入目录/sbin;然后输入命令“pwd”,应显示当前目录名“/sbin”; 第三步,显示当前目录内容:输入命令“ls”,应显示当前目录下所有可见目录和文件名称。 ls命令是Linux下最常用的命令之一,带不同参数可以显示多种信息: -a 列出目录下的所有文件,包括以. 开头的隐含文件。 -b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。 -c 输出文件的i 节点的修改时间,并以此排序。 -d 将目录像文件一样显示,而不是显示其下的文件。 -e 输出时间的全部信息,而不是输出简略信息。 -f -U 对输出的文件不排序。 -i 输出文件的i 节点的索引信息。 -k 以k 字节的形式表示文件的大小。 -l 列出文件的详细信息。 -m 横向输出文件名,并以“,”作分格符。 -n 用数字的UID,GID 代替名称。 -o 显示文件的除组信息外的详细信息。 -p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。 -q 用?代替不可输出的字符。 -r 对目录反向排序。 -s 在每个文件名后输出该文件的大小。 -t 以时间排序。 -u 以文件上次被访问的时间排序。 -x 按列输出,横向排序。 -A 显示除“.”和“..”外的所有文件。 -B 不输出以“~”结尾的备份文件。 -C 按列输出,纵向排序。 -G 输出文件的组的信息。 -L 列出链接文件名而不是链接到的文件。 -N 不限制文件长度。 -Q 把输出的文件名用双引号括起来。 -R 列出所有子目录下的文件。 -S 以文件大小排序。

(完整版)Linux操作系统实验指导书-4磁盘

Linux 操作系统》实验指导书 实验四 实验题目:磁盘管理 实验目的:熟悉并掌握磁盘管理常用命令;掌握利用虚拟机增加新硬盘,使用fdisk对磁盘分区操作;熟悉和了解磁盘显示信息内容;掌握使用卷组进行磁盘管理操作。 实验类型:综合 实验要求:必修 仪器设备:计算机 实验内容、方法、步骤: 1,使用GUI方式建立用户userOI,具体属性如下: 登录shell为/bin/bash,主目录/userOI,用户id: 520,用户组grpOl 2,使用修改配置文件方式建立用户user02,具体属性如下: 登录shell 为/bin/bash,主目录/user02,用户id: 530,用户组grp02 3,使用命令方式建立用户user03,具体属性如下: 登录shell为/bin/bash,主目录/user03,用户id: 530,用户组grp03,附属组grp02 4,对user01, user02, user03,设置密码并登录。

一、磁盘和分区信息查看 1 fdisk查看当前系统硬盘及分区情况,在实验报告中说明当前的磁盘容量,分区数量、名 称和大小,分区挂载点,分区使用方式(卷组名称、逻辑卷名称和大小)。 步骤:fdisk - 2显示当前文件系统使用情况,在实验报告中说明当前主要文件系统信息及使用情况(包括主要文件系统名称、挂载点、容量、使用量及百分比等) 步骤:df — 二、添加新硬盘 内容:关闭虚拟机操作系统,添加2块硬盘,大小分别为5G和10G。开机后查看新硬盘 是否成功添加。 步骤: 1 关机:in it 0 2添加新硬盘:右键单击虚拟机,选择setting (设置)。在Add中按照要求添 加2块新硬盘(HardDisk ) 3开机后,打开终端。输入命令fdisk -或Is /dev/sd*查看新硬盘是否添加成功。 三、对新添加硬盘进行分区 内容: 1.将第二块硬盘sdb分区(5G),要求分区1 (sdb1 )为主分区,类型为swap (82),大小为500M ;分区2 (sdb2)为主分区,类型为linux (83),大小为 2G;分区3为扩展分区(sdb3),大小为sdb所有剩余容量;分区5为逻辑分区,类型为lvm (8e),大小为2G。分区后,查看sdb新添加所有分区,将截图添加到实验报告 中。 raot^AS5:jid?v _賀 中件? 狒(曰音百?池①标符? 苕时3 Last cylludAT or raize or taizeM or zeL (307 6S2 default 65^)i052N Comaomd (n for help)s □ Co>niaand action 1 logical(5 or over) p prlnsr partilion (1-4) 1 First cylinder (307-652. defoul t307)t defautt vftlue 307 Laat cylinder or H-size or i-si or "bsl sei1307 052,default C52)s^2G

促销管理-Linux服务器配置与管理实验指导书 精品

《L i n u x服务器配置与管 理》 实验指导 山东电子职业技术学院计算机系

概述 一、实验教学的内容及目的 本课程的实验指导书对上机实验内容部分进行指导。 上机试验以培养学生的独立思考能力与动手能力为主导原则,目的在于对课堂讲授的内容加深理解和巩固,让学生在理解基本理论的基础上,掌握Linux的功能、掌握服务器配置的方法,提高学生的分析问题、解决问题的能力和动手能力。在培养学生动手实践能力的同时,逐步锻炼学生自学的能力,进一步树立学生的创新精神。 二、实验基本内容及课时 为了使学生在上机实验时目标明确,本实验指导书针对课程内容编写了16个实验,每个实验2学时,学生可以在上机时先完成指导书中给出的内容,在理解掌握所学知识的基础上再深入其他的操作。指导书中的16个实验如下:

三、实验设备要求 实验用机的软件和硬件基本配置。 软件配置:Windows 2000/XP/Vista系统 Vmware Workstation 6.0及以上版本 Linux Redhat系列 硬件配置:CPU P4 2.0G以上、内存 512MB以上

实验一安装Linux操作系统 【实验目的】 了解Linux操作系统的发行版本;掌握Linux系统安装方法;练习系统登录、注销、重启和关机。 【实验内容】 1.Vmware Workstation 6.0下创建Red Hat Linux虚拟机,要求虚拟机的内存为256MB或更大,硬盘为8GB或更大。 2.使用RHEL 5.3的DVD光盘或ISO文件安装Linux系统。 【实验指导】 1.硬盘和分区知识以及Linux文件系统的组织方式 (1)硬盘和分区知识 磁盘有IDE接口和SCSI接口两种。 磁盘在使用前需分区。磁盘分区有主分区、扩展分区和逻辑分区之分。一块硬盘可以有4个主分区,其中一个主分区的位置可以有一个扩展分区替换,即可以有3个主分区和一个扩展分区,且一块硬盘只能有一个扩展分区,在这个扩展分区中可以划分多个逻辑分区。(2)Linux如何表示分区 在Windows系统中使用盘符来标识不同的分区,而在linux下使用分区的设备名来标识不同的分区,设备名存放在/dev目录中。 磁盘设备名称如下: ●系统的第1块IDE接口的硬盘称为/dev/hda ●系统的第2块IDE接口的硬盘称为/dev/hdb ●系统的第1块SCSI接口的硬盘称为/dev/sda ●系统的第2块SCSI接口的硬盘称为/dev/sdb 分区使用数字编号表示: ●系统的第1块IDE接口硬盘的第1个分区称为/dev/hda1 ●系统的第1块IDE接口硬盘的第5个分区称为/dev/hda5 ●系统的第2块SCSI接口硬盘的第1个分区称为/dev/sdb1 ●系统的第2块SCSI接口硬盘的第5个分区称为/dev/sdb5 注意:数字编号1-4留给主分区或扩展分区使用,逻辑分区编号从5开始。 (3)Linux文件系统文件系统的组织方式------挂载点

Linux操作系统实验指导书

实验一熟悉Linux环境 (一)实验类型:验证型 (二)实验目的 1.熟悉Linux桌面环境的操作方式; 2. 了解Linux系统下的Shell常用命令; 3.掌握文件及目录命令操作;掌握联机帮助命令的使用方法; 4. 掌握文件打包、压缩命令; 5. 熟悉vi编辑器。 (三)实验内容 1.利用文件管理命令在用户的个人主目录下创建一个子目录,目录名称为本人的学号(例如201020205002),利用vi 编辑器编写一个SHELL 脚本,在终端运行后显示:Hello Linux! I have known how to use all kinds of commands. My name is xxx. (例如:My name is Shi Zhida. ) My student ID is xxx. (例如:My student ID is 201020205002 ) 2.在个人主目录下建立子目录bk+本人学号(例如bk201020205002)。 3.创建组,组名为身份证的后四位;创建用户,用户名为user+学号后4 位;把所建的用户添 加到组中。 4.删除由学号建立的目录。 5. 运行man date>file, 然后vi file, 进行编辑。每个命令的功能需要解析,每个命令的 结果需要截图显示。 使用x, dd等命令删除某些文本行; 使用u命令复原此前的情况; 使用c,r,s等命令修改文本内容; 使用检索命令进行给定模式的检索。 实验二:LINUX下Shell编程 学时:2 (一)实验类型:设计型 (二)实验目的 1.熟悉Shell脚本语言的基本语法;

2.掌握基本的Shell编程基本操作; 3.掌握如何执行Shell脚本程序。 (三)实验内容 1.在Linux 环境下,利用vi 编写SHELL 脚本程序。(sh1.sh、sh2.sh、sh3.sh) 2.程序sh1.sh: (1)要求用if 结构 (2)功能 在终端下运行程序,首先清屏,然后提示:Input a file or directory name, please! 。从键盘输入一个字符串(如:xxx ),如果该字符串是目录,则显示:xxx is a directory. ;如果该字符串是文件(如:xxx ),则显示:xxx is a regular file. ;如果既不是目录也不是文件,则显示:This script cannot get the file/directory! 。” 3.程序sh2.sh要求: (1)要求用case结构或if 结构 (2)功能 在终端下运行程序,首先清屏,然后提示:“Input your age!”。从键盘输入你的年龄(如:22),如果年龄在20-29,则输出“Please go to room 101 !”;如果年龄在30-39,则输出“Please go to room 201 !”;如果年龄在40-49,则输出“Please go to room 301 !”;如果年龄在50-59,则输出“Please go to room 401 !”;如果年龄在60-69,则输出“Please go to room 501!”;如果年龄不在上述范围,则输出“Please wait at the door!”; 4.程序shi3.sh 要求: (1)要求用循环结构 (2)功能 程序中循环列表为某一目录下的所有子目录和文件,运行程序,列出该目录下的所有文件。

实验指导书1-vmware与redhat-linux-7.3安装

实验一、Vmware虚拟机与Redhat linux 7.3安装 【实验目的】 1、了解和熟悉Vmware的使用方法 2、熟悉Redhat linux7.3的安装过程 3、安装vmware tools,安装显卡驱动 4、实现vmware和linux的共享目录。 5、实现telnet远程访问 【实验准备】 1、vmware 4.5.2虚拟机软件 2、redhat linux 7.3三个ISO映像文件 valhalla-i386-disc1.ISO valhalla-i386-disc2.ISO valhalla-i386-disc3.ISO 【实验容】 1、在Vmware虚拟机中安装redhat linux 7.3操作系统 步骤:(1)在主机的D盘或者E盘建立redhat linux 7.3的目录 (2)启动vmware 虚拟机软件,按照课件上方法新建一个操作系统 (1) (2) (3) (4)

(5) (6) (7) (8) 步骤3:启动虚拟机,准备安装redhat linux 7.3,我们使用光盘镜像来安装Linux,点击菜单[VM]-[settings],在[hardware]-[CD Rom] 中选择 [ISO image],点击“浏览”选择ISO 文件valhalla-i386-disc1.iso

步骤4.启动vmware,安装redhat linux 7.3,在boot:后输入text 回车。 提示:在安装界面上采用图形方式装,如果采用图形方式安装,在安装到840M时,会提示出错。可以退出,再次重新安装基本第二次都会成功。

步骤5:回车进入语言选择界面,选择中文【chinese(Simplified)】安装,【next】。 步骤6:一路使用tab键焦点定位【OK】上,回车继续;在选择安装版本上,我们选择【workstation】桌面版,也可以选择【server】版。但后者安装好后占用空间比前者要大,【workstation】桌面版足够我们上课使用了。

《计算机操作系统》实验指导书

宁夏师范学院 ——数学与计算机科学学院 《操作系统》实验指导《OPERATING SYSTEM》 2013.08

前言 计算机操作系统是计算机科学与技术专业的主要专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。计算机操作系统的实验目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握操作系统的基本原理,加深对操作系统基本方法的理解,加深对课堂知识的理解,为学生综合运用所学知识,在Linux环境下调用一些常用的函数编写功能较简单的程序来实现操作系统的基本方法、并在实践应用方面打下一定基础。要求学生在实验指导教师的帮助下自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个实验解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,并且能够进行简单分析和判断;能够熟练使用Linux用户界面;掌握操作系统中进程的概念和控制方法;了解进程的并发,进程之间的通信方式,了解虚拟存储管理的基本思想。同时培养学生进行分析问题、解决问题的能力;培养学生完成实验分析、实验方法、实验操作与测试、实验过程的观察、理解和归纳能力。 为了收到良好的实验效果,编写了这本实验指导书。在指导书中,每一个实验均按照该课程实验大纲的要求编写,力求紧扣理论知识点、突出设计方法、明确设计思路,通过多种形式完成实验任务,最终引导学生有目的、有方向地完成实验任务,得出实验结果。任课教师在实验前对实验任务进行一定的分析和讲解,要求学生按照每一个实验的具体要求提前完成准备工作,如:查找资料、设计程序、完成程序、写出预习报告等,做到有准备地上机。进行实验时,指导教师应检查学生的预习情况,并对调试过程给予积极指导。实验完毕后,学生应根据实验数据及结果,完成实验报告,由学习委员统一收齐后交指导教师审阅评定。

相关主题
相关文档
最新文档