操作系统实验一:Linux命令接口

一、实验目的

通过本实验,要求学生熟练掌握Linux各种文件操作命令,包括:使用控制字符执行特殊功能;使用file和strings命令确定文件类型;使用cat利more命令显示文本文件的内容;使用head和tail命令显示文本文件的部分内容;使用wc命令确定单词、行和字符数;使用diff命令比较2个文件;回顾文件和目录命名约定;使用touch命令创建新文件;使用mkdir命令创建新目录;使用rm命令删除文件;使用rm -r命令删除目录。

二、实验环境

硬件环境:计算机一台,局域网环境;
软件环境: Linux Redhat 9.0或Ubumtu操作系统平台、MacOX或其他类似Unix系统。

三、实验内容和步骤
  1. 文件信息命令
    步骤1:开机,登录进入GNOME(或你所用Linux版本提供的图形用户接口)。
    在GNOME登录框中填写指导老师分配的用户名和口令并登录。
    步骤2:访问命令行。
    单击红帽子,在“GNOME帮助”菜单中单击“系统工具”-“终端”命令,打开终端窗口。(不同的Linux版本所提供的终端访问的位置可能不同)
    步骤3:使用控制字符执行特殊功能。
    控制字符用来执行特殊的作业,如中止和启动屏幕输出。
    大多数PC键盘有两个控制键。它们通常标记为Ctr1,可以在键盘的左右下角找到。为了输入一个控制字符序列,可按住Ctrl键不放,然后按下键盘上相应的字符。
    Ctrl + C:中断当前活动。当你在csh中键入一个不可识别的命令行 (例如,$ls “) ,收到第2个提示符的时候,Ctrl + C也可以用于恢复shell提示符。
    Ctrl + Z:终止当前活动。显示ls命令的手册页面 (man ls) ,然后使用Ctrl -z中止输出。
    当你接下Ctrl + Z的时候,发生了什么事情?
    当前活动被终止__________________________________________________________________

Ctrl + D:表示文件的末尾或者退出。 Ctrl + D用于退出一些Linux工具程序 (bc、write等) ,退出一个终端窗口,注销一个终端会话或者命令行登录会话。作为一个一般的规则,当您出现“死机”时,或者如果Ctrl + C不起作用,可试试Ctrl + D。例如:

  1. 在shell提示符下键入bc,启动基本的计算器工具程序。
  2. 把两个数字相乘 (键入:458*594,然后按回车键) 。
  3. 按Ctrl + D退出计算器。
    当使用计算器的时候,你的提示符是什么?
    Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty’.
    请添加图片描述

Ctrl + U :擦除整个命令行。Ctrl + U最常用在:
· 一个擦除决定不执行的命令行的快捷方式。
· 如果登录到一个远程系统,退格键不起作用。
· 它可以确保在登录的时候,从一个“空”的用户帐号和口令输入开始。
· 因为在口令输入的时候看不见它们,当知道自己键入了错误字符的时候,使用Ctrl + U擦除密码,重新开始输入。
如果输入一个命令,如ls –R/,有时候,会在按下回车键之前想擦除命令行。输入一个命令,在接下回车键执行命令之前按下Ctrl + U。结果是什么?
整行命令被删除__________________________________________________________________


步骤4:使用file命令确定文件类型。
在Linux系统中可以找到许多类型的文件。文件类型可以通过使用file命令来确定。当一个用户试图打开或阅读一个文件的时候,这个信息很重要。确定文件类型可以帮助一个用户决定使用哪个程序或命令来打开这个文件。这个命令的输出最常见的是如下几种:文本文件、可执行文件或数据文件。

  1. 文本文件:包括ASCII或英语文本、命令文本和可执行的shell脚本。这种类型的文件可以使用cat或more命令读取,可以使用vi或其他文本编辑器编辑。
    单击红帽子,在“GNOME帮助”菜单中单击“辅助设施”-“Text Editor”命令,在文本编辑中键入适当内容并保存为test文件。
    使用file命令来确定test文件的文件类型。它是哪种类型的文件?
    ASCI
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实验linux 内核编译及添加系统调用 设计目的 Linux 是开源操作系统,用户可以根据自身系统需要裁剪、修改内核,定制出功能更加 合适、运行效率更高的系统,因此,编译 linux 内核是进行内核开发的必要基本功。 在系统中根据需要添加新的系统调用是修改内核的一种常用手段,通过本次实验,读 者应理解 linux 系统处理系统调用的流程以及增加系统调用的方法。 内容要求 (1) 添加一个系统调用,实现对指定进程的 nice 值的修改或读取功能,并返回进程最 新的 nice 值及优先级 prio。建议调用原型为: int mysetnice(pid_t pid, int flag, int nicevalue, void __user * prio, void __user * nice); 参数含义: pid:进程 ID。 flag:若值为 0,表示读取 nice 值;若值为 1,表示修改 nice 值。 Prio、nice:进程当前优先级及 nice 值。 返回值:系统调用成功时返回 0,失败时返回错误码 EFAULT。 (2) 写一个简单的应用程序测试(1)中添加的系统调用。 (3) 若程序中调用了 linux 的内核函数,要求深入阅读相关函数源码。 实验linux 内核模块编程 设计目的 Linux 提供的模块机制能动态扩充 linux 功能而无需重新编译内核,已经广泛应用在 linux 内核的许多功能的实现中。在本实验中将学习模块的基本概念、原理及实现技术,然后利 用内核模块编程访问进程的基本信息,从而加深对进程概念的理解、对模块编程技术的掌 握。 内容要求 (1) 设计一个模块,要求列出系统中所有内核线程的程序名、PID 号、进程状态及 进程优先级。 (2) 设计一个带参数的模块,其参数为某个进程的 PID 号,该模块的功能是列出该 进程的家族信息,包括父进程、兄弟进程和子进程的程序名、PID 号。 (3) 请根据自身情况,进一步阅读分析程序中用到的相关内核函数的源码实现。 实验linux 进程管理 设计目的 (1) 熟悉 linux命令接口。 (2) 通过对 linux 进程控制的相关系统调用的编程应用,进一步加深对进程概念的理解, 明确进程和程序的联系和区别,理解进程并发执行的具体含义。 (3) 通过 Linux 管道通信机制、消息队列通信机制、共享内存通信机制的使用,加深 对不同类型的进程通信方式的理解。 (4) 通过对 linux 的 Posix 信号量的应用,加深对信号量同步机制的理解。 (5)请根据自身情况,进一步阅读分析相关系统调用的内核源码实现。 设计内容 (1)熟悉 linux 常用命令:pwd,useradd,passwd, who, ps, pstree, kill, top, ls, cd, mkdir, rmdir, cp, rm, mv, cat, more, grep 等。 (2) 实现一个模拟的 shell: 编写三个不同的程序 cmd1.c,cmd2.c,cmd3.c,每个程序的功能自定,分别编译成可执 行件 cmd1,cmd2,cmd3。然后再编写一个程序,模拟 shell 程序的功能,能根据用户输 入的字符串(表示相应的命令名),去为相应的命令创建子进程并让它去执行相应的程序,而父进程则等待子进程结束,然后再等待接收下一条命令。如果接收到的命令为 exit,则父 进程结束;如果接收到的命令是无效命令,则显示“Command not found”,继续等待。 (3) 实现一个管道通信程序: 由父进程创建一个管道,然后再创建 3 个子进程,并由这三个子进程利用管道与父进程 之间进行通信:子进程发送信息,父进程等三个子进程全部发完消息后再接收信息。通信的 具体内容可根据自己的需要随意设计,要求能试验阻塞型读写过程中的各种情况,测试管道 的默认大小,并且要求利用 Posix 信号量机制实现进程间对管道的互斥访问。运行程序,观 察各种情况下,进程实际读写的字节数以及进程阻塞唤醒的情况。 (4) 利用 linux 的消息队列通信机制实现两个线程间的通信: 编写程序创建两个线程:sender 线程和 receive 线程,其中 sender 线程运行函数 sender(), 它创建一个消息队列,然后,循环等待用户通过终端输入一串字符,将这串字符通过消息队 列发送给 receiver 线程,直到用户输入“exit”为止;最后,它向 receiver 线程发送消息“end”, 并且等待 receiver 的应答,等到应答消息后,将接收到的应答信息显示在终端屏幕上,删除 相关消息队列,结束程序的运行。Receiver 线程运行 rece

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值