1、Linux实验报告 淮 阴 工 学 院Linux实验报告名字: 学号: 班级: 指导教师: 寇海洲 2017年6月承担实验 1 文件和目录操作 估计时间:1小时30分钟目标:熟悉函数、语法和一些基本的文件和目录的控制操作。 练习有效地组合这些命令完成一般的用户任务 实验准备:安装了Red Hat Linux可运行系统,有一个无特权用户student,密码:student 1.1:目录和文件组织场景情节: 在用户的home目录下有一系列的文件,用户决定到时间整理一下。用户计划生成一些新的子目录,然后根据用户的计划拷贝和移动这些文件到适当的目录;另外,这些文件不是都有用的,有一些是要删除掉的。 任
2、务: 1.以用户名student 密码student 在tty1 上登陆。 .在用户登陆系统以后,用户将进入用户的home 目录用户可以使用“打印工作目录”检查这一情况 $ pwd /home/student 3.使用如下每条命令检查用户是否还有文件在用户的home目录下: $ ls $ ls -a $ ls al 为什么第一和第二条命令返回不同的文件数?第三条命令返回的在用户当前的home目录下最大的文件是多少?用户的home目录下有子目录吗? 4.用户现在使用touch 为以后的步骤建立文件。这种扩展在接下来的命令中是如何工作的在以后的章节中进行讨论。现在,仅仅按照下面的行键入就行了(在集
3、合与集合之间使用包括花括号和下划线的字符) $ touch report,memo,graph_sep,oct,nov,dec_a,b,c1,2,3 .使用命令ls检查最后一条命令的结果,用户会发现它在用户的home目录下生成了108 个新的空文件(用户不必数)。这些文件代表了用户将使用的在这个步骤中的代表的数据文件。如果用户看不到这些文件,向教师寻找帮助,没有这些文件,该实验后面的步骤就无法进行。 .为了组织用户的文件,用户必须先建立一些新目录,使用mkdir在用户的 home目录中直接建立一些子目录: $ mkdir a_reports $ mkdir september october
4、november December 再使用ls 检查用户的工作。 7.使用如下命令在用户的一个新的目录中生成一些附加子目录 $ cd a_reports 为了切换到目录,接下来: $ mkdir 1 2 3 使用ls 检查用户的子目录a_reports 下的名为1,2,3 的三个新的子目录。 .首先把所有带”b”的报告从home 目录中移出并且按月份分组,先验证要使用的复杂的通配符模式。这样做以确保它对于正确的文件进行操作。如果用户打算使用这种通配符模式,用户可以使用一个无害的命令来替换用户的命令。 $ cd $ ls -l *dec?b? 用户将看到列出了9 个”december”,”b”文
5、件,把其中的一个移到 december 目录中: $ mv graph_dec_b1 december 用下面的语句移动其余的: $ mv *dec?b? december 列出december 目录的容验证移动操作是否成功: $ ls -l december total 0 -rw-rw-r- 1 student student 0 Sep 18 17:45 graph_dec_b1 -rw-rw-r- 1 student student 0 Sep 18 17:45 graph_dec_b2 -rw-rw-r- 1 student student 0 Sep 18 17:45 graph_
6、dec_b3 -rw-rw-r- 1 student student 0 Sep 18 17:45 memo_dec_b1 -rw-rw-r- 1 student student 0 Sep 18 17:45 memo_dec_b2 -rw-rw-r- 1 student student 0 Sep 18 17:45 memo_dec_b3 -rw-rw-r- 1 student student 0 Sep 18 17:45 report_dec_b1 -rw-rw-r- 1 student student 0 Sep 18 17:45 report_dec_b2 -rw-rw-r- 1 st
7、udent student 0 Sep 18 17:45 report_dec_b3 .把其余所有带”b”的报告分别移动到各自对应的目录中: $ mv *oct?b? october $ mv *sep?b? September 0.现在用户将把”a”报告收集到它们各自对应的目录中。注意使用代替“用户的home 目录”。通配 符和模式的组合指定了用户的home 目录下所有以_a1 结尾的文件。 $ cd a_reports $ mv /*_a1 1/ “september”a1”文件旧并且不再需要,使用echo 确定用户已经建立了一个只匹配该类文件 的模式,然后删除它们,并且检查剩下的”a1”
8、文件是否正确移动: $ cd 1 $ echo *sep* $ 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 确定当前目录: $ pwd /home/student/a_reports/1 用echo 检查涉及到“a2”文件的模式,然后
9、使用绝对路径名: $ echo /home/student/*a2* $ mv /home/student/*a2* /home/student/a_reports/2 即使用户当前在/home/student/a_reports/目录下,也能把文件从 /home/student 移动到/home/student/a_reports/2 目录中,因为用户指定了文件的路径名称(在本例中为绝对路径名称)现在使用相对路径移动“a3”文件。再一次的,首先确信模式指定的是正确的文件名称。 $ echo ././*a* $ mv ././*a* ./ 12返回用户的home 目录,并且使用ls 来校验仅存
10、在该目录中的文件都是“c”文件(例如: graph_dec_c1,graph_dec_c2,) 13.“c1”和“c2”报告文件对于每个月来说都非常重要,并且用户打算把它们备份到另外一个目录: $ mkdir /tmp/archive $ cp report*12 /tmp/archive/ 另外的,所有的对于十二月份的报告文件应该备份到/tmp/archice 目录下面。注意,-i 选项使得cp程序在覆盖任何文件之前进行提示: $ cp -i report_dec* /tmp/archive/ cp: overwrite /tmp/archive/report_dec_c1? n cp: o
11、verwrite /tmp/archive/report_dec_c2? n 14现在用户备份了一些对用户重要的“c”文件,用户现在要删除位于用户的home 目录下面所有的文件。使用通配符“*c*”检查剩下的含有c 的文件。用户为什么不想执行命令rm *c* ?(作为提示:尝试:ls *c*) 15.删除用户的home 目录下的剩余*c*文件。在发出一个破坏性的命令之前我们再次使用echo 命令。 $ echo *c1-3 $ rm *c1-3 $ ls a_reports december november october September 实验的结果 一个组织良好的home目录,文件放置
12、在合理的位置,一些文件备份到了/tmp/archive目录中 实验 2 用户信息 估计时间:30分钟目标:熟悉一些用户标识和转换基本的控制操作。 实验准备:安装了Red Hat Linux 可运行系统,并且是成功完成实验系统。有另外一个无特权用户visitor,密码:visitor 的存在。请教师检查用户的系统中是否已经建立这个。如果这个visitor 用户没有建立,按照以下步骤进行 用root 登陆虚拟控制台。 在提示符下键入以下命令 # useradd visitor 现在键入 # passwd visitor Changing password for user visitor。 New
13、 password: 输入visitor BAD PASSWORD: it is based on a dictionary word Retype new password: 输入visitor passwd: all authentication tokens updated successfully。 2.1:本地用户登陆任务: 1.完全从工作站中退出。确定用户已经退出所有虚拟终端和X Windows系统 2.转换到虚拟终端1(tty1)通过按: 3.使用密码redhat 进入root 登陆用户的工作站 4.确定指定的登陆信息,使用下列命令: # whoami # groups # id
14、 检查这些命令的输出。 5.获取工作站当前所有登陆者信息,当前,应该只有一个用户登陆系统,按如下顺序键入的命令的输出是很有趣的。 # users # who # w 检查这些命令的输出。 6.转换到虚拟终端(tty)通过按 7.以用户student,密码:student 登陆用户的工作站。 8.获取指定登陆者的信息,运行下列命令: $ whoami $ groups $ id 检查这些命令的输出。 9.获取工作站上当前所有登陆者的信息: $ users $ who $ w 检查这些命令的输出。 10.转换到虚拟终端3(tty3)通过按 11.以用户visitor,密码:visitor 登陆用户
15、的工作站 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 退出,返回到vis
16、itor # exit 5.使用不含- 的su 切换到root 用户,运行pwd 和id。 $ su # id # pwd 记录结果: id=_ pwd=_ 为什么和第3 步骤的结果不同呢? 6登出所有用户在这个步骤中本地的和远程的shell。 实验 4 使用 bash Shell 估计时间:45 分钟 目标:深入了解bash shell,包括创建定制。 实验准备:一个Red Hat Linux 系统。 第一步:使用Aliases 任务: 1.用户决定创建一个alias,当用户使用cls 的时候,系统能够运行clear 命令清除用户的屏幕。使用student 身份在tty1 登录,然后输入下列
17、命令。 $ alias cls=clear $ alias $ cls 2.当用户重新登录的时候这个别名就丢失了。确信新的别名在用户student 每次登录的时候都能够使用,可以执行一下几步。 $ cd $ vi .bashrc 查找包含下列的文字:#User specific aliases and functions 添加到用户的别名命令行: alias cls=clear 保存并退出。3.测试用户的改变当用户注销的时候,重新登录到tty1上的时候,试下面的命令: $ alias $ cls 4.现在使用ls的man page去创建一个叫lr的别名,利用ls的五个开关。测试并添加用户的别名
18、到.bashrc中.这个别名能够: a)用长格式显示文件 b)显示隐含文件 c)给文件分类 d)用相反的顺序显示文件 e)按文件修改时间显示文件。 目标: 一条新的清屏命令和一条新的列文件命令(别名)。 4.2:改变用户的bash 提示情景/故事:用户决定定制用户的bash 提示以能够显示完全的路径和命令的序列号。 任务: 5.在终端窗口,显示当前主要提示符的值。 $ echo $PS1 6.改变用户的提示符为一个字符串。 $ PS1=Red Hat Linux - 7.这个不常使用,因此恢复到有$提示符的情况下,同时加上主机名。 $ PS1=h $ 8.在主机名和$符号之间插入bash 表示
19、历史纪录提示符的特殊字符!。 9.查找bash 的man 手册,把当前的工作目录放入提示符中。 10.用户定制的提示符显示实例,如不同请继续修改。 station1: 21 $ cd /tmp station1:/tmp 22 $ 11.编辑用户重新定义的PS1 到用户的.bashrc,然后打开新的终端窗口看看结果如何4.3:配置shell 选项 情景/故事:使用set 和shopt 用户定制几个bash shell 。任务: 12.以student 身份登录tty1 界面上.查看许多普遍的配置shell选项: $ set o allexport off braceexpand on emac
20、s on errexit off hashall on output truncated 13.察看目前ignoreeof 的属性,用ctrl+d 键看是否能logout。 14.用student身份在tty1 上登录,执行下面的改变,然后测试ignoreeof 选项: $ set o ignoreeof $ $ 用“logout” 退出shell $ set +o ignoreeof $ 15.当试图执行命令的时候可以看到提示信息.使用type的命令: $ type cat cat is hashed (/bin/cat) $ type cls cls is aliased to clear
21、 $ type set shopt is a shell builtin $ type while while is a shell keyword 结果:现在用户有一个更好的shell options。 问题答案4:命令替代 1.确定完全路径名 $ which metacity $ which .-message $ messagewindow-demo 2.重复执行上一个包含字符串ig的命令: $ ig 3.当一个命令在另一个命令的后面用( )起来的时候,bash会先执行后面的命令并把执行的结果作为第一个命令的输入。使用这个技术,看看下面命令的执行结果 $ ls l which nautilus (end)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1