《Linux操作系统实验指导手册》由会员分享,可在线阅读,更多相关《Linux操作系统实验指导手册(60页珍藏版)》请在金锄头文库上搜索。
1、Linux操作系统实验指导手册目录Linux上机预备知识3Linux系统常用命令3编辑器的使用5GNU C编译器的使用6实验中常用到的系统调用7实验要求:9实验单元1 进程管理11实验单元2 存储管理12实验单元3 文件系统13操作系统实验报告要求及样本551 操作系统实验报告内容要求552操作系统实验报告样本55一、Linux上机预备知识内容nLinux实验环境n系统调用n其他问题1Linux实验环境:n系统常用命令n编辑器n编译器n调试器Linux系统常用命令n显示目录文件 lsn执行格式: ls -atFlgR name (name可为文件或目录名称)例: ls 显示出当前目录下的文件l
2、s -a 显示出包含隐藏文件的所有文件ls -t 按照文件最后修改时间显示文件 ls -F 显示出当前目录下的文件及其类型ls -l 显示目录下所有文件的许可权、拥有者、文件大 小、修改时间及名称ls -lg 同上ls -R 显示出该目录及其子目录下的文件 n建新目录 mkdirn执行格式: mkdir directory-name例: mkdir dir1新建一个名字为dir1的目录 n删除目录rmdirn执行格式: rmdir directory-name 或 rm directory-name例:rmdir dir1 删除目录dir1,但它必须是空目录, 否则无法删除rm -r dir1
3、 删除目录dir1及其下所有文件及子目 录rm -rf dir1 不管是否空目录,统统删除,而且不 给出提示,使用时要小心 n改变工作目录位置 cdn执行格式: cd name 例: cd 改变目录位置至用户login时的working directorycd dir1 改变目录位置,至dir1目录cd user 改变目录位置,至用户的working directorycd . 改变目录位置,至当前目录的上层目录cd ./user 改变目录位置,至上一级目录下的user目录cd /dir-name1/dir-name2 改变目录位置,至绝对路径cd - 回到进入当前目录前的上一个目录 n显示当
4、前所在目录 pwdn执行格式: pwdLinux常用命令删除文件 rm执行格式: rm filename 例: rm file 删除名字为file的文件 n复制文件 cpn执行格式: cp -r source destination 例: cp file1 file2 将file1复制成file2cp file1 dir1 将file1复制到目录dir1cp /tmp/file1 将file1复制到当前目录cp /tmp/file1 file2 将file1 复制到当前目录名为 file2cp r dir1 dir2 (recursive copy)复制整个目录。 n移动或更改文件、目录名称
5、mvn执行格式: mv source destination例: mv file1 file2 将文件file1,更名为file2mv file1 dir1 将文件file1,移到目录dir1下mv dir1 dir2 将目录dir1,更名为dir2 n查看系统目前的进程 ps n执行格式: ps -aux例: ps 或ps -x 查看系统中属于自己的processps -au 查看系统中所有使用者的processps -aux 查看系统中包含系统内部及所有使用者的processps -aux|grep apache 找出系统中运行的所有名称中带有“apache”串的process n结束或终
6、止进程 killn执行格式: kill -9 PID (PID为利用ps命令所查出的process ID)例: kill 456kill -9 456 终止process ID 为456的process n命令在线帮助 mann执行格式: man command例: man ls 查询ls这个指令的用法编辑器的使用vi编辑器的使用nvi的全称是visual editor,它是在Unix/Linux 上被广泛使用的中英文编辑器。n启动vivi 进入vi编辑器界面,没有为所编辑的文件命名vi filename 进入vi编辑器界面,并将所编辑的文件命名为filename vi提供三种工作模式: n输
7、入编辑模式支持:输入文本信息n命令编辑模式支持:进行删除、修改等操作信息n命令模式支持:进行存盘、退出等操作注意:使用者进入vi后,即处在命令模式下,要输入信息,则要切换至输入模式。 gedit编辑器的使用ngedit是Unix/Linux系统下的另一种中英文文本编辑器,支持窗口模式,更加方便快捷。n启动gedit:gedit 进入gedit编辑器界面,没有为所编辑的文件命名gedit filename 进入gedit编辑器界面,并将所编辑的文件命名为filenameGNU C编译器的使用nLINUX上可用的C编译器是GNU C编译器(GCC),一般的Unix下使用的是CC编译器n通常后跟一些
8、选项和文件名来使用GCC编译器。基本用法如下: gcc options filenamesn通过命令行选项指定编译过程中的具体操作GNU C编译器的使用GCC常用选项nGCC有超过100个的编译选项可用,这些选项中的许多可能永远都不会用到,但一些主要的选项将会频繁使用。很多的GCC选项包括一个以上的字符,因此必须为每个选项指定各自的连字符,并且就像大多数LINUX 命令一样不能在一个单独的连字符后跟一组选项。例如,下面的命令是不同的: gcc -p -g test.c gcc -p test.c 第一条命令告诉GCC编译test.c时为prof命令建立剖析(profile)信息并且把调试信息加
9、入到可执行文件里。第二条命令告诉GCC只为gprof命令建立剖析信息。GNU C编译器的使用GCC常用选项n当不用任何选项编译一个程序时,GCC将建立(假定编译成功)一个名为a.out的可执行文件。例如, gcc test.c 编译成功后,当前目录下就产生了一个a.out文件。n也可用-o选项来为即将产生的可执行文件指定一个文件名来代替a.out。例如: gcc o count count.c 此时得到的可执行文件就不再是a.out,而是count。GNU C编译器的使用执行文件 n格式: ./可执行文件名例:./a.out ./countgdb调试工具的使用nLINUX包含了一个叫gdb的G
10、NU调试程序。gdb是一个用来调试C和C+程序的强有力调试器。它使你能在程序运行时观察程序的内部结构和内存的使用情况。它具有以下一些功能:监视程序中变量的值;设置断点以使程序在指定的代码行上停止执行;一行行的执行代码。gdb调试工具的使用n为了使gdb正常工作,必须使你的程序在编译时包含调试信息。调试信息里包含你程序里的每个变量的类型和在可执行文件里的地址映射以及源代码的行号。gdb利用这些信息使源代码和机器码相关联。n在编译时用 g 选项打开调试选项。gdb调试工具的使用n调试命令gdb调试工具的使用应用举例(1)设有一源程序 test.c(2)编译,gcc -ggdb o greet gr
11、eet.c(3)gdb greet ,出现提示符(gdb),此时可在提示符下输入gdb的命令了,如:(gdb)run(gdb)list(4)退出调试状态,返回系统提示符下, (gdb)quit实验中常用到的系统调用n字面上讲,系统调用(也称为“syscall”)就是一条类似于“add”或者“jump”的指令。从更高的层面上讲,系统调用是用户级程序要求操作系统为它做某些事情的途径。n首先,用户程序为系统调用设置参数。其中一个参数是系统调用编号(稍后对此进行详述)。注意,所有这些都是由库函数自动完成的,除非您是使用汇编编程。参数设置完成后,程序执行“系统调用”指令。这个指令会导致一个异常:产生一个
12、事件,这个事件会致使处理器跳转到一个新的地址,并开始执行那里的代码。 举例说明:nfork( ) 创建进程 stdio.h nwait( )等待子进程运行结束 stdio.hnexit( )终止进程的执行 stdio.hnlockf(files,function,size) 锁定文件 unistd.h nkill( ) 发送信号 signal.h nsignal( ) 预置对信号的处理方式 signal.h 注意:程序中用到系统调用的时候,要包含相关的头文件如: #include fork( ) n创建一个新进程。 n系统调用格式: pid=fork( )n参数定义:int fork( )nfork( )返回值意义如下:0:在子进程中,pid变量保存的fork( )返回值为0,表示当前进程是子进程。0:在父进程中,pid变量保存的for