我现在正在编辑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行开始到结尾,你使用什么命令?