The Missing Semester of Your CS Education 第一节

课前准备:如果用mac系统,那么你和课程中的shell一样,如果是win系统你需要在这里设置 WSL 开发环境 | Microsoft Learn安装Linux环境(可能需要科学上网以下载Linux安装包)

知识点:

ls 查看当前目录下的文件

可以添加 -l参数以查看详细信息

cd  <file> 切换当前工作目录(相当于文件夹)

cd - 切换到上一目录

cd .. 切换到父目录

pwd 打印当前当前工作目录

man <指令> 显示指令的帮助手册(是英文的,比指令加--help选项易读)

cat  <file> 查看文件内容

echo 使用echo这个程序,返回后面的东西

sudo <指令> 以管理员身份运行后面的指令

如果bright需要管理员身份才能打开,那么这样依然不能打开,因为以管理员身份运行的是echo,打开brightness时仍为一般用户身份

 

mkdir <name> (在当前目录下)创建一个叫“name”的文件夹

rmdir <name> (在当前目录下)删除叫name文件夹仅当这个文件夹为空时可执行

tee     一个程序将输入写入文件并且在终端上显示

cp [选项] 源文件 目标文件 拷贝文件
mv [options] source dest 移动位置

mv source_file(文件) dest_file(文件) 文件改名

xx>file 把xx指令的结果写到file里

xx<file  把file里的东西作为xx指令的参数传进去

|     管道

A | B 把A的输出作为参数传给B,但是A和B是不知道彼此存在的独立的

 

 习题

  • /tmp 下新建一个名为 missing 的文件夹。
  • dream@dream:/tmp$ cd /tmp
    dream@dream:/tmp$ mkdir missing

  • man 查看程序 touch 的使用手册。
  • dream@dream:/tmp/missing$ man touch

  • touchmissing 文件夹中新建一个叫 semester 的文件。
  • dream@dream:/tmp/missing$ touch semester

  • 将以下内容一行一行地写入 semester 文件:
     #!/bin/sh
     curl --head --silent https://missing.csail.mit.edu
    

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

    dream@dream:/tmp/missing$ echo '#!/bin/sh' > semester
    dream@dream:/tmp/missing$ echo 'curl --head --silent https://missing.csail.mit.edu' >>semester
    dream@dream:/tmp/missing$ cat semester
    #!/bin/sh
    curl --head --silent https://missing.csail.mit.edu

  • 尝试执行这个文件。例如,将该脚本的路径(./semester)输入到您的shell中并回车。如果程序无法执行,请使用 ls 命令来获取信息并理解其不能执行的原因。
  • ./semester
    -bash: ./semester: Permission denied
    dream@dream:/tmp/missing$ chmod ugo+x semester
    dream@dream:/tmp/missing$ ./semester
    HTTP/2 200
    server: GitHub.com
    content-type: text/html; charset=utf-8
    last-modified: Mon, 31 Jul 2023 15:24:17 GMT
    access-control-allow-origin: *
    etag: "64c7d221-1fce"
    expires: Wed, 02 Aug 2023 08:22:31 GMT
    cache-control: max-age=600
    x-proxy-cache: MISS
    x-github-request-id: 84B4:14D4:4C3648:500005:64CA0FEE
    accept-ranges: bytes
    date: Wed, 02 Aug 2023 08:51:27 GMT
    via: 1.1 varnish
    age: 0
    x-served-by: cache-tyo11922-TYO
    x-cache: HIT
    x-cache-hits: 1
    x-timer: S1690966287.308754,VS0,VE162
    vary: Accept-Encoding
    x-fastly-request-id: 2ea263f486556e7e57421d37fb1893124aea7604
    content-length: 8142

  • 查看 chmod 的手册(例如,使用 man chmod 命令)

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

  • chmod ugo+x semester
  • 这个命令中 ugo,代表了所有人,u是自己,g是用户组,o是其他人

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

    modified.txt 的文件中

  • dream@dream:/tmp/missing$ echo| ls -l |sudo tee ~/last-modified.txt
    total 4
    -rwxr-xr-x 1 dream dream 61 Aug  2 16:50 semester
    dream@dream:/tmp/missing$ cat ~/last-modified.txt
    total 4
    -rwxr-xr-x 1 dream dream 61 Aug  2 16:50 semester

  • 写一段命令来从 /sys 中获取笔记本的电量信息,或者台式机 CPU 的温度。注意:macOS 并没有 sysfs,所以 Mac 用户可以跳过这一题
  • dream@dream:/sys$ cat /sys/class/power_supply/BAT1/capacity
    100

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值