BUAA操作系统lab0

Cdostan MVP++

Lab0实验报告

一、思考题

Thinking 0.1

执行命令cat Modified.txt,观察其结果和第一次执行 add 命令之前的 status 是否一样,并思考原因
这两次的结果是不一样的。第一次将git status命令结果重定向至Untracked.txt文件中时,这时的README.txt文件还未被放入暂存区,所以状态是未被追踪,而第二次进行类似操作时,README.txt文件已被放入暂存区,所以状态应该是已修改。

Thinking 0.2

仔细看看0.10,思考一下箭头中的add thefile、stage thefile和commit分别对应的是Git里的哪些命令呢

  1. Untracked->Stagedgit add
  2. Modified->Stagedgit add
  3. Staged->Modifiedgit commit

Thinking 0.3

代码文件print.c被错误删除时,应当使用什么命令将其恢复
git checkout -- print.c
代码文件print.c被错误删除后,执行了gitrmprint.c命令,此时应当使用什么命令将其恢复
git reset HEAD print.c
git checkout -- print.c
无关文件hello.txt已经被添加到暂存区时,如何在不删除此文件的前提下将其移出暂存区?
git rm --cached hello.txt

Thinking 0.4

reset命令作用
在循着Thinking中给出的步骤练习后,可以发现reset命令的作用就是让我们回退或恢复版本的,可以通过git reset --hard HEAD~(num)来进行版本回退,也可以直接用版本的哈希值(通过git log查询)来指定移动到哪个版本。

Thinking 0.5

执行如下命令, 并查看结果
· echo first
result:first(stdout)
· echo second > output.txt
result:second(output.txt)
• echo third > output.txt
result:third(otuput.txt)
• echo forth >> output.txt
result:
third
forth(output.txt)

Thinking 0.6

使用你知道的方法(包括重定向)创建下图内容的文件(文件命名为test),将创建该文件的命令序列保存在command文件中,并将test文件作为批处理文件运行,将运行结果输出至result文件中。给出command文件和result文件的内容,并对最后的结果进行解释说明(可以从test文件的内容入手). 具体实现的过程中思考下列问题: echo
echo Shell Start 与 echo echo Shell Start 效果是否有区别; echo echo $c>file1与echo echo $c>file1 效果是否有区别

command文件内容如图所示:

result文件内容如图所示:

解释
根据test文件内容,不难发现执行test文件其实就是为变量abc赋值后再把它们的值存到不同的文件中,之后再根据顺序把相应值依次添加到file4文件中,最后输出到result文件中,因此result文件最终结果为”3 2 1”

二、难点分析

个人认为本次实验的难点还是在于接触新的东西时各方面的不熟悉导致的,具体来说有如下:

  • git的使用,对工作区、暂存区、分支、状态、版本的体会
  • linux相关指令的使用,对指令和选项功能的体会(尤其是多功能指令例如sed、awk等命令)
  • shell脚本的编写,对语法的把握和认识

三、实验体会

lab0的实验难度并不算大,主要是让我们熟悉实验环境,回顾之前的知识,了解操作系统基本的概念和原理,并了解linux的基本使用。本人之前并未太多使用linux系统,只能使用一些基本的指令,对于编写脚本,编译代码等并不熟悉,在做完本次实验后,我才终于理解为什么都说程序员要想提高自己的效率一定要会使用linux,当使用多了linux系统后,也会真正体会到cli的魅力,可能它没有gui那么简单,那么直观,但是通过输入指令来控制电脑让我们进一步能体会到人与机器的交互。

  • Title: BUAA操作系统lab0
  • Author: Cdostan
  • Created at : 2025-03-12 10:21:00
  • Updated at : 2025-03-25 14:24:12
  • Link: https://cdostan.github.io/2025/03/12/OS/Lab0实验报告/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments