17莫贤彬02实验2.docx
《17莫贤彬02实验2.docx》由会员分享,可在线阅读,更多相关《17莫贤彬02实验2.docx(22页珍藏版)》请在冰点文库上搜索。
![17莫贤彬02实验2.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/1f27e2d3-bf14-465c-b6a3-78e3c1349fe8/1f27e2d3-bf14-465c-b6a3-78e3c1349fe81.gif)
17莫贤彬02实验2
广东技术师范学院实验报告
学院:
计科院
专业:
物联网工程
班级:
12物联网
成绩:
姓名:
莫贤彬
学号:
17
组别:
组员:
实验地点:
工业中心204
实验日期:
指导教师签名:
预习情况
操作情况
考勤情况
数据处理情况
实验2项目名称:
基本命令与工具
(一)
1、实验目的
学习Linux命令的基本结构,掌握Linux操作系统的基本命令使用方法,为进一步学习Linux高级命令的使用做准备。
2、实验内容
2.1回顾:
UNIX系统的基本结构
尽管我们在《操作系统原理》中已经了解过UNIX系统,但在这里仍有必要对UNIX系统的基本结构作简单的回顾,目的是要更好地理解AIX操作系统基本工作原理。
UNIX系统包括两级:
用户级和核心级。
用户程序通过系统调用界面获得内核的服务。
核心级中包括进程控制子系统、文件子系统,设备系统等,底层是操作系统对硬件层的控制。
如果要对UNIX系统结构做一个最简单的划分,就是内核(kernel)和“外壳”(shell)了。
系统管理的大部分工作,都需要通过字符终端在shell下完成。
Shell就是用户使用操作系统各种功能的基本界面。
课程实验的许多内容,都是在shell中展开的。
Linux系统初始化时就会自动启动shell。
用户是通过一个所谓的字符终端去从用户登录到用户退出登录,用户输入的每个命令都要由shell接收,并由shell去解释输入的命令。
如果用户输入的命令正确,shell会去调用相应的命令或程序,并由内核负责其执行,从而实现用户所要求的功能。
UNIX的Shell有许多种,有BourneShell,CShell,Bourne-AgainShell(简称Bash,最流行的shell),kornShell(简称kshell)。
Linux默认使用Bash,但也有使用kshell等其他shell的。
要知道现在所在系统的shell类型,可利用字符终端登录系统后用命令查看当前系统使用的shell类型:
$echo$SHELL
/bin/bash
2.2字符终端的概念(补充教材4.1节)
一谈到字符终端,许多人就会贴上“落后”的标签,毕竟图形界面已经广泛使用,有许多用户已不能接受输入命令的方式。
事实上,随着现今Linux桌面的不断发展,应用程序的逐渐丰富,因此字符终端在许多场合中并不是必须的。
不过,从上述UNIX结构中,你会发现shell在UNIX中的作用远非一个用户操作的界面那么简单。
总的来说,SHELL是一个解释器,对命令进行解释并交由内核执行,命令的输入和处理就需要依靠字符终端来实现。
要注意到是,在本地Linux系统使用的字符终端与远程连接Linux系统所使用的字符终端软件本质上是一样的。
利用字符终端,用户通过一定的协议实现远程登录并使用机器,主要有telnet协议和SSH协议。
由于Telnet的不安全性,Linux下多用SSH协议。
SSH为SecureShell的缩写,是专为远程登录会话和其他网络服务提供安全性的协议。
使用ssh协议的远程访问工具有很多,如SecureShellClient、PuTTY等,可自行上述下载。
此外需要补充的是,在字符终端上用户能利用SHELL语言编写具有强大系统管理功能的脚本,这些功能是图形界面所不具备的。
作为一个复杂的应用程序,图形界面出错的可能性比字符终端要高得多,字符终端的稳定性对于服务器应用的场合来说还是很有必要的。
2.3命令的基本格式(补充教材4.1.3节)
当你通过字符终端登录后,便进入命令提示符,命令提示符有许多表达形式,可以附带用户名和主机名称等信息,但也可以很简洁。
下图是一个典型的命令提示
UNIX中一个基本命令包含三个要素:
命令名、选项、参数。
本质上命令名是指用户要运行的程序的名称。
用户通过设定选项指出命令要执行的特定功能,参数是命令执行时需要的输入值。
选项和参数不是一定要填写的。
命令名、选项、参数都区分大小写,它们通过空格或制表符(TAB键)隔开。
初学者经常容易犯的一个错误是把选项和参数混淆,一般来说,选项带有符号“-”,如“-a”,而参数没有,但也有特例,在学习具体例子时会指出。
此外,选项和参数都是可以多个的。
如果需要多个选项,可把选项连续表示,如“-abc”,也可以单独表示,如“-a-b-c”,但选项间需要用空格区分开来。
多个参数也是需要用空格隔开。
为什么要用空格把命令名、参数、选项隔开?
因为shell作为解释器,以空格或制表符作为间隔标志来读取命令,如果没有空格隔开,从语法上shell就会认为是一个独立的整体而对其进行解释。
下面是一些命令的例子,大家指出哪部分是命令名,选项和参数:
#wc-cl/etc/inittab
#find.-name"unix"–print
#kill-923094
2.4一些常用的基本命令(补充4.2节)
下面介绍一些常用的基本命令(除4.2节所介绍的基本命令外,考虑到后面使用系统的需要,一些重要的基本命令也提前讨论),这些命令是一些日常系统管理时经常用到的工具,掌握这些命令以及下面所提及的选项是系统管理所必需的(课程要求能熟练使用)。
注意由于不同发行版本的Linux安装的shell命令有所不同,所以下面部分shell命令未必在你所使用的Linux中已安装,如遇此情况请尝试安装该命令。
教材以及许多参考书都有关于Linux命令的详细介绍,使用Linux中的man命令也能够得到某条命令的手册。
此处再给出一个链接供查阅和学习Linux常用命令:
(1)who命令
功能:
列出当前系统注册的用户,另外有whoami命令
选项:
无
参数:
无
例子:
注意看系统有多少人在线,并思考以下问题,如何自动统计在线人数?
#who
#whoami
(2)ls命令
功能:
显示目录内容
格式:
ls[选项][文件或目录]
选项:
-a:
列出目录中所有项,包括以“.”开始的项(以点开头的为隐藏文件)
-l:
以列表形式显示文件
-R:
递归列出所有
例子:
注意对比三个命令的结果差异
#ls-a/etc
#ls-al/etc
#ls-R/ect
(3)pwd
功能:
显示当前目录
选项:
无
例子:
#pwd
(4)cd命令
功能:
更改当前目录
格式:
cd[选项][文件或目录]
选项:
无
例子:
注意三个cd命令的区别和结果
#cd/proc
#ls
#cd~
#ls
#cd..
#ls
(5)touch命令
功能:
更新一个文件的访问和修改时间,如果没有对应文件则新建该文件
格式:
touch文件名
例子:
注意前一次使用stat命令和后一次使用stat命令的返回结果的差异
#cd~
#touchtt
#stattt
#touchtt
#stattt
(6)stat命令和file命令
功能:
获得关于某文件的基本信息
格式:
stat文件/file命令
例子:
stat命令和file命令在功能上的差异
#touchtest
#stattest
#filetest
(7)mv命令
功能:
移动或重命名文件或目录
格式:
mv[选项]源文件或目录目的文件或目录
选项:
-b:
若存在同名文件,覆盖前先备份(backup)原来的文件
-f:
强制(force)覆盖同名文件
例子:
留意最后目录中是否多了一个备份文件(文件末尾有“~”符号)
#cd~
#touchttt
#touchtt
#mv–bttttt
#ls
(8)cp命令
功能:
复制文件或目录
格式:
cp[选项]源文件或源目录目的文件或目的目录
选项:
-f:
强制(force)覆盖同名文件
-b:
若存在同名文件,覆盖前先备份(backup)原来的文件
-r:
-r选项是以递归方式复制文件
#cd~
#cpaacopy
#ls
(9)rm命令
功能:
删除文件或目录
格式:
rm[选项]文件或目录
选项:
-f:
强制(force)删除文件
-r:
rm命令默认只删除文件,-r选项是以递归方式删除目录
例子:
#cd~
#touchabc
#rmab
#rm–fb
(10)mkdir命令和rmdir命令
功能:
增加文件夹和删除文件夹
格式:
mkdir[选项]目录/rmdir
选项:
无
例子:
注意要删除的文件夹要求是空的,如果里面有文件,则使用“rm–r文件夹”
#cd~
#mkdirtestdir
#cdtestdir
#touchabc
#ls
#cd..
#rmdirtestdir
#rm-rtestdir
(11)cat
功能:
连接或显示文件
格式:
ls[选项][文件]
选项:
-n:
显示行号
#cat/etc/environment
(12)more命令
功能:
分屏显示文本文件的内容。
首先显示一屏后若还有内容,按回车键再显示下一行,按空格键显示另一屏。
格式:
more文件
#more/etc/environment
(13)tail命令
功能:
显示文本文件的结尾部分,默认显示文件的最后10行
格式:
tail[选项][行数][文件]
选项:
-n:
指定显示的行数
#tail-n5/etc/environment
(14)grep命令
功能:
从指定文件或标准输出中中查找符合条件的字符串。
格式:
grep[选项]字符串文件列表
例子:
#grepinit/etc/inittab
(15)wc(WordCount)命令
功能:
依次显示文本文件的行数、字数和字符数
格式:
wc[选项]文件列表
选项:
-c(character):
显示文件的字节数
-l(line):
显示文件的行数
-w(word):
显示文件的单词数
例子:
#wc/etc/inittab
#wc-l/etc/profile/etc/environment
(16)date命令
功能:
查看或修改系统时间
格式:
date
例子:
#date
(17)clear命令
功能:
清除当前终端的屏幕内容
格式:
clear
例子:
#clear
(18)man(manual)命令
功能:
显示对应命令的帮助手册
格式:
man命令名
例子:
查询一个命令有哪些选项可以简单的采用--help选项,但最完整的信息在该命令的manual中。
#mancat
#cat--help
(19)history命令
功能:
查看shell命令的历史记录,如果不使用数字参数,则将查看所有shell命令的历史记录。
如果使用数字参数,则将查看最近执行过指定个数的shell命令。
#history
#history5
2.3vi工具的使用(补充教材4.4节)
在系统管理工作中,经常需要阅读各类配置文件、日志和说明手册,同时也需要编写各种脚本以满足系统管理的需要。
vi编辑器相当于Windows中的“记事本”,但由于是在字符终端下使用编辑器,因此其使用方法与图形界面上的编辑器的使用方法有所不同(最大的不同是鼠标没用了)。
vi编辑器是系统管理员必须熟练掌握的基本工具之一。
UNIX下还有许多编辑器供人们使用,如vim(vi的变种)、Emacs等。
感兴趣的同学可以查阅相关资料。
vi编辑器有三种工作模式:
命令模式、文本编辑模式、最后行模式。
下面分别对该三种模式进行讨论。
(1)命令模式
vi编辑器启动后即进入命令模式,vi的命令往往只有一个字母,而且按下该命令的字母后也不会在屏幕上显示,而是直接处理该命令。
常用的命令有:
i:
从当前的光标位置开始输入字符,vi编辑器进入文本编辑模式
a:
从当前的光标的下一个位置开始输入字符,vi编辑器进入文本编辑模式
o:
在光标所在行之下新增一行
u:
撤销上一步操作
/字符串:
按下“/”键后,屏幕底部出现“/”,在其后输入要查找的字符串,按Enter后,vi讲从光标当前位置开始向文件尾查找,并定位在第一个匹配的单词的地方。
n:
跳到下一个满足查找条件的单词的地方。
(2)文本编辑模式
利用命令模式中的命令进入文本编辑模式后,便可在vi编辑器中进行文字处理。
如果按ESC键则重新回到命令模式。
(3)最后行模式
最后行模式是通过命令模式中的“:
”命令进入的,此时vi会在屏幕底部显示“:
”作为该模式的提示符,用户可在提示符后输入相关命令,主要的命令有:
w文件保存为指定的文件
wq保存并退出vi
q退出vi,如果有文件需要保存则作相应提示
q!
不保存文件而退出vi
作业:
1.对2.4节的每个命令,请同学们根据命令所提供的例子执行命令,并将执行结果的截图附于每个命令的例子之后。
2.请上机完成如下题目,并将上机结果截图附于题目之后,注意不同发行版本的Linux所使用的shell命令集以及配置文件会有所不同,如果题目中所谈及的文件在系统中不存在则可用其他文件替代。
注意题目可能需要一组命令来完成要求。
a)修改当前系统时间为2014年1月1日。
b)分屏显示/etc/inittab文件。
c)查看/etc/inittab文件的最后10行。
d)查看/etc/inittab文件的基本文件信息。
e)以自己的名字在/home目录下新建一个文件夹,把/etc/inittab复制到该文件夹。
然后对整个文件夹进行删除。
f)在/root目录下新建文件夹testdir,并在该文件夹中新建文件test。
然后将test文件夹连同其中的所有文件拷贝到/home下。
g)查看/root目录下的所有文件,指出哪些属于隐藏文件。
h)以列表及递归方式查看/dev目录下的文件。
i)统计文件/etc/environment的行数和单词数。
j)查看ls命令的操作手册。
k)查看当前系统操作历史的前10条命令。
l)新建一个文本,新增一行后输入“hellovi”,保存为vitest后退出。
m)使用vi编辑器打开文件/etc/inittab,并遍历所有包含单词“init”的地方。