Linux操作系统实验指导手册文档格式.docx

上传人:b****3 文档编号:14690735 上传时间:2022-10-23 格式:DOCX 页数:72 大小:182.30KB
下载 相关 举报
Linux操作系统实验指导手册文档格式.docx_第1页
第1页 / 共72页
Linux操作系统实验指导手册文档格式.docx_第2页
第2页 / 共72页
Linux操作系统实验指导手册文档格式.docx_第3页
第3页 / 共72页
Linux操作系统实验指导手册文档格式.docx_第4页
第4页 / 共72页
Linux操作系统实验指导手册文档格式.docx_第5页
第5页 / 共72页
点击查看更多>>
下载资源
资源描述

Linux操作系统实验指导手册文档格式.docx

《Linux操作系统实验指导手册文档格式.docx》由会员分享,可在线阅读,更多相关《Linux操作系统实验指导手册文档格式.docx(72页珍藏版)》请在冰豆网上搜索。

Linux操作系统实验指导手册文档格式.docx

ls-F显示出当前目录下的文件及其类型

ls-l显示目录下所有文件的许可权、拥有者、文件大小、修改时间及名称

ls-lg同上

ls-R显示出该目录及其子目录下的文件

建新目录mkdir

mkdirdirectory-name

mkdirdir1   新建一个名字为dir1的目录

删除目录  rmdir

rmdirdirectory-name或

rmdirectory-name

rmdirdir1删除目录dir1,但它必须是空目录,否则无法删除

rm-rdir1删除目录dir1及其下所有文件及子目录

rm-rfdir1不管是否空目录,统统删除,而且不给出提示,使用时要小心

改变工作目录位置cd

cd[name]

cd改变目录位置至用户login时的workingdirectory

cddir1改变目录位置,至dir1目录

cd~user改变目录位置,至用户的workingdirectory

cd..改变目录位置,至当前目录的上层目录

cd../user改变目录位置,至上一级目录下的user目录

cd/dir-name1/dir-name2改变目录位置,至绝对路径

cd-回到进入当前目录前的上一个目录

显示当前所在目录pwd

pwd

Linux常用命令

删除文件rm

执行格式:

rmfilename

rmfile删除名字为file的文件

复制文件cp

cp[-r]sourcedestination

cpfile1file2将file1复制成file2

cpfile1dir1将file1复制到目录dir1

cp/tmp/file1将file1复制到当前目录

cp/tmp/file1file2将file1复制到当前目录名为file2

cp–rdir1dir2(recursivecopy)复制整个目录。

移动或更改文件、目录名称mv

mvsourcedestination

mvfile1file2将文件file1,更名为file2

mvfile1dir1将文件file1,移到目录dir1下

mvdir1dir2将目录dir1,更名为dir2

查看系统目前的进程ps

ps[-aux]

ps或ps-x查看系统中属于自己的process

ps-au查看系统中所有使用者的process

ps-aux查看系统中包含系统内部及所有使用者的process

ps-aux|grepapache找出系统中运行的所有名称中带有“apache”串的process

结束或终止进程kill

kill[-9]PID(PID为利用ps命令所查出的processID)

kill456

kill-9456终止processID为456的process

命令在线帮助man

mancommand

manls查询ls这个指令的用法

编辑器的使用

vi编辑器的使用

nvi的全称是visualeditor,它是在Unix/Linux上被广泛使用的中英文编辑器。

n启动vi

vi进入vi编辑器界面,没有为所编辑的文件命名

vifilename进入vi编辑器界面,并将所编辑的文件命名为filename

vi提供三种工作模式:

n输入编辑模式

支持:

输入文本信息

n命令编辑模式

进行删除、修改等操作信息

n命令模式

进行存盘、退出等操作

注意:

使用者进入vi后,即处在命令模式下,要输入信息,则要切换至输入模式。

gedit编辑器的使用

ngedit是Unix/Linux系统下的另一种中英文文本编辑器,支持窗口模式,更加方便快捷。

n启动gedit:

gedit进入gedit编辑器界面,没有为所编辑的文件命名

geditfilename进入gedit编辑器界面,并将所编辑的文件命名为filename

GNUC编译器的使用

nLINUX上可用的C编译器是GNUC编译器(GCC),一般的Unix下使用的是CC编译器

n通常后跟一些选项和文件名来使用GCC编译器。

基本用法如下:

gcc[options][filenames]

n通过命令行选项指定编译过程中的具体操作

GCC常用选项

nGCC有超过100个的编译选项可用,这些选项中的许多可能永远都不会用到,但一些主要的选项将会频繁使用。

很多的GCC选项包括一个以上的字符,因此必须为每个选项指定各自的连字符,并且就像大多数LINUX命令一样不能在一个单独的连字符后跟一组选项。

例如,下面的命令是不同的:

gcc-p-gtest.c

gcc-ptest.c

第一条命令告诉GCC编译test.c时为prof命令建立剖析(profile)信息并且把调试信息加入到可执行文件里。

第二条命令告诉GCC只为gprof命令建立剖析信息。

n当不用任何选项编译一个程序时,GCC将建立(假定编译成功)一个名为a.out的可执行文件。

例如,

gcctest.c

编译成功后,当前目录下就产生了一个a.out文件。

n也可用-o选项来为即将产生的可执行文件指定一个文件名来代替a.out。

例如:

gcc–ocountcount.c

此时得到的可执行文件就不再是a.out,而是count。

执行文件

n格式:

./可执行文件名

./a.out

./count

gdb调试工具的使用

nLINUX包含了一个叫gdb的GNU调试程序。

gdb是一个用来调试C和C++程序的强有力调试器。

它使你能在程序运行时观察程序的内部结构和内存的使用情况。

它具有以下一些功能:

•监视程序中变量的值;

•设置断点以使程序在指定的代码行上停止执行;

•一行行的执行代码。

n为了使gdb正常工作,必须使你的程序在编译时包含调试信息。

调试信息里包含你程序里的每个变量的类型和在可执行文件里的地址映射以及源代码的行号。

gdb利用这些信息使源代码和机器码相关联。

n在编译时用–g选项打开调试选项。

n调试命令

应用举例

(1)设有一源程序test.c

(2)编译,gcc-ggdb–ogreetgreet.c

(3)gdbgreet,出现提示符(gdb),此时可在提示符下输入gdb的命令了,如:

(gdb)run

(gdb)list

(4)退出调试状态,返回系统提示符下,(gdb)quit

实验中常用到的系统调用

n字面上讲,系统调用(也称为“syscall”)就是一条类似于“add”或者“jump”的指令。

从更高的层面上讲,系统调用是用户级程序要求操作系统为它做某些事情的途径。

n首先,用户程序为系统调用设置参数。

其中一个参数是系统调用编号(稍后对此进行详述)。

注意,所有这些都是由库函数自动完成的,除非您是使用汇编编程。

参数设置完成后,程序执行“系统调用”指令。

这个指令会导致一个异常:

产生一个事件,这个事件会致使处理器跳转到一个新的地址,并开始执行那里的代码。

举例说明:

nfork()创建进程stdio.h

nwait()等待子进程运行结束stdio.h

nexit()终止进程的执行stdio.h

nlockf(files,function,size)锁定文件unistd.h

nkill()发送信号signal.h

nsignal()预置对信号的处理方式signal.h

程序中用到系统调用的时候,要包含相关的头文件

如:

#include<

signal.h>

fork()

n创建一个新进程。

n系统调用格式:

pid=fork()

n参数定义:

intfork()

nfork()返回值意义如下:

0:

在子进程中,pid变量保存的fork()返回值为0,表示当前进程是子进程。

>

在父进程中,pid变量保存的fork()返回值为子进程的id值(进程唯一标识符)。

-1:

创建失败。

n如果fork()调用成功,它向父进程返回子进程的PID,并向子进程返回0,即fork()被调用了一次,但返回了两次。

此时OS在内存中建立一个新进程,所建的新进程是调用fork()父进程(parentprocess)的副本,称为子进程(childprocess)。

子进程继承了父进程的许多特性,并具有与父进程完全相同的用户级上下文。

父进程与子进程并发执行。

核心为fork()完成以下操作:

n为新进程分配一进程表项和进程标识符

进入fork()后,核心检查系统是否有足够的资源来建立一个新进程。

若资源不足,则fork()系统调用失败;

否则,核心为新进程分配一进程表项和唯一的进程标识符。

n检查同时运行的进程数目

超过预先规定的最大数目时,fork()系统调用失败。

n拷贝进程表项中的数据

将父进程的当前目录和所有已打开的数据拷贝到子进程表项中,并置进程的状态为“创建”状态。

n子进程继承父进程的所有文件

对父进程当前目录和所有已打开的文件表项中的引用计数加1。

n为子进程创建进程上、下文

进程创建结束,设子进程状态为“内存中就绪”并返回子进程的标识符。

n子进程执行

虽然父进程与子进程程序完全相同,但每个进程都有自己的程序计数器PC(注意子进程的PC开始位置),然后根据pid变量保存的fork()返回值的不同,执行了不同的分支语句。

wait()

n等待子进程运行结束。

如果子进程没有完成,父进程一直等待。

wait()将调用进程挂起,直至其子进程因暂停或终止而发来软中断信号为止。

如果在wait()前已有子进程暂停或终止,则调用进程做适当处理后便返回。

intwait(status) 

int*status;

n其中,status是用户空间的地址。

它的低8位反应子进程状态,为0表示子进程正常结束,非0则表示出现了各种各样的问题;

高8位则带回了exit()的返回值。

exit()返回值由系统给出。

实验中用到的系统调用

核心对wait()作以下处理:

n首先查找调用进程是否有子进程,若无,则返回出错码;

n若找到一处于“僵死状态”的子进程,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1