Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103695543
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-27 15:33:29

    来源:赛迪网技术社区    作者:lynn

单元三实验

  文件和目录操作

  估计用时:1小时30分

  目标:熟悉文件、目录操作命令的数、语法和几个文件的使用。实验将这些命令组合成一个一般的用户任务。

  实验前准备:准备一个安装好的Red Hat Linux 系统,并准备一个叫student 的非特权帐号,其密码为student。检查一下指南以确认这个帐号是否已经存在在系统中。如果你的student 帐号还未建立,则按如下次序操作:

  1、以root 用户登录

  2、输入 # useradd 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

  实验1:目录和文件管理

  假设:

  你在你的home 目录中收集了一大堆文件,而你觉得现在该是将他们整理一下的时候了。你打算建立几个新的子目录,并将拷贝或者移动它们以适合你的安排。除此之外,还有一些文件你根本用不着,你想删除它们。

  任务:

  1、在tty1 上以student登录。密码为student。

  2、刚刚登录后你应该在你的home 目录中。用"print working directory"命令校验一下。

  $ 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目录的直接子目录:

  $ mkdir "A Reports"

  $ mkdir september october november december

  再次使用ls 命令检验你的工作。

  7、在你新建的子目录中再建立一些其他的目录,使用如下命令:

  输入下面任一一行:

  $ cd A\ Reports/

  或者

  $ cd "A Reports"/

  改变了当前目录。然后:

  $ mkdir 1 2 3

  使用ls 命令校验你已经在"A Reports"目录中有了3个子目录,分别叫做1, 2, 3。

  8、将所有含"B"的文件移出你的home 目录并以月份分组。做类似这种复杂的通配字符的操作时,通常先将其“预览”一遍会是个不错的主意,它可以让你确认是在正确的文件上进行了操作。其中一种方法是将你的命令替换成一种“无害”的命令。

  $ cd

  $ ls -l *dec?b?

  你应该看到有9个"december", "b"文件被列出。现在移动它们:

  $ mv *dec?b? december/

  列出december 子目录以确认移动操作顺利完成了。

  $ ls -l december/

  total 0

  -rw-rw-r-- 1 student student 0 Oct 16 22:16 graph_dec_b1

  -rw-rw-r-- 1 student student 0 Oct 16 22:16 graph_dec_b2

  -rw-rw-r-- 1 student student 0 Oct 16 22:16 graph_dec_b3

  -rw-rw-r-- 1 student student 0 Oct 16 22:16 memo_dec_b1

  -rw-rw-r-- 1 student student 0 Oct 16 22:16 memo_dec_b2

  -rw-rw-r-- 1 student student 0 Oct 16 22:16 memo_dec_b3

  -rw-rw-r-- 1 student student 0 Oct 16 22:16 report_dec_b1

  -rw-rw-r-- 1 student student 0 Oct 16 22:16 report_dec_b2

  -rw-rw-r-- 1 student student 0 Oct 16 22:16 report_dec_b3

  9、将所有剩下的"B"文件分别移入相应的目录:

  $ mv *nov?b? november

  $ mv *oct?b? october

  $ mv *sep?b? september

  10、现在你将"A"文件移动到它们相应对数字的目录中去:

  $ cd "A Reports"/

  $ mv ~/*_a1 1/

  "a1","september"文件不需要了。删除它们并确认剩下的文件已正确的移动了。

  $ cd 1

  $ rm *sep*

  $ ls

  graph_dec_a1 graph_oct_a1 memo_nov_a1 report_dec_a1 report_oct_a1

  graph_nov_a1 memo_dec_a1 memo_oct_a1 report_nov_a1

  11、将最后的"a2"和"a3"文件移入相应的数字目录中去:

  $ pwd

  /home/student/A Reports/1

  使用相对路径移动"a2"文件:

  $ mv ../../*a2* ../2/

  使用绝对路径移动"a3"文件

  $ mv /home/student/*a3* /home/student/A\ Reports/3/

  12、回到你的home目录下,并用ls 确认在该目录下只剩下"c"文件。

  13、每个月的"c1"和"c2"文件很重要,你想将它们备份到另外一个目录中去:

  $ mkdir /tmp/archive

  $ cp report*[1-2] /tmp/archive/

  除此之外所有December月份的文件应备份到/tmp/archive 目录中。注意使用 -i 选项以使cp 命令在覆盖文件时提示。

  $ cp -i report_dec* /tmp/archive/

  cp: overwrite ’/tmp/archive/report_dec_c1’? n

  cp: overwrite ’/tmp/archive/report_dec_c2’? n

  14、现在你已经备份了一些对你来说重要的"C"文件,你想删除所有还留在你home 目录里的文件。用通配符*c*检验所剩余的文件。为什么你不能用rm *c*删除?

  (提示:试试ls *c* 看看)

  15、删除所剩余的"c"文件:

  $ rm *c[1-3]

  $ ls

  A Reports december november october september

  完成:

  一个良好组织的home 目录,文件都放在合适的子目录中。一些文件备份在/tmp/archive 目录中。

  实验2:检测磁盘使用程度

  假设:

  你想检测系统上每个文件系统所剩余的空间。除此之外,你需要有个包含最占磁盘空间的目录的列表。

  任务:

  1、使用df 检测文件系统上剩余的空间。输出将类似于如下所示(这当然取决于你的机器安装和配置)。

  $ df

  Filesystem 1k-blocks Used Available User% Mounted on

  /dev/hda5 12880648 1634344 10591988 14% /

  /dev/hda1 36566 2476 32202 8% /boot

  2、注意缺省的df 命令是以块(block)为单位输出的。试着使用-h 和-H 选项产生更人性化的输出:

  $ df -h

  Filesystem 1k-blocks Used Available User% Mounted on

  /dev/hda5 12G 1.6G 10G 14% /

  /dev/hda1 36M 2.5M 31M 8% /boot

  $ df -H

  Filesystem 1k-blocks Used Available User% Mounted on

  /dev/hda5 13G 1.7G 10G 14% /

  /dev/hda1 37M 2.6M 32M 8% /boot

  两种选项有何区别?(用man df 查找答案)

  3、在home 目录下使用du (disk usage)命令检测你的home 目录使用了多少空间。务必使用-h 选项产生人性化输出。

  实验3:检测文本文件

  任务:

  1、首先,我们需要一个文本文件:

  $ cd

  $ cp /usr/share/dict/words .

  2、使用cat 命令显示文件

  $ cat words

  Aarhus

  Aaron

  Ababa

  ......输出省略......

  Zulu

  Zulus

  Zurich

  3、cat 在这种情况下是一个糟糕的选择,因为输出翻屏得很快。试着使用less:

  $ less words

  Aarhus

  Aaron

  Ababa

  ......输出省略......

  abducts

  Abe

  abed

  ......输出省略......

  用less 你可以往回翻(用b)和往前翻(用空格键),一次一个屏幕。

  4、若你只需要快速浏览一下一个文件的头部或者尾部,你可以使用head 或者tail:

  $ head words

  Aarhus

  Aaron

  Ababa

  aback

  abaft

  abandon

  abandoned

  abndoning

  abandonment

  abandons

  $ tail words

  zoologically

  zoom

  zooms

  zoos

  Zorn

  Zoroaster

  Zoroasterian

  Zulu

  Zulus

  Zurich

  使用man 搜索head 和tail,找到可以修改显示行数、和显示的相对位置的选项。

  哪个命令可以显示某文件的前50行?

  哪个命令可以显示某个文件从25000行开始,到其结束?

  单元四实验:用户信息和man

  估计用时:30分钟

  目标:熟悉几个用户识别和帐户切换命令的使用。

  实验前准备:准备一个安装好,完成过单元三实验的Red Hat Linux 系统,除此之外一个叫visitor 的非特权帐号,其密码为visitor。检查一下指南以确认这个帐号是否已经存在在系统中。如果你的visitor 帐号还未建立,则按如下次序操作:

  1、以root 用户登录

  2、输入 # useradd visitor

  3、输入 # passwd visitor

  Changing password for user visitor

  New UNIX password: {在这里输入visitor}

  BAD PASSWORD: it is based on a dictionary word

  Retype new UNIX password {重新输入visitor}

  passwd: all authentication tokens updated successfully

  实验1:本地用户登录

  任务:

  1、完全注销你的登陆。务必确认你也退出了所有的虚拟终端和X Window 系统。

  2、按切换到虚拟终端1(tty1)。

  3、以root身份登录。

阅读(145) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~