Linux实验报告.docx
《Linux实验报告.docx》由会员分享,可在线阅读,更多相关《Linux实验报告.docx(19页珍藏版)》请在冰豆网上搜索。
Linux实验报告
淮阴工学院
Linux实验报告
名字:
学号:
班级:
指导教师:
寇海洲
2017
年
6
月
承担实验1文件和目录操作
估计时间:
1小时30分钟目标:
熟悉函数、语法和一些基本的文件和目录的控制操作。
练习有效地组合这些命令完成一般的用户任务
实验准备:
安装了RedHatLinux可运行系统,有一个无特权用户student,密码:
student
1.1:
目录和文件组织场景/情节:
在用户的home目录下有一系列的文件,用户决定到时间整理一下。
用户计划生成一些新的子目录,然后根据用户的计划拷贝和移动这些文件到适当的目录;另外,这些文件不是都有用的,有一些是要删除掉的。
任务:
1.以用户名student密码student在tty1上登陆。
2.在用户登陆系统以后,用户将进入用户的home目录.用户可以使用“打印工作目录”检查这一情况
$pwd
/home/student
3.使用如下每条命令检查用户是否还有文件在用户的home目录下:
$ls
$ls-a
$ls–al
为什么第一和第二条命令返回不同的文件数?
第三条命令返回的在用户当前的home目录下最大的文件是多少?
用户的home目录下有子目录吗?
4.用户现在使用touch为以后的步骤建立文件。
这种扩展在接下来的命令中是如何工作的在以后的章节中进行讨论。
现在,仅仅按照下面的行键入就行了(在集合与集合之间使用包括花括号{}和下划线的字符)
$touch{report,memo,graph}_{sep,oct,nov,dec}_{a,b,c}{1,2,3}
5.使用命令ls检查最后一条命令的结果,用户会发现它在用户的home目录下生成了108个新的空文件(用户不必数)。
这些文件代表了用户将使用的在这个步骤中的代表的数据文件。
如果用户看不到这些文件,向教师寻找帮助,没有这些文件,该实验后面的步骤就无法进行。
6.为了组织用户的文件,用户必须先建立一些新目录,使用mkdir在用户的home目录中直接建立一些子目录:
$mkdira_reports
$mkdirseptemberoctobernovemberDecember
再使用ls检查用户的工作。
7.使用如下命令在用户的一个新的目录中生成一些附加子目录
$cda_reports
为了切换到目录,接下来:
$mkdir123
使用ls检查用户的子目录a_reports下的名为1,2,3的三个新的子目录。
8.首先把所有带”b”的报告从home目录中移出并且按月份分组,先验证要使用的复杂的通配符模式。
这样做以确保它对于正确的文件进行操作。
如果用户打算使用这种通配符模式,用户可以使用一个无害的命令来替换用户的命令。
$cd
$ls-l*dec?
b?
用户将看到列出了9个”december”,”b”文件,
把其中的一个移到december目录中:
$mvgraph_dec_b1december用下面的语句移动其余的:
$mv*dec?
b?
december
列出december目录的容验证移动操作是否成功:
$ls-ldecembertotal0
-rw-rw-r--1studentstudent0Sep1817:
45graph_dec_b1-rw-rw-r--1studentstudent0Sep1817:
45graph_dec_b2
-rw-rw-r--1studentstudent0Sep1817:
45graph_dec_b3
-rw-rw-r--1studentstudent0Sep1817:
45memo_dec_b1-rw-rw-r--1studentstudent0Sep1817:
45memo_dec_b2
-rw-rw-r--1studentstudent0Sep1817:
45memo_dec_b3
-rw-rw-r--1studentstudent0Sep1817:
45report_dec_b1-rw-rw-r--1studentstudent0Sep1817:
45report_dec_b2
-rw-rw-r--1studentstudent0Sep1817:
45report_dec_b3
9.把其余所有带”b”的报告分别移动到各自对应的目录中:
$mv*oct?
b?
october
$mv*sep?
b?
September
10.现在用户将把”a”报告收集到它们各自对应的目录中。
注意使用~代替“用户的home目录”。
通配
符和模式的组合指定了用户的home目录下所有以_a1结尾的文件。
$cda_reports
$mv~/*_a11/
“september””a1”文件旧并且不再需要,使用echo确定用户已经建立了一个只匹配该类文件
的模式,然后删除它们,并且检查剩下的”a1”文件是否正确移动:
$cd1
$echo*sep*$rm*sep*$lsgraph_dec_a1graph_oct_a1¥memo_nov_a1report_dec_a1report_oct_a1graph_nov_a1memo_dec_a1memo_oct_a1report_nov_a1
11.最后移动“a2”和“a3”报告到各自对应的目录中。
为了使过程变得有趣,我们将把它们移出当前目录,使用相对和绝对的的路径名。
第一步,使用pwd确定当前目录:
$pwd
/home/student/a_reports/1
用echo检查涉及到“a2”文件的模式,然后使用绝对路径名:
$echo/home/student/*a2*
$mv/home/student/*a2*/home/student/a_reports/2
即使用户当前在/home/student/a_reports/1目录下,也能把文件从/home/student移动到/home/student/a_reports/2目录中,因为用户指定了文件的路径名称(在本例中为绝对路径名称)现在使用相对路径移动“a3”文件。
再一次的,首先确信模式指定的是正确
的文件名称。
$echo../../*a3*
$mv../../*a3*../3
12.返回用户的home目录,并且使用ls来校验仅存在该目录中的文件都是
“c”文件(例如:
graph_dec_c1,graph_dec_c2,…)
13.“c1”和“c2”报告文件对于每个月来说都非常重要,并且用户打算把它们备份到另外一个目录:
$mkdir/tmp/archive
$cpreport*[12]/tmp/archive/
另外的,所有的对于十二月份的报告文件应该备份到/tmp/archice目录下
面。
注意,-i选项使得cp程序在覆盖任何文件之前进行提示:
$cp-ireport_dec*/tmp/archive/cp:
overwrite`/tmp/archive/report_dec_c1'?
ncp:
overwrite`/tmp/archive/report_dec_c2'?
n
14.现在用户备份了一些对用户重要的“c”文件,用户现在要删除位于用户的home目录下面所有的文件。
使用通配符“*c*”检查剩下的含有c的文件。
用户为什么不想执行命令rm*c*?
(作为提示:
尝试:
ls*c*)
15.删除用户的home目录下的剩余*c*文件。
在发出一个破坏性的命令之前我们再次使用echo命令。
$echo*c[1-3]$rm*c[1-3]$lsa_reportsdecembernovemberoctoberSeptember
实验的结果
一个组织良好的home目录,文件放置在合理的位置,一些文件备份到了
/tmp/archive目录中
实验2用户信息
估计时间:
30分钟目标:
熟悉一些用户标识和转换基本的控制操作。
实验准备:
安装了RedHatLinux可运行系统,并且是成功完成实验系统。
有另外一个无特权用户visitor,密码:
visitor的存在。
请教师检查用户的系统中是否已经建立这个。
如果这个visitor用户没有建立,按照以下步骤进行
1.用root登陆虚拟控制台。
2.在提示符下键入以下命令
#useraddvisitor
3.现在键入
#passwdvisitor
Changingpasswordforuservisitor。
Newpassword:
{输入visitor}
BADPASSWORD:
itisbasedonadictionarywordRetypenewpassword:
{输入visitor}passwd:
allauthenticationtokensupdatedsuccessfully。
2.1:
本地用户登陆任务:
1.完全从工作站中退出。
确定用户已经退出所有虚拟终端和XWindows系统
2.转换到虚拟终端1(tty1)通过按:
3.使用密码redhat进入root登陆用户的工作站
4.确定指定的登陆信息,使用下列命令:
#whoami
#groups
#id
检查这些命令的输出。
5.获取工作站当前所有登陆者信息,当前,应该只有一个用户登陆系统,按如下顺序键入的命令的输出是很有趣的。
#users
#who
#w
检查这些命令的输出。
6.转换到虚拟终端2(tty2)通过按
7.以用户student,密码:
student登陆用户的工作站。
8.获取指定登陆者的信息,运行下列命令:
$whoami
$groups
$id
检查这些命令的输出。
9.获取工作站上当前所有登陆者的信息:
$users
$who
$w
检查这些命令的输出。
10.转换到虚拟终端3(tty3)通过按
11.以用户visitor,密码:
visitor登陆用户的工作站
12.获取指定登陆者的信息,运行下列命令:
$whoami
$groups
$id
检查这些命令的输出。
13.获取工作站上当前所有登陆者的信息:
$users
$who
$w
检查这些命令的输出。
2.2:
切换任务:
1.按下如下的键切换到虚拟终端3(tty3)
2.运行id命令来决定用户的用户信息,pwd来喜爱能使用户目前的工作目录
$id$pwd
记录结果:
id=__________________________________________pwd=_________________________________________
3.使用su–来切换到root用户,运行id和pwd来获取用户的当前的目录
$su–
#id#pwd
记录结果:
id=__________________________________________pwd=_________________________________________
4.从root退出,返回到visitor
#exit
5.使用不含-的su切换到root用户,运行pwd和id。
$su
#id#pwd
记录结果:
id=__________________________________________pwd=_________________________________________为什么和第3步骤的结果不同呢?
6.登出所有用户在这个步骤中本地的和远程的shell。
实验4使用bashShell
估计时间:
45分钟
目标:
深入了解bashshell,包括创建定制。
实验准备:
一个RedHatLinux系统。
第一步:
使用Aliases任务:
1.用户决定创建一个alias,当用户使用cls的时候,系统能够运行clear命令清除用户的屏幕。
使用student身份在tty1登录,然后输入下列命令。
$aliascls=‘clear’
$alias
$cls
2.当用户重新登录的时候这个别名就丢失了。
确信新的别名在用户student每次登录的时候都能够使用,可以执行一下几步。
$cd
$vi.bashrc
查找包含下列的文字:
#Userspecificaliasesandfunctions添加到用户的别名命令行:
aliascls=‘clear’保存并退出。
3.测试用户的改变当用户注销的时候,重新登录到tty1上的时候,试下面的命令:
$alias
$cls
4.现在使用ls的manpage去创建一个叫lr的别名,利用ls的五个开关。
测试并添加用户的别名到.bashrc中.这个别名能够:
a)用长格式显示文件
b)显示隐含文件
c)给文件分类
d)用相反的顺序显示文件
e)按文件修改时间显示文件。
目标:
一条新的清屏命令和一条新的列文件命令(别名)。
4.2:
改变用户的bash提示情景/故事:
用户决定定制用户的bash提示以能够显示完全的路径和命令的序列号。
任务:
5.在终端窗口,显示当前主要提示符的值。
$echo$PS1
6.改变用户的提示符为一个字符串。
$PS1=’RedHatLinux->’
7.这个不常使用,因此恢复到有$提示符的情况下,同时加上主机名。
$PS1=‘\h$’
8.在主机名和$符号之间插入bash表示历史纪录提示符的特殊字符\!
。
9.查找bash的man手册,把当前的工作目录放入提示符中。
10.用户定制的提示符显示实例,如不同请继续修改。
station1:
~21$cd/tmp
station1:
/tmp22$
11.编辑用户重新定义的PS1到用户的.bashrc,然后打开新的终端窗口看看结果如何
4.3:
配置shell选项
情景/故事:
使用set和shopt用户定制几个bashshell。
任务:
12.以student身份登录tty1界面上.查看许多普遍的配置shell选项:
$set–oallexportoffbraceexpandonemacsonerrexitoffhashallon
…outputtruncated…
13.察看目前ignoreeof的属性,用ctrl+d键看是否能logout。
14.用student身份在tty1上登录,执行下面的改变,然后测试ignoreeof选项:
$set–oignoreeof
$
$用“logout”退出shell
$set+oignoreeof
$
15.当试图执行命令的时候可以看到提示信息.使用type的命令:
$typecat
catishashed(/bin/cat)
$typecls
clsisaliasedto‘clear’
$typeset
shoptisashellbuiltin
$typewhilewhileisashellkeyword结果:
现在用户有一个更好的shelloptions。
问题答案4:
命令替代1.确定完全路径名
$whichmetacity
$which.-message
$^message^window-demo
2.重复执行上一个包含字符串ig的命令:
$ig
3.当一个命令在另一个命令的后面用(‘’)起来的时候,bash会先执行后面的命令并把执行的结果作为第一个命令的输入。
使用这个技术,看看下面命令的执行结果
$ls–l‘whichnautilus‘
(end)