01. 课程概览与 shell
练习 1
本课程需要使用类 Unix shell,例如 Bash 或 ZSH。如果您在 Linux 或者 MacOS 上面完成本课程的练习,则不需要做任何特殊的操作。如果您使用的是 Windows,则您不应该使用 cmd 或是 Powershell;您可以使用 Windows Subsystem for Linux 或者是 Linux 虚拟机。使用
echo $SHELL命令可以查看您的 shell 是否满足要求。如果打印结果为/bin/bash或/usr/bin/zsh则是可以的
❯ echo $SHELL
/bin/zsh练习 2
在
/tmp下新建一个名为missing的文件夹
cd /tmp
mkdir missing练习 3
用
man查看程序touch的使用手册
man touch练习 4
用
touch在missing文件夹中新建一个叫semester的文件
cd /tmp/missing
touch semester练习 5
将以下内容一行一行地写入
semester文件:shell#!/bin/sh curl --head --silent https://missing.csail.mit.edu第一行可能有点棘手,
#在 Bash 中表示注释,而!即使被双引号(")包裹也具有特殊的含义。 单引号(')则不一样,此处利用这一点解决输入问题。更多信息请参考 Bash quoting 手册
echo '#!/bin/sh' > semester
echo 'curl --head --silent https://missing.csail.mit.edu' >> semester练习 6
尝试执行这个文件。例如,将该脚本的路径(
./semester)输入到您的 shell 中并回车。如果程序无法执行,请使用ls命令来获取信息并理解其不能执行的原因
❯ ./semester
zsh: 权限不够: ./semester
❯ ls -l
-rw-rw-r-- 1 ... semester可以看到文件缺少执行权限 x 所以不能执行。
练习 7
查看
chmod的手册(例如,使用man chmod命令)
man chmod练习 8
使用
chmod命令改变权限,使./semester能够成功执行,不要使用sh semester来执行该程序。您的 shell 是如何知晓这个文件需要使用sh来解析呢?更多信息请参考:shebang
chmod +x semester练习 9
使用
|和>,将semester文件输出的最后更改日期信息,写入主目录下的last-modified.txt的文件中
./semester | grep last-modified > ~/last-modified.txt练习 10
写一段命令来从
/sys中获取笔记本的电量信息,或者台式机 CPU 的温度。注意:macOS 并没有 sysfs,所以 Mac 用户可以跳过这一题
# mac 用户可以使用 `pmset` 命令来查看笔记本电量
pmset -g batt