The Missing Semester of Your CS Education 第一章 shell简单操作课后练习

本文介绍了Shell的基本概念,作为用户与操作系统交互的接口,讲解了路径、绝对路径与相对路径的区别,以及如何进行命令重定向和使用管道操作。还提到了权限管理工具chmod和脚本编写,包括shebang的使用,以及如何执行和调整脚本权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

知识点

课后练习



知识点

  1. shell 是什么?

    计算机操作系统中的一种用户界面,用于与操作系统内核进行交互。它是用户和操作系统之间的接口,用户可以通过输入命令来操作计算机系统。

  1. $ 符号表示您现在的身份不是 root 用户

    niki@111:~$

    shell 中的路径是一组被分割的目录,在 Linux 和 macOS 上使用 / 分割,而在Windows上是 \\

  2. 相对路径与绝对路径

    如果某个路径以 / 开头,那么它是一个 绝对路径,其他的都是 相对路径 ,相对路径是指相对于当前工作目录的路径

  3. . 表示的是当前目录,而 .. 表示上级目录

  4. echo 输出变量或常量到控制台

  5. 重定向 > 和 >>

    Linux 允许将命令执行结果 重定向到一个 文件,将本应显示在终端上的内容 输出/追加 到指定文件中

    > 表示输出,会覆盖文件原有的内容

    >> 表示追加,会将内容追加到已有文件的末尾

  6. | 管道

    操作符允许我们将一个程序的输出和另外一个程序的输入连接起来:

  7. pwd 获取当前工作目录

  8. man

    接受一个程序名作为参数,然后将它的文档(用户手册)展现给您。使用 q 可以退出该程序。

  9. cat

    可以用来 查看文件内容、创建文件、文件合并、追加文件内容 等功能

  10. touch创建文件

  11. 权限修改

    语法:chmod [who] [+ | - | =] [mode] 文件名

    命令中各选项的含义为:

    操作对象who可是下述字母中的任一个或者它们的组合:

    u 表示“用户(user)”,即文件或目录的所有者。

    g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。

    o 表示“其他(others)用户”。

    a 表示“所有(all)用户”。它是系统默认值。

    操作符号可以是:

    = 赋予给定权限并取消其他所有权限(如果有的话)。

    设置 mode 所表示的权限可用下述字母的任意组合:

    r 可读。

    w 可写。

    x 可执行

课后练习

习题解答 本课程中的每节课都包含一系列练习题。有些题目是有明确目的的,另外一些则是开放题,例如“尝试使用 X 和 Y”,我们强烈建议您一定要动手实践,用于尝试这些内容。 此外,我们没有为这些练习题提供答案。如果有任何困难,您可以发送邮件给我们并描述你已经做出的尝试,我们会设法帮您解答。

  1. 本课程需要使用类Unix shell,例如 Bash 或 ZSH。如果您在 Linux 或者 MacOS 上面完成本课程的练习,则不需要做任何特殊的操作。如果您使用的是 Windows,则您不应该使用 cmd 或是 Powershell;您可以使用Windows Subsystem for Linux或者是 Linux 虚拟机。使用echo $SHELL命令可以查看您的 shell 是否满足要求。如果打印结果为/bin/bash/usr/bin/zsh则是可以的。
    niki@267:~$ echo $SHELL
    /bin/bash
    
  2. 在 /tmp 下新建一个名为 missing 的文件夹。
  3. 用 man 查看程序 touch 的使用手册。
  4. 用 touch 在 missing 文件夹中新建一个叫 semester 的文件。
  5. 将以下内容一行一行地写入 semester 文件:
     #!/bin/sh
     curl --head --silent https://missing.csail.mit.edu
    

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

  6. 尝试执行这个文件。例如,将该脚本的路径(./semester)输入到您的shell中并回车。如果程序无法执行,请使用 ls 命令来获取信息并理解其不能执行的原因。
  7. 查看 chmod 的手册(例如,使用 man chmod 命令)

  8. 使用 chmod 命令改变权限,使 ./semester 能够成功执行,不要使用 sh semester 来执行该程序。您的 shell 是如何知晓这个文件需要使用 sh 来解析呢?更多信息请参考:shebang

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

  10. 写一段命令来从 /sys 中获取笔记本的电量信息,或者台式机 CPU 的温度。注意:macOS 并没有 sysfs,所以 Mac 用户可以跳过这一题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值