The Missing Semester -01-课程概览与 shell-习题记录

[!note] 推荐一个超级详细的博主记录
https://www.cnblogs.com/grapefruit-cat/p/17059665.html

  1. 在 /tmp 下新建一个名为 missing 的文件夹。

    mkdir /tmp/missing
    
  2. 用 man 查看程序 touch 的使用手册。

    man touch
    
  3. 用 touch 在 missing 文件夹中新建一个叫 semester 的文件。

    cd /tmp/missing/
    mkdir semester
    
  4. 将以下内容一行一行地写入 semester 文件:

     #!/bin/sh
     curl --head --silent https://missing.csail.mit.edu
    

    第一行可能有点棘手, # 在 Bash 中表示注释,而 ! 即使被双引号(")包裹也具有特殊的含义。 单引号(')则不一样,此处利用这一点解决输入问题。更多信息请参考 Bash quoting 手册

[!note] 解决方法

  1. 两种写入方法
    因为需要一行一行写入,我觉得可以使用vim直接写入,即vim semester直接写入对应的代码,另一种方法就是直接echo写入。
    但是因为echo写入,有注释的文件和!,所以我们需要使用单引号,避免歧义。
  2. 然后解释一下>和>>
    ‘>’ 和‘>>’一个是直接覆盖,一个是添加文件,新文件写入可以直接使用‘>’ 。在后面写入则需要‘>>’覆盖。
> `echo '#!/bin/sh' >semester #重定向到semester文件当中`
>`echo curl --head --silent https://missing.csail.mit.edu >>semester #追加一行文字到对应的文件当中`
> `cat semester #查看当前文件内容`
  1. 尝试执行这个文件。例如,将该脚本的路径(./semester)输入到您的 shell 中并回车。如果程序无法执行,请使用 ls 命令来获取信息并理解其不能执行的原因。
    ./semester
    
  2. 查看 chmod 的手册(例如,使用 man chmod 命令)
    man chmod
    
  3. 使用 chmod 命令改变权限,使 ./semester 能够成功执行,不要使用 sh semester 来执行该程序。您的 shell 是如何知晓这个文件需要使用 sh 来解析呢?更多信息请参考:shebang

[!note] 关于chmod的一些事情
详细链接:Linux chmod命令
关于chmod的权重:
使用八进制数字进行chmod权重的设置:
分别是r(4),w(2),x(1) ,其中:读r,写w,执行x
attachments/Pasted image 20250625204638.png

权限从左到右分为:所有者(owner),用户组(group),和其他用户(other users)
如果全部权限都给,就是4+2+1=7,即rwx
也就是正常的

	chmod 777 semester
  1. 使用 | 和 > ,将 semester 文件输出的最后更改日期信息,写入主目录下的 last-modified.txt 的文件中

[!note] 关于|>
|是管道符,允许将一个程序的输出和另外一个程序的输入连接起来,方便更好重定向

semester输出如下:
attachments/Pasted image 20250625205720.png
我们需要其last-modified的输出,即将semester的last-modified的输出写入last-modified.txt里面,如下:

./semester | grep last-modified > ~/last-modified.txt 

即semester执行的输出内容last-modified写入主目录下的文件last-modified.txt中。

  1. 写一段命令来从 /sys 中获取笔记本的电量信息,或者台式机 CPU 的温度。注意:macOS 并没有 sysfs,所以 Mac 用户可以跳过这一题。
    虚拟机没有这个文件,无法查看
posted @ 2025-06-25 21:27  艳爚邀灼  阅读(25)  评论(0)    收藏  举报