# 进入到 oslab 所在的文件夹
$ cd /home/shiyanlou/oslab/
# 解压,并指定解压到 /home/shiyanlou/
# 这样的话,在 /home/shiyanlou/oslab/ 中就能找到解压后的所有文件
$ tar -zxvf hit-oslab-linux-20110823.tar.gz \
-C /home/shiyanlou/
# 查看是否解压成功
$ ls -al
# 除了压缩包 hit-oslab-linux-20110823.tar.gz 之外,其他的就是压缩包中的内容
#!/bin/bash
#1.这里res=$()格式是:运行()中命令作为输出,将其赋值给res
#2.dirname - strip last component from file name。
#如 dirname /usr/bin/ -> "/usr"
#3.双引号作用:弱替换。执行其中的命令,解释其中特殊字符的含义
#4.BASH_SOURCE[0]这个就是当前脚本的路径。
#我试了,输出的总是脚本的相对路径
#5.花括号:限定名称范围
#这个最常见的变量形式就是$var,打印var用命令
#echo $var
#可是这里有个问题:当你要显示变量值加随意的字符(如$varAA)时,就会出错。
#系统会认为整个varAA是一个变量,这时就可以用一个大括号来限定变量名称的
#范围,如${var}AA,这样就好了。
#6.输出重定向:> 追加模式是 :>>
#7. > /dev/null简单的理解,将命令的输出信息输入到 /dev/null中,
#标准输出几口将输出信息显示到屏幕上,而使用> /dev/null将消除命令
#回显信息的显示。
#8.&&:用来执行条件成立后执行的命令
#||:用来执行条件不成立后的执行命令
#9.合着,这第一句的输出是pwd,pwd是当前脚本所在的目录。然后我测试了下这句:
#OSLAB_PATH=$(dirname "${BASH_SOURCE[0]}")发现输出是 .
#而这个脚本的输出是/home/li/oslab
export OSLAB_PATH=$(cd $(dirname "${BASH_SOURCE[0]}") >/dev/null && pwd)
#1.这里是测试条件。由于shell的if语句只能判断命令退出码(0是True),所以增加了
#这个测试条件。
#-e表示只bai要filename存在,则为真
#2.在Linux中,语句中的分号一般用作代码块标识.
#也就是说,这里的;只是为了少打一个换行符
#3.$?
#最后运行的命令的结束代码(返回值)即执行上一个指令的返回值
#(显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
if [ ! -e "$OSLAB_PATH/hdc/umounted" ]; then
echo umount hdc first
sudo umount $OSLAB_PATH/hdc
if [ "$?" != "0" ]; then
exit
fi
fi
$OSLAB_PATH/bochs/bochs-gdb -q -f $OSLAB_PATH/bochs/bochsrc.bxrc