博主近期在网络上跟着missing semester这节课学习...对shell这些刚刚入门,写作业的时候碰壁很多。所以写下这篇文档来纪录自己的答案。如果有错误的地方欢迎指出来!希望能遇到志同道合的朋友一起学习
题目
- 在
/tmp
下新建一个名为missing
的文件夹。 - 用
man
查看程序touch
的使用手册。 - 用
touch
在missing
文件夹中新建一个叫semester
的文件。 - 将以下内容一行一行地写入
semester
文件:#!/bin/sh curl --head --silent https://missing.csail.mit.edu
第一行可能有点棘手,
#
在Bash中表示注释,而!
即使被双引号("
)包裹也具有特殊的含义。 单引号('
)则不一样,此处利用这一点解决输入问题。更多信息请参考 Bash quoting 手册 - 尝试执行这个文件。例如,将该脚本的路径(
./semester
)输入到您的shell中并回车。如果程序无法执行,请使用ls
命令来获取信息并理解其不能执行的原因。 -
查看
chmod
的手册(例如,使用man chmod
命令) -
使用
chmod
命令改变权限,使./semester
能够成功执行,不要使用sh semester
来执行该程序。您的 shell 是如何知晓这个文件需要使用sh
来解析呢?更多信息请参考:shebang -
使用
|
和>
,将semester
文件输出的最后更改日期信息,写入主目录下的last-modified.txt
的文件中 - 写一段命令来从
/sys
中获取笔记本的电量信息,或者台式机 CPU 的温度。注意:macOS 并没有 sysfs,所以 Mac 用户可以跳过这一题。
答案
cd /tmp //进入tmp目录
mkdir missing //在tmp目录下创建一个missing的目录
man touch //查询使用手册
cd ./missing //进入missing文件价
touch semester //在missing内创建一个名为semester的文件
echo '#!/bin/sh' > semester //将第一句话写入semester文件
echo curl --head --silent https:missing.csail.mit.edu >> semester //追加写入第二句话
./semester //尝试执行,但是此时发现权限不够
man chmod
chmod a+x semester //使用chmod授予执行权限
./semester //此时发现能够执行了
./semester | sed -n '4p' > ~/last-modified.txt //将最后更改日期写入主目录下last-modified文件中
cd /sys/class/power_supply/BAT1
cat energy_now //输出电量信息