一、实验目的
通过本实验,要求学生熟练掌握Linux各种文件操作命令,包括:使用控制字符执行特殊功能;使用file和strings命令确定文件类型;使用cat利more命令显示文本文件的内容;使用head和tail命令显示文本文件的部分内容;使用wc命令确定单词、行和字符数;使用diff命令比较2个文件;回顾文件和目录命名约定;使用touch命令创建新文件;使用mkdir命令创建新目录;使用rm命令删除文件;使用rm -r命令删除目录。
二、实验环境
硬件环境:计算机一台,局域网环境;
软件环境: Linux Redhat 9.0或Ubumtu操作系统平台、MacOX或其他类似Unix系统。
三、实验内容和步骤
- 文件信息命令
步骤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。例如:
- 在shell提示符下键入bc,启动基本的计算器工具程序。
- 把两个数字相乘 (键入:458*594,然后按回车键) 。
- 按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命令来确定。当一个用户试图打开或阅读一个文件的时候,这个信息很重要。确定文件类型可以帮助一个用户决定使用哪个程序或命令来打开这个文件。这个命令的输出最常见的是如下几种:文本文件、可执行文件或数据文件。
- 文本文件:包括ASCII或英语文本、命令文本和可执行的shell脚本。这种类型的文件可以使用cat或more命令读取,可以使用vi或其他文本编辑器编辑。
单击红帽子,在“GNOME帮助”菜单中单击“辅助设施”-“Text Editor”命令,在文本编辑中键入适当内容并保存为test文件。
使用file命令来确定test文件的文件类型。它是哪种类型的文件?
ASCII text__________________________________________________________________
- 可执行 (或二进制) 文件:包括32位的可执行文件和可扩展链接格式(ELF) 编码文件,和其他动态链接的可执行文件。这种文件类型表示这个文件是一个命令或程序。
单击红帽子,在“GNOME帮助”菜单中单击“办公”-“OpenOffice.org Writer”命令,建立一个文档如ww.sxw。
使用file命令确定你所建立的文件类型。它是哪种类型的文件?(注意文件名部分必须包括扩展名,如file ww.sxw 。)
可执行文件________________________________________________________________
- 数据文件:数据文件是由系统中运行的应用创建的。在某些情况下,文件的类型是会说明的。例如,FrameMaker (桌面印刷软件) 文档。
使用file命令确定dir1/coffees子目录中beans文件的文件类型。它是什么文件类型的?
Kofficeapplication/x-kword________________________________________________________________
步骤5:使用strings命令。
strings命令可以用于打印可执行文件或者二进制文件中的可读字符。
一些有编程背景的人,可以解释strings产生的输出。这个命令在这里只是作为一个展示可执行文件中可打印字符的方法来介绍。strings命令必须用于读取可执行文件,如 /usr/bin/cat。在大多数情况下,strings命令也可以给出命令的使用语法。
使用strings命令查看 /usr/bin/cal文件的可读字符。列出strings命令中的一些输出。
__/lib/ld-linux.so.2 libc.so.6 strerror wcstombs wcscpy optind --progname getopt vwarn stderr wcswidth util-linux-2.11y
步骤6:使用cat命令显示文件的内容。
cat命令在屏幕上显示一个文本文件的内容。它常用于显示如脚本文件 (类似批处理文件) 这样的短文本文件。如果文件超过一屏的话,必须使用一个屏幕可以滚动的窗口,如GNOME环境中的终端窗口。
键入 ls /dev > dev1
使用cat命令显示主目录中dev1文件的内容。文本的显示出现了什么情况?
显示出了很长一串文本内容,必须按滚动条才能看全部文本内__
步骤7:使用more命令显示文件的内容。
more命令是一个用于显示文本文件首选的方法,因为它会自动的一次显示一屏文件内容。如果文件的信息比一屏更长,屏幕的底部显示如下的信息:–More-- (n%) (文件的n%已经显示) 。按下回车键,继续一次显示一行信息。空格键将继续一次显示一屏内容。
使用more命令显示主目录中dev1文件的内容。文本的显示出现了什么情况?
显示出了第一页文本。每按一次回车显示下一行,每按一次空格显示下一页_
步骤8:使用head命令显示文件的一部分。
head命令用于显示一个或多个文本文件的前n行。在默认情况下,如果没有给出 -n选项,将显示前10行。当您只想查看文件的开始的几行,而不管文件的大小的时候,head命令是很有用的。
- 单独使用head命令,显示主目录中dev1文件的开始部分。显示了多少行?
10行________________________________________________________________
- 使用带 -n选项的head命令,显示主目录中dante文件的前20行。您输入什么命令?
head-20dante________________________________________________________________
步骤9:使用tail命令显示文件的一部分。
使用tail命令,显示文件的最后几行。在默认情况下,如果没有指定 -n选项,将显示最后10行。当检查大型日志文件最近输入内容的时候,tail命令是很有用的。备份工具程序常把备份哪个文件和什么时候做的备份,写到日志文件中去。一个备份日志文件中最后的输入通常是备份文件的总数和备份是否成功完成的信息。-n选项显示了文件的最后n行。
单独使用tail命令,显示主目录中dante文件的末端。显示了多少行?
10行______________________________________________________________
步骤10:通过使用wc命令,确定行数、单词数和字符数。
wc (单词计数) 命令可以用于显示文本文件的行数、单词数、字节数或者字符数。当确定文件特征或者当比较两个文件的时候,这个命令是很有用的。使用不带选项的wc将给出文件的行数、字节数。使用带一个选项的wc,可以确定想查看的哪一项内容。
使用wc命令确定主目录中dev1文件的行数、单词数和字符数。有多少行、多少个单词和多少个字符?
5374行5374个单词33706个字符________________________________________________________________
步骤11:使用wc计算目录条目的数目。
使用wc和ls命令确定主目录中条目 (文件和目录) 的数目。为此,必须把ls命令的输出导入到wc命令中。
更多符号是竖线,和后斜线 () 在同一个键上。在命令行提示行下,输入命令ls l wc -w。有多少个文件和目录名 (单词) ?
8个______________________________________________________________
步骤12:使用diff命令确定文件之间的不同之处。
diff (不同) 命令用于比较2个文本文件,找出在它们之间的不同之处。wc命令可以比较文件,因为它计算行数、单词数和字符数。有可能2个文件有相同的行数、单词数和字符数,但是字符和单词不同。diff命令可以从实际上找出文件之间的不同。
这个命令的输出把2个文本文件之间的不同一行一行的显示出来。diff命令有2个选项:-i 和 -c。-i选项忽略字母的大小写,例如A和a相等。-c选项执行细致的比较。
单击红帽子,在“GNOME帮助”菜单中单击“辅助设施”-“Text Editor”命令,创建两个文件fruit1和fruit2,并键入适当内容。
使用diff命令执行细节比较,确定fruit1文件和fruit2文件之间的区别。
在fruit1文件和在fruit2文件中,哪几行是不同的?
fruit1:ghaoujogh bngab ba
fruit2:GNAW BALBNA g joaiwje jannBHNA;OBNAJBN__________________
- cat命令:
· 对fruit1文件使用cat命令。
· 对fruit2文件使用cat命令。
· 键入命令行cat fruit1 fruit2 > filex。
· 对filex文件使用cat命令。上面的命令行做了什么工作?
把fruit1和fruit2的文本内容合并在了一起,成为filex文件的文本内容_________________
- 可以使用哪2个命令来确定2个文件是否相同?
difffruit1fruit2和catfruit1,catfruit2____________________
步骤13:关闭终端窗口,注销。
2. 基本的命令行文件管理
步骤14:回顾Linux的文件和目录命名规则。
在本实验中,我们将创建文件和目录,因此,在开始之前,先来回顾一下Linux文件和目录的命名规则和指导方针。
- 最大长度:组成文件和目录名最大长度为255个数字字母字符。一般来说,应该尽可能的保持文件名短但是仍然有意义。
- 非数字字母字符:一些非数字字母字符或者元字符是可用的:下划线 (_) 、连字符号 (-) 和句点 (.) 。这些元字符可以在文件或目录名中使用多次(Feb.Reports.Sales是一个有效的文件或目录名) 。尽管shell允许把星号 (*) 、问号(?) 和发音符号 (~) 、方话号 ([ ]) 、&、管道 [ | ] 、引号 (“”) 和美元符号 ($) 在文件名中使用,但这不是推荐的,因为这些字符对于shell有特殊的意义。分号 ( 、小于号 (<) 和大于号 (>) 是不允许作为文件名的。
- 文件名扩展:文件名可以包含一个或多个扩展名。扩展名常被一个应用追加到文件的末端。扩展名通常是1个到3个字符,追加到文件名的末端,之前有一个句点 (.) 。当命名文件的时候,您可以选择使用这个规则。
- 目录名的扩展名:目录名一般不包含扩展名,但是也没有规则反对这一点。
- 大小写敏感:Linux文件和目录名是大小写敏感的。Project1和projectl不是同一个文件。在一个目录中,不能够有两个文件有着同样的名字。一般规则都是使用小写字母。
检查表7-1中的文件名,指出它们是否是有效或者推荐的Linux文件或目录名,为什么是或为什么不是。
步骤15:使用touch命令创建文件。
每次创建一个新的字处理文档或者电子数据表,就是正在创建一个新文件,应该符合之前提到的文件命名规则。也必须拥有创建文件的目录的足够权限。
使用touch命令,可以同时创建一个或多个文件。一些应用要求在写文件之前,文件必须存在。touch命令对于快速创建需要处理的文件很有用。也可以使用touch命令更新文件被访问的时间和日期,使文件可以再次被备份。当创建文件或目录的时候,可以指定绝对和相对的路径名。
命令格式:
touch filename (s)
- 在主目录中使用touch命令创建一个名为newfile的文件,应该使用什么命令?
touch newfile__________________________________________________________________
- 使用touch命令在这个目录中创建另一个叫做filenew的新文件,应该使用什么命令?
touch filenew__________________________________________________________________
- 输入命令显示practice目录中的文件的长列表。创建的文件列出来了吗?
列出来了__________________________________________________________________
- 谁是文件的所有者?
root__________________________________________________________________
- 和文件关连的组是什么?
root__________________________________________________________________
- 创建的日期和时间是什么?
6月14日 12:35__________________________________________________________________
- 文件的大小是多少?
27349_________________________________________________________________
- 使用file命令确定newfile的文件类型。它是哪一类的文件?
ASCII text__________________________________________________________________
- 使用touch命令同时创建3个文件:new1、new2和new3,应该使用什么命令?
touch new1 new2 new3__________________________________________________________________
- 输入命令显示practice目录中文件的长列表。创建的3个新文件列出来了吗?
列出来了__________________________________________________________________
步骤16:使用mkdir命令创建新目录。
mkdir (创建目录) 命令用于创建目录或文件夹。目录可以包含其他目录,称为子目录,它们可以包含文件。
目录可以使用或者绝对路径名或者相对路径名创建。可以在同一行中指定多个目录名,创建多个新目录。必须有创建目录的足够权限。
mkdir directory_name (s)
- 从主目录中,使用相对路径名改变到practice目录中。使用什么命令?
cd/practice__________________________________________________________________
- 使用mkdir命令,在这个目录中创建一个叫做newdir的子目录。使用什么命令?
mkdir/newdir__________________________________________________________________
- 输入命令,显示practice目录中文件和目录的长列表。创建的目录列出来了吗?
列出来了__________________________________________________________________
- 目录的所有者是?
root__________________________________________________________________
- 文件的大小是多少?
3455__________________________________________________________________
- 使用file命令确定newdir文件的类型。它是哪一类的文件?
目录文件directory__________________________________________________________________
- 如果名字中没有字符dir,采取别的什么方法来识别出它是一个目录?
颜色识别,目录是蓝色的__________________________________________________________________
- mkdir命令创建3个目录,目录名分别为high、medium和low,应该使用什么命令?
mkdir/high mkdir/medium mkdir/low__________________________________________________________________
- 用ls命令检查创建是否成功?
成功了
步骤17:使用rm命令删除文件。
rm目录可以删除单个文件或多个文件。可以通过在rm命令之后指定文件的名字,或者使用星号 (*) 和问号 (?) 元字符,同时删除几个文件。在Linux系统中删除的文件是永远被删除了,除非使用图形界面删除文件,它们才能够被恢复。rm命令可以带 –i (交互) 选项使用,它在删除文件之前会提示用户。使用rm -i命令作为防范,避免误删文件:
rm [-i] filename (s)
- 使用rm命令删除早先在practice目录中创建的newfile文件,应该使用什么命令?
rm -r practice/newfile__________________________________________________________________
- 输入命令显示practice目录中文件的长列表。创建的文件还在吗?
不在__________________________________________________________________
- 使用带 -i选项的rm命令,删除早先在practice目录中创建的filenew文件。交互式选项起到什么作用?
在删除之前提醒用户,避免误删文件__________________________________________________________________
- 删除早先创建的三个名为new1、new2和new3的文件。使用问号 (?) 通配符使用一个命令删除所有三个文件。使用什么命令?
rm new?__________________________________________________________________
- 输入命令,显示practice目录中文件的长列表。三个文件还在吗?
不在__________________________________________________________________
- 还有其他的什么方法来删除new1、new2和new3文件?
Rm new[1-3]__________________________________________________________________
步骤18:使用rm -r命令删除目录。
rm -r目录用于删除目录。它将删除从目标目录开始的目录,包括所有的子目录和文件。当rm命令带 -r信息使用的时候,它可以删除单个目录 (空或不空) 或目录树的整节。rm命令可以带 -i选项使用,它在删除目录之前会提醒用户:
rm –r [i] directory_name (s)
- 删除早先创建的newdir子目录,使用什么命令?
rm-ri practice/newdir__________________________________________________________________
- 输入命令显示practice目录中文件的长列表,创建的子目录还在吗?
不在__________________________________________________________________
- 改变到早先创建的mediurn子目录中,输入什么命令?
cd practice/medium__________________________________________________________________
- 删除早先创建的low子目录,使用什么命令?
rm-ri practice/low__________________________________________________________________
- 用相对路径名和快捷方式,改变回到practice子目录中,应使用什么命令?
cd__________________________________________________________________
- 使用一个命令删除high和medium子目录,应使用什么命令?
rm-ri high medium__________________________________________________________________
步骤19:练习所学习到的内容。
通过在practice目录中创建一个三级的目录树,练习使用touch、mkdir和rm命令。试着使用有意义的目录名。记住可以使用一个命令创建整个目录结构。在每个目录中创建多个文件。记住可以使用一个命令创建多个文件。
结束的时候,请删除实验时创建的文件和目录。
步骤20:关闭终端窗口,注销。
四、实验总结
请总结操作系统的作用有哪些?操作系统提供给用户的接口方式有哪些?各有什么特点?本实验中接触到哪些接口方式?
操作系统应具有以下几个方面的功能:处理结果管理,存储器管理,设备管理和文件管理。为了方便用户使用操作系统,还必须向用户提供接口。
实验中运用到了:命令接口,程序接口,图形接口。
(1)命令接口:
联机命令接口:交互式命令接口,适用于分时或者实时系统的接口。它由一组键盘操作命令组成。可以理解为:“雇主”说一句话,“工人”做一件事,并作出反馈,这就强调了交互性。
脱机命令接口:批处理命令接口,它由一组作业控制命令组成。可以理解为:“雇主”把要“工人”做的事写在清单上,“工人”按照清单命令逐条完成这件事,这就是批处理。
(2)程序接口:程序接口由一组系统调用组成。用户通过在程序中使用这些系统调用来请求操作系统为其提供操作。
(3)图形接口:图形用户界面,GUI最终通过调用程序接口实现的。用户对出现在屏幕上的对象直接进行操作,以控制和操纵程序的运行。