强烈推荐:RHCE 033 实验翻译


我现在正在编辑RHCE的培训用书 , 刚好贴出来大家提提意见 。
现在计划8月底翻译完033的实验部分和编写前7章的课程 。
请提出宝贵意见kevinzh@eloo.com

实验1 :文件和目录操作

时间:1小时30分钟
目标:熟悉一些基本文件和目录操作命令的功能、语法和使用 。练习组合以上命令以有效完成用户任务 。
实验开始需要:一个安装并能正常运行的Red Hat Linux系统 。有一个帐户名为student密码为student的普通用户 。请与指导教师核对此帐户是否存在 , 若student帐户尚不存在 , 按以下步骤创建 。
1. 以root用户登录虚拟控制台(如果在X下 , 按Alt Ctrl F1) 。
2. 在提示符下输入如下命令:
#useradd student
创建普通用户 student
3. 输入如下命令:
#passwd student
changing password for user student
New Unix password:{在此输入student}
BAD PASSWORD:it is based on a dictionary word
Retype new Unix password:{再次输入student}
Passwd:all authentication tokens updated successfully
为普通用户添加密码
第一步:组织目录和文件
情景故事:
大量文件积聚在你的home目录 , 你决定该是重新组织它们的时候了 。你计划创建一些新的子目录 , 并拷贝和移动你的文件以实现你新的规划 。另外 , 你还有一些根本不需要的文件 , 必须删除掉 。
任务:
1. 在虚拟控制台 (tty1) 以用户名student (密码为student)登录
2. 登录系统后 , 你应在你的home目录下 , 可以用“打印当前工作目录”命令验证
$pwd
/home/student
3. 用如下命令检查你的home目录下是否有文件
$ls
短格式显示当前目录下的文件
$ls a
短格式显示当前目录下的所有文件(包括以点开头的隐藏文件)
$ls al
长格式显示当前目录下的所有文件(包括以点开头的隐藏文件)
为什么第一个和第二个命令返回不同的文件数?
第三个命令报告在你的home目录中最大的文件是什么?

你的home目录中有任何子目录吗?
4. 这一步中 , 你要用touch命令来创建新文件 。touch命令的扩展用法的细节将在之后的单元中学习 。现在 , 仅输入如下的一行(包括花括弧和下划线) , 在敲回车之前 , 让你旁边的同学或指导教师检查一下你所输入命令是否正确 。
$touch {report,memo,graph}_{sep,oct,nov,dec}_{a,b,c}{1,2,3}

5. 用ls命令检验上一命令的结果 。你应发现在你的home目录下已创建了108个新的空文件 。这些文件代表你在随后要用到的数据文件 。如果由于某种原因你没看到这些文件 , 可要求指导教师帮助;若没有这些文件 , 后续实验将无法进行 。

6. 为组织你的文件 , 你必须首先创建一些新目录 , 用mkdir命令在你的home目录下创建一些子目录 。
$mkdir “A Report”
$mkdir September October November decdmber
再次使用ls命令检查你的工作成果 。

7. 使用如下命令在你的新目录中创建另外一些子目录 , 输入:
$cd A/ Reports/

$cd “A Reports”/
改变目录后 , 输入:
$mkdir 1 2 3
使用ls验证你的“A Reports”子目录是否有三个分别为1、2和3的新目录 。

8. 将你的home目录下所有包含“b”记录移出 , 并按月分组 , 当你使用复杂的通配符时 , 提前验证是个好主意 , 这样可确保对正确的文件进行操作 。一种验证方法是将你所要用的命令换为一个不会造成破坏的命令 , 并对该命令使用你准备使用的通配符 。
$cd
$ls l *dec?b?
你应看到会列出9个“december”和“b”文件 , 现在用以下命令移出它们 。
$mv *dec?b? december/
列出december子目录下的内容 , 以验证文件移动操作是否成功 。
$ls l december/
9. 将其余的“b”报告转移到它们相应的目录:
$mv *nov?b? november/
$mv *oct?b? october/
$mv *sep?b? september/
10. 你要将“a”报告归类到它们相应数字的目录
$cd “A Reports”/
$mv ~/*_a1 1/
“1”和“september”文件已不再需要 , 删除它们并验证正确移动了其它文件:
$cd 1
$rm *sep*
$ls
11. 将剩下的“a2”和“a3”报告移至它们相应目录:
$pwd
/home/student/A Report/1
用相对路径移动“a2”文件:
$mv ../../*a2* ../2/
用绝对路径移出“a3”文件:
$mv /home/student/*a3* /home/student/A/ Reports/3/
12. 返回你的home目录 , 用ls命令验证这个目录中只剩下“c”文件(如graph_dec_c1,graph_dec_c2等)
13.每个月的“c1” 和“c2”报告文件很重要 , 于是你想在另一个目录下作个备份 。
$mkdir /tmp/archive
$cp report*[1-2] /tmp/archive/
另外 , 所有12月的数据应备份至/tmp/archive目录 , 注意 , 要使用-i选项 , 这样在覆盖文件时会得到提示信息 。
$cp i eport_dec* /tmp/archive/
cp: overwrite ‘/tmp/archive/report_dec_c1’?n
cp: overwrite ‘/tmp/archive/report_dec_c1’?n

14. 现在你已备份了对于你来说重要的“c”文件 , 你想删除仍保留在home目录下的所有文件 , 查看剩余的文件表明:通配符*c*会匹配所有文件 , 你为什么不执行rm *c*命令?(提示:尝试使用ls *c*命令)

15.输入如下命令删除在你的home目录中剩余的“c”文件
$rm *c[1-3]
$ls
A Reports december november october september

结果:
得到一个更有序组织的home目录 , 文件放入了恰当的子目录下 。一些文件备份到了/tmp/archive目录下 。

第二步:确定磁盘使用情况
情景故事:
你想记录你的系统中每个文件系统剩余的磁盘空间 , 另外 , 你想列出在你的系统中哪些目录消耗了最大的空间 。
任务:
1. 用df命令确定你的每个文件系统的剩余空间 , 你获得的输出结果应与以下类似(虽然由于特定的安装不同 , 输出可能不同)
$df
Filesystem lk-blocks Used Available Use% Mount on
/dev/hda5 12880646 1634344 10591988 14% /
/dev/hda1 36566 2476 32202 8% /boot

2. 注意:df命令的默认操作的报告信息是以块为单位的 , 尝试使用-h和-H选项 , 将会以“人类可读的”形式报告信息 。
$df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda5 12G 1.6G 10G 14% /
/dev/hda1 36M 2.5M 31M 8% /boot
$df -H
Filesystem Size Used Avail Use% Mounted on
/dev/hda5 13G 1.7G 10G 14% /
/dev/hda1 37M 2.6M 31M 8% /boot
二者有什么不同 , 为什么?(使用 man df )

3. 在你的home目录下 , 使用du(disk usage磁盘使用)命令来确定你的文件正消耗多大的空间 , 为得到更为可读的输出 , 可尝试使用-h选项 。

第三步:检查文本文件
任务:
1. 首先 , 我们需要使用一个文本文件 。
$cd
$cp /usr/share/dict/words . (注意这一“ 。” 点)
2. 使用cat显示文件:
$cat words
3. 在此情况下 , 使用cat命令是个糟糕的选择 , 因为大部分的输出将一闪而过 。尝试使用less命令:
$less words
使用less命令 , 你可以每次一屏、并可向上滚动(使用b键)或向下滚动(使用空格键)来纵览所有输出 。
4. 如果你只需要浏览一个文件的前几行或后几行 , 你可以使用head或tail命令:
$head words
$tail words
你可以使用head和tail的手册页来查找哪个开关调整显示的行数 , 哪个开关调整要显示行的相对位置 。
要显示文本的前50行 , 你使用什么命令?
要显示文件中从第25000行开始到结尾 , 你使用什么命令?