The Missing Semester -01-课程概览与 shell-习题记录
[!note] 推荐一个超级详细的博主记录
https://www.cnblogs.com/grapefruit-cat/p/17059665.html
-
在
/tmp下新建一个名为missing的文件夹。mkdir /tmp/missing -
用
man查看程序touch的使用手册。man touch -
用
touch在missing文件夹中新建一个叫semester的文件。cd /tmp/missing/ mkdir semester -
将以下内容一行一行地写入
semester文件:#!/bin/sh curl --head --silent https://missing.csail.mit.edu第一行可能有点棘手,
#在 Bash 中表示注释,而!即使被双引号(")包裹也具有特殊的含义。 单引号(')则不一样,此处利用这一点解决输入问题。更多信息请参考 Bash quoting 手册
[!note] 解决方法
- 两种写入方法
因为需要一行一行写入,我觉得可以使用vim直接写入,即vim semester直接写入对应的代码,另一种方法就是直接echo写入。
但是因为echo写入,有注释的文件和!,所以我们需要使用单引号,避免歧义。- 然后解释一下>和>>
‘>’ 和‘>>’一个是直接覆盖,一个是添加文件,新文件写入可以直接使用‘>’ 。在后面写入则需要‘>>’覆盖。> `echo '#!/bin/sh' >semester #重定向到semester文件当中` >`echo curl --head --silent https://missing.csail.mit.edu >>semester #追加一行文字到对应的文件当中` > `cat semester #查看当前文件内容`
- 尝试执行这个文件。例如,将该脚本的路径(
./semester)输入到您的 shell 中并回车。如果程序无法执行,请使用ls命令来获取信息并理解其不能执行的原因。./semester - 查看
chmod的手册(例如,使用man chmod命令)man chmod - 使用
chmod命令改变权限,使./semester能够成功执行,不要使用sh semester来执行该程序。您的 shell 是如何知晓这个文件需要使用sh来解析呢?更多信息请参考:shebang
[!note] 关于chmod的一些事情
详细链接:Linux chmod命令
关于chmod的权重:
使用八进制数字进行chmod权重的设置:
分别是r(4),w(2),x(1) ,其中:读r,写w,执行x
权限从左到右分为:所有者(owner),用户组(group),和其他用户(other users)
如果全部权限都给,就是4+2+1=7,即rwx
也就是正常的chmod 777 semester
- 使用
|和>,将semester文件输出的最后更改日期信息,写入主目录下的last-modified.txt的文件中
[!note] 关于
|和>
|是管道符,允许将一个程序的输出和另外一个程序的输入连接起来,方便更好重定向
semester输出如下:

我们需要其last-modified的输出,即将semester的last-modified的输出写入last-modified.txt里面,如下:
./semester | grep last-modified > ~/last-modified.txt
即semester执行的输出内容last-modified写入主目录下的文件last-modified.txt中。
- 写一段命令来从
/sys中获取笔记本的电量信息,或者台式机 CPU 的温度。注意:macOS 并没有 sysfs,所以 Mac 用户可以跳过这一题。
虚拟机没有这个文件,无法查看

浙公网安备 33010602011771号