Exam05实验0 Linux操作系统环境.docx
- 文档编号:6638674
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:14
- 大小:135.17KB
Exam05实验0 Linux操作系统环境.docx
《Exam05实验0 Linux操作系统环境.docx》由会员分享,可在线阅读,更多相关《Exam05实验0 Linux操作系统环境.docx(14页珍藏版)》请在冰豆网上搜索。
Exam05实验0Linux操作系统环境
实验0Linux操作系统环境
实验提示:
1.Linux命令行的语法结构:
$command[[-]option(s)][optionargument(s)][commandargument(s)]
含义:
●$:
linux系统提示符,您的linux系统可能是其他的提示符
●Command:
linux命令的名字
●[[-]option(s)]:
改变命令行为的一个或多个修饰符,即选项
●[optionargument(s)]:
选项的参数
●[commandargument(s)]:
命令的参数
2.登录Linux系统
(1)基于文本界面的登录
有多种登录到Linux系统的方法。
在WINDOWS操作系统中通过因特网连接到Linux系统和通过局域网连接到Linux系统;如果你的计算机上已安装好Linux系统,就可以很方便使用文本界面登录了。
1)通过因特网连接
这种方式连接,通常是在WINDOWS操作系统下连接到Linux操作系统。
一般使用远程登录软件连接到因特网的开放Linux服务器上。
因特网中的开放Linux服务器很多,如:
。
在WINDOWS操作系统下使用的远程登录软件连接Linux服务器,远程登录软件有各种版本的SSH、telnet等。
你可以在SecureShellClient”程序,选择Edit→Settings菜单,输入Linux服务器的ip地址或主机名及用户名。
SSH的设置为:
Host为,User为lab,Port为22,如图1-2所示。
对于一个Linux服务器,SSH设置一次就可以了。
图1-2设置SSH连接参数
SSH设置完成后,你就可以连接Linux服务器了。
每一次连接Linux服务器,只要这样操作就可以了:
选择File→QuickConnect菜单;屏幕显示“ConnecttoRemoteHost”对话框后,单击“Connect”按钮;最后输入登录密码,密码检查通过后,屏幕显示如图1-3所示。
这样你就可以使用Linux系统的各种命令了。
图1-3登录Linux系统
2)局域网连接
局域网连接方法与因特网相似,不同的是你所连接的Linux服务器在你计算机系统的局域网中。
3)独立连接
你使用的是一台装有Linux系统的计算机,这台计算机的Linux系统没有安装GNOME或KDE等桌面系统。
在系统启动后,需要向系统输入正确的用户名和登录密码。
Login:
yourusername
Password:
yourpassword
在成功登录到Linux系统后,屏幕会出现一个诸如“$”(作者的fedoracore的命令提示符是“$”,你的Linux系统有可能是其他的符号)的shell提示符。
接着用户可以使用各种各样的Linux命令了。
(2)基于图形用户界面
你使用的计算机系统是安装了GNOME或KDE图形桌面的Linux系统,可以使用图形界面的登录窗口登录到Linux系统中。
使用图形界面登录也需要输入用户名和密码。
在WINDOWS操作系统下,你可以使用Xmanager等软件,连接到因特网或局域网的Linux服务器上,这样也可以使用Linux的图形界面。
在图形界面中选择“应用程序→附件→终端”(不同的发行版本Linux系统,打开终端的方法可能有所不同)菜单,新建终端操作进入文本界面。
Linux的很多命令需要在文本界面下完成的,Linux操作系统用户使用的命令要比WINDOWS操作系统多,且功能强大。
Linux操作系统与WINDOWS操作系统在图形界面中的使用和操作基本相似。
3.退出Linux系统
正确退出Linux系统或者离开系统的过程和登录的过程同样重要。
在文本界面,退出Linux系统时,在shell提示符后按
Linux系统登录提示符重新出现在屏幕上,接着允许下一次会话。
如果你在这次会话中开了一个新的shell而且在退出前没有退出那个shell,Linux会提示Notloginshell,而且你无法立即退出。
在这种情况下,按
如果开启了一个以上的shell而且在退出前没有退出这些shell,必须对每个没有终止的shell使用
在图形界面退出Linux系统就很简单了,不需要再介绍了。
4.Linux是文本驱动(text-driven)的操作系统,Linux常用的编辑器有:
●文本界面下的编辑器
⏹vi:
UNIX类操作系统通用编辑器,只要你习惯于操作,你会觉得它比任何的编辑器都好用,且功能强大。
⏹pico或nano:
一种风格很像MicrosoftDOS的EDIT的一种文本编辑器。
一些发行版没有安装。
⏹emacs:
linux编辑器,功能强大的全屏幕编辑器。
⏹命令行方式建议使用emacs或vi
●图形界面的编辑器
⏹emacs编程编辑器
⏹gedit、kedit全屏幕文本编辑程序
5.Linux文件系统的结构如下:
Linux系统主要目录说明:
▪/bin:
也称二进制(binary)目录,包含了那些供系统管理员和普通用户使用的重要的Linux命令的可执行文件。
一些常用的命令有:
bash、cat、chmod、cp、date、echo、kill、ln、mail、mkdir、more、mv、ps、pwd、rm、rmdir、sh、stty、su、tcsh、uname和vi。
一些用于系统恢复的命令如:
tar、gzip、gunzip和zcat。
还有一些网络命令如:
domainname、hostname、netstat和ping。
目录/usr/bin下存放了大部分的用户命令。
▪/boot:
在这个目录下存放系统启动时要用到的程序。
包括Linux内核的二进制映像。
内核文件名是vmlinux加上版本和发布信息。
▪/dev:
dev是设备(device)的英文缩写。
在这个目录中包含了所有linux系统中使用的外部设备。
但是这里并不是放的外部设备的驱动程序。
▪/etc:
etc这个目录是linux系统中最重要的目录之一。
在这个目录下存放了系统管理时要用到的各种配置文件和子目录。
我们要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。
▪/sbin:
这个目录是用来存放系统管理员的系统管理程序。
▪/home:
存放用户的主目录。
如果建立一个用户,用户名是“ji”,那么在/home目录下就有一个对应的/home/ji路径,用来存放用户的主目录。
▪/lib:
lib是库(library)英文缩写。
这个目录是用来存放系统动态连接共享库的。
几乎所有的应用程序都会用到这个目录下的共享库。
▪/mnt:
这个目录主要用来临时装载文件系统,系统管理员运行mount命令完成装载工作。
▪/opt:
该目录用来安附加软件包
▪/proc:
目录存放了进程和系统得信息,可以在这个目录下获取系统信息。
这些信息是在内存中,由系统自己产生的。
▪/root:
根(root)用户的主目录。
如果用户是以超级用户的身份登录的,这个就是超级用户的主目录。
▪/sbin,/usr/sbin,/usr/root/sbin:
存放了系统管理的工具、应用软件和通用的root用户权限的命令。
▪/tmp:
用来存放不同程序执行时产生的临时文件。
▪/usr:
是linux文件系统中最大的目录之一。
它存放了可以在不同主机间共享的只读数据。
▪/lost+found:
目录中存放所有和其他目录没有关联的的文件,这些文件可以用Linux工具fsck查找得到。
▪/sbin:
/usr/sbin:
/usr/local/sbin:
Containssystemadministrationcommandfilesthatcanonlyberunbytherootuser.
▪/var:
用来存放易变的数据,这些数据在系统运行过程中会不断变化。
/var/spool/mail存放收到的电子邮件,/var/log存放系统的日志。
6.在Linux系统中,一个文件的用户类型有三种:
所有者(ownerusers)、组(groupusers)、其他人(Otherusers)
Linux系统中,文件有三种访问权限:
读(r)--允许读某个文件;写(w)--允许写、修改和删除某个文件;执行(x)--允许执行(run)某个文件。
对于一个目录而言:
读(r)--允许用户列出目录的内容,使用ls命令;写(w)--允许用户在目录下建立新文件,删除子目录和文件;执行(x)--允许用户搜索这个目录,用cd命令。
使用ls-l或ls-ld命令显示文件的访问权限:
7.linux系统中,进程可以在前台或后台运行。
前台进程在运行结束前一直控制着终端。
若干个命令用分号(;)分隔形成一个命令行,用圆括弧把多个命令挂起来,他们就在一个进程里执行。
使用“&”符作为命令分隔符,命令将并发执行。
可以在命令行末尾加“&”使之成为后台命令。
实验内容:
1.使用下面的命令显示有关你计算机系统信息:
uname(显示操作系统的名称),uname–n(显示系统域名),uname–p(显示系统的CPU名称)
1)你的操作系统名字是什么?
2)你计算机系统的域名是什么?
3)你计算机系统的CPU名字是什么?
2.使用whoami命令找到用户名。
然后使用who-a命令来看看你的用户名和同一系统其他用户的列表。
3.用pwd显示你的主目录(homedirectory)名字,给出pwd显示的结果。
4.vi编辑器的使用:
a.在shell提示符下,输入vifirscrip并按
vi的界面将出现在显示屏上;
b.输入a,输入ls–la,并按
c.输入who,并按
d.输入pwd,再按
这时屏幕将如下图所示:
ls–la
who
pwd
~
~
~
~
~
e.输入
f.再输入:
wq,并按
g.在shell提示符下,输入bash./firscrip并按
h.观察结果。
当前的工作目录中有多少个文件?
他们的名称和大小?
还有谁在使用你的计算机系统?
当前的工作目录是什么?
5.在你的主目录下建立如下图所示的目录树。
“YourHomeDirectory”表示你的主目录,不需要再建立。
给出完成这项工作的所有会话。
(会话是指你命令的输入和结果的输出,你提交的作业要包含这些内容)
6.在系统中,执行cdprofessional/courses命令,回答下列问题:
a.你的主目录的绝对路径是什么?
给出获得该绝对路径的命令及命令输出。
b.acm目录的绝对路径是什么?
c.给出acm目录的两个相对路径。
d.执行cdmajor/cs381/labs命令。
然后执行一个命令显示当前目录的绝对路径,给出这个会话过程。
e.给出三个不同的命令,返回到你的主目录。
7.改变目录到/usr。
在这个目录下有多少个文件和目录,他们的文件内容类型是什么?
8.在/usr/bin目录下有多少个普通文件、目录文件和链接文件?
如何得到这个答案?
9.你系统中的Linux内核映像文件在那个目录中?
给出这个可执行内核映像文件的名称和文件内容类型。
10.显示你的主目录下的所有隐含文件的文件名。
给出你的会话过程。
11.创建几个大小不等的文本文件,供本实验和后面几个实验用。
用mancat>mediumFile命令创建中等大小的文件;用manbash>largeFile命令创建一个大文件;再创建一个名字为smallFile关于学生数据的小文件,文件每行内容(蓝色字体部分)如下,注意字段之间用tab符隔开:
FirstNameLastNameMajorGPAEmailPhone
Hereistheminimumamountofdatathatyouwillhaveinthisfile.
JohnDoeECE3.54doe@jd.home.org111.222.3333
JamesDavisECE3.71davis@jd.work.org111.222.1111
AlDavisCS2.63davis@a.lakers.org111.222.2222
AhmadRashidMBA3.04ahmad@mba.org111.222.4444
SamChuECE3.68chu@111.222.5555
ArunRoySS3.86roy@ss.arts.edu111.222.8888
RickMarshCS2.34marsh@a.b.org111.222.6666
JamesAdamCS2.77jadam@a.b.org111.222.7777
ArtPohmECE4.00pohm@ap.a.org111.222.9999
JohnClarkECE2.68clark@111.111.5555
NabeelAliEE3.56ali@ee.eng.edu111.111.8888
TomNelsonECE3.81nelson@tn.abc.org111.111.6666
PatKingSS3.77king@pk.xyz.org111.111.7777
JakeZuluCS3.00zulu@jz.sa.org111.111.9999
JohnLeeEE3.64jlee@111.111.2222
SunilRajECE3.86raj@sr.cs.edu111.111.3333
CharlesRightEECS3.31right@cr.abc.edu111.111.4444
DianeRoverECE3.87rover@dr.xyz.edu111.111.5555
AzizInanEECS3.75ainan@ai.abc.edu111.111.1111
12.显示largeFile文件的开始12行内容,显示smallFile文件的最后5行内容,要用什么命令?
哪个命令能显示smallFile文件从第6行开始到结束,且逆序显示?
给出你的会话。
13.把dataFile文件复制为smallFile文件的拷贝。
用ls–l命令观察这两个文件的修改时间是否一样?
再把文件名dataFile改成(移动)newDataFile,文件newDataFile的inode多少?
给出完成上述工作的会话过程。
14.在屏幕上显示文件smallFile、mediumFile、largeFile和/tmp/newDataFile的字节数、字数和行数。
smallFile和/tmp/newDataFile文件应该是相同的。
你能用其它命令给出这些文件的字节数的大小吗?
什么命令。
给出会话过程。
15.以GPA作为关键字排序文件SmallFile中的数据,忽略空格。
给出会话过程。
16.搜索你的主目录,找到所有的HTML和C程序文件(文件有.html、.htm或.c扩展名),显示符合要求的文件路径和文件名。
给出你的会话。
17.下面的命令在什么地方:
ftp、ssh、tar、telnet、passwd和find?
给出会话过程。
18.在~/temp目录下创建名为d1、d2和d3的目录。
把文件smallFile拷贝到d1目录下,长列表格式显示文件smallFile,显示的内容包括inode号、访问权限、硬链接数、文件大小。
给出完成这些工作的会话。
19.在temp目录下,把当前目录改变成d2。
创建一个名字为newFile.hard硬链接到d1目录下的smallFile文件。
长列表格式显示newFile.hard文件,与smallFile文件的属性进行比较。
你如何确定smallFile和smallFile.hard是同一文件的两个名字,是链接数吗?
给出你的会话过程。
20.创建一个名字为~/temp/d2/smallFile.soft软链接到~/temp/d1/smallFile文件。
长列表格式显示smallFile.soft文件,比较这两个文件的属性。
你如何确定smallFile和smallFile.soft是两个不同的文件?
是这两个文件的大小吗?
给出你的会话过程。
21.在你的主目录中的temp、professional和personal三个子目录,设置使自己(owner)拥有读、写、执行3种访问权限,设置其它用户只有读和执行权限。
在~/temp目录下创建名为d1、d2和d3的目录。
在d1目录下,用touch命令创建一个名为f1的空文件。
给出d1、d2、d3和f1的访问权限。
给出完成这些工作的会话。
22.在你进入系统中,有多少进程在运行?
进程init、bash、ps的PID是多少。
给出你得到这些信息的会话过程。
23.请用一行命令实现以下功能,它一小时后再屏幕上显示文字“TimeforLunch”来提醒你去吃午餐。
给出会话过程。
注:
可以使用sleep和echo命令
24.写一命令行,使得date、uname–a、who和ps并发执行。
给出会话过程。
25.本实验目的学习c程序设计,观察进程运行。
自己去查找下面源程序中的函数(或系统调用)的功能。
创建一个文件名为test.c的c语言文件,内容如下:
#include
main()
{
inti;
i=0;
sleep(10);
while(i<5){
system("date");
sleep(5);
i++;
}
while
(1){
system("date");
sleep(10);
}
}
在shell提示符下,依次运行下列三个命令:
gcc–ogeneratetest.c
./generate>>dataFile&
tail–fdataFile
●第一个命令生成一个c语言的可执行文件,文件名为generate;
●第二个命令是每隔5秒和10秒把date命令的输出追加到dataFile文件中,这个命令为后台执行,注意后台执行的命令尾部加上&字符;
●最后一个命令tail–fdataFile,显示dataFile文件的当前内容和新追加的数据:
在输入tail-f命令1分钟左右后,按
用kill-9pid命令终止generate后台进程的执行。
最后用taildataFile命令显示文件追加的内容。
给出这些过程的你的会话。
注:
pid是执行generate程序的进程号;使用generate>>dataFile&命令后,屏幕打印后台进程作业号和进程号,其中第一个字段方括号内的数字为作业号,第二个数字为进程号;也可以用kill-9%job终止generate后台进程,job为作业号。
26.在操作系统分析及实验课程中要对linux内核进行修改,用make工具编译,要掌握make的规则。
makfie文件中的每一行是描述文件间依赖关系的make规则。
本实验是关于makefile内容的,您不需要在计算机上进行编程运行,只要书面回答下面这些问题。
对于下面的makefile:
CC=gcc
OPTIONS=-O3-o
OBJECTS=main.ostack.omisc.o
SOURCES=main.cstack.cmisc.c
HEADERS-main.hstack.hmisc.h
polish:
main.c$(OPJECTS)
$(CC)$(OPTIONS)power$(OBJECTS)-lm
main.o:
main.cmain.hmisc.h
stack.o:
stack.cstack.hmisc.h
misc.o:
misc.cmisc.h
回答下列问题
a.所有宏定义的名字
b.所有目标文件的名字
c.每个目标的依赖文件
d.生成每个目标文件所需执行的命令
e.画出makefile对应的依赖关系树。
f.生成main.ostack.o和misc.o时会执行哪些命令,为什么?
27.用编辑器创建main.c,compute.c,input.c,compute.h,input.h和main.h文件。
下面是它们的内容。
注意compute.h和input.h文件仅包含了compute和input函数的声明但没有定义。
定义部分是在compute.c和input.c文件中。
main.c包含的是两条显示给用户的提示信息。
$catcompute.h
/*compute函数的声明原形*/
doublecompute(double,double);
$catinput.h
/*input函数的声明原形*/
doubleinput(char*);
$catmain.h
/*声明用户提示*/
#definePROMPT1"请输入x的值:
"
#definePROMPT2"请输入y的值:
"
$catcompute.c
#include
#include
#include"compute.h"
doublecompute(doublex,doubley)
{
return(pow((double)x,(double)y));
}
$catinput.c
#include
#include"input.h"
doubleinput(char*s)
{
floatx;
printf("%s",s);
scanf("%f",&x);
return(x);
}
$catmain.c
#include
#include"main.h"
#include"compute.h"
#include"input.h"
main()
{
doublex,y;
printf("本程序从标准输入获取x和y的值并显示x的y次方.\n");
x=input(PROMPT1);
y=input(PROMPT2);
printf("x的y次方是:
%6.3f\n",compute(x,y));
}
$
为了得到可执行文件power,我们必须首先从三个源文件编译得到目标文件,并把它们连接在一起。
下面的命令将完成这一任务。
注意,在生成可执行代码时不要忘了连接上数学库。
$gcc-cmain.cinput.ccompute.c
$gccmai
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Exam05实验0 Linux操作系统环境 Exam05 实验 Linux 操作系统 环境
![提示](https://static.bdocx.com/images/bang_tan.gif)