首页 > 其他分享 >MIT课程missing semester笔记

MIT课程missing semester笔记

时间:2024-03-15 23:31:15浏览次数:33  
标签:missing virtual wyx semester base MIT homework

title: missing semester notes

Day1-课程概览与 shell

使用 shell

  1. 打开终端时,会看到一个提示符

missing:~$ 
  • 你的主机名是 missing

  • 当前所在的位置是 ~ (表示 “home”)

  • $ 符号表示您现在的身份不是 root 用户,root用户会是#

  1. 希望传递的参数中包含空格(例如一个名为 My Photos 的文件夹),您要么用使用单引号,双引号将其包裹起来,要么使用转义符号 \ 进行处理(My\ Photos)。

在shell中导航

在 Linux 和 macOS 上使用 / 分割,而在Windows上是 \

如果某个路径以 / 开头,那么它是一个 绝对路径,其他的都是 相对路径

在路径中,. 表示的是当前目录,而 .. 表示上级目录。

mv(用于重命名或移动文件)

cp(拷贝文件)

mkdir(新建文件夹)

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

在程序间创建连接

最简单的重定向是 < file> file。这两个命令可以将程序的输入输出流分别重定向到文件

可以使用 >> 来向一个文件追加内容。

| 操作符允许我们将一个程序的输出和另外一个程序的输入连接起来:左边是输入流,右边是输出流。

missing:~$ echo hello > hello.txt
missing:~$ cat hello.txt
hello
missing:~$ cat < hello.txt
hello
missing:~$ cat < hello.txt > hello2.txt
missing:~$ cat hello2.txt
hello

一个功能全面又强大的工具

根用户(root user)几乎不受任何限制,他可以创建、读取、更新和删除系统中的任何文件。

sudo 命令的作用是让您可以以 su(super user 或 root 的简写)的身份执行一些操作。 当您遇到拒绝访问(permission denied)的错误时,通常是因为此时您必须是根用户才能操作。

day1_homework

  1. 本课程需要使用类Unix shell,例如 Bash 或 ZSH。如果您在 Linux 或者 MacOS 上面完成本课程的练习,则不需要做任何特殊的操作。如果您使用的是 Windows,则您不应该使用 cmd 或是 Powershell;您可以使用Windows Subsystem for Linux或者是 Linux 虚拟机。使用echo $SHELL命令可以查看您的 shell 是否满足要求。如果打印结果为/bin/bash/usr/bin/zsh则是可以的。

(base) wyx@wyx-virtual-machine:~/homework/missing-semester/missing$ echo $SHELL
/bin/bash
  1. /tmp 下新建一个名为 missing 的文件夹。

(base) wyx@wyx-virtual-machine:~/homework/missing-semester$ mkdir missing
  1. man 查看程序 touch 的使用手册。

(base) wyx@wyx-virtual-machine:~/homework/missing-semester/missing$ man touch
  1. touchmissing 文件夹中新建一个叫 semester 的文件。

(base) wyx@wyx-virtual-machine:~/homework/missing-semester/missing$ touch semester
  1. 将以下内容一行一行地写入 semester 文件:

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

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

my answer

(base) wyx@wyx-virtual-machine:~/homework/missing-semester/missing$ echo '#!/bin/sh'>semester
(base) wyx@wyx-virtual-machine:~/homework/missing-semester/missing$ echo 'curl --head --silent https://missing.csail.mit.edu'>>semester
(base) wyx@wyx-virtual-machine:~/homework/missing-semester/missing$ vim semester
  1. 尝试执行这个文件。例如,将该脚本的路径(./semester)输入到您的shell中并回车。如果程序无法执行,请使用 ls 命令来获取信息并理解其不能执行的原因。

(base) wyx@wyx-virtual-machine:~/homework/missing-semester/missing$ ./semester
bash: ./semester: 权限不够
  1. 查看 chmod 的手册(例如,使用 man chmod 命令)

(base) wyx@wyx-virtual-machine:~/homework/missing-semester/missing$ man chmod
  1. 使用 chmod 命令改变权限,使 ./semester 能够成功执行,不要使用 sh semester 来执行该程序。您的 shell 是如何知晓这个文件需要使用 sh 来解析呢?更多信息请参考:shebang

(base) wyx@wyx-virtual-machine:~/homework/missing-semester/missing$ ./semester
HTTP/2 200 
server: GitHub.com
content-type: text/html; charset=utf-8
last-modified: Sat, 02 Mar 2024 14:52:48 GMT
access-control-allow-origin: *
etag: "65e33d40-2015"
expires: Thu, 14 Mar 2024 18:53:34 GMT
cache-control: max-age=600
x-proxy-cache: MISS
x-github-request-id: D340:3F1601:1D8D39C:1E9C5DF:65F34555
accept-ranges: bytes
date: Fri, 15 Mar 2024 14:04:56 GMT
via: 1.1 varnish
age: 0
x-served-by: cache-tyo11968-TYO
x-cache: HIT
x-cache-hits: 1
x-timer: S1710511497.600772,VS0,VE176
vary: Accept-Encoding
x-fastly-request-id: 4a4dfc801cdcc6d792882538f836eee1326ed412
content-length: 8213
  1. 使用 |> ,将 semester 文件输出的最后更改日期信息,写入主目录下的 last-modified.txt 的文件中

(base) wyx@wyx-virtual-machine:~/homework/missing-semester/missing$ stat -c %y ./semester > last-modified.txt
(base) wyx@wyx-virtual-machine:~/homework/missing-semester/missing$ vim last-modified.txt
  1. 写一段命令来从 /sys 中获取笔记本的电量信息,或者台式机 CPU 的温度。注意:macOS 并没有 sysfs,所以 Mac 用户可以跳过这一题。

作者的笔记本电脑是y9000p,配置虚拟机方式是VMware+ubuntu,但是好像没有找到笔记本的电量信息,如果有读者知道怎么做的话欢迎联系~

标签:missing,virtual,wyx,semester,base,MIT,homework
From: https://blog.csdn.net/2201_75532964/article/details/136745895

相关文章

  • MIT 6.S081入门lab7 多线程
    MIT6.S081入门lab7多线程一、参考资料阅读与总结1.xv6book书籍阅读(Chapter7:SchedulingthroughSection7.4)1.概述:由于操作系统往往运行比CPU数量更多的进程,因此需要对CPU进行虚拟化,使多个进程能够分时复用CPU资源2.多路复用:xv6中多路复用有2种方式:sleep和wakeup机制......
  • 维修住友注塑机 Sumitomo SE50D 工业液晶屏 SE50S工业电脑显示屏
    Sumitomo(SHI)Demag的NC5plus控制器是一款易于使用的控制器,可帮助成型商实现卓越的注塑成型精度。该控制器作为用户和注塑机之间的通信接口发挥着关键作用。只有通过控制才能访问机器的全部性能属性,从而以各种方式帮助最大限度地提高生产效率。NC5+优点易于使用并快速......
  • SAP中的COMMIT WORK 与 ROLLBACK WORK
    文章目录数据库中的COMMIT和ROLLBACKCOMMITWORKCOMMITWORKANDWAITROLLBACKWORK案例分享BAPI中的COMMIT和ROLLBACKBAPI_TRANSACTION_COMMITBAPI_TRANSACTION_ROLLBACK数据库中的COMMIT和ROLLBACKCOMMITWORK使用COMMITWORK语句后,对数据库的更改将不能取消。......
  • 实现eventEmmiter,发布-订阅 模式 (on, emit, off)
    /* *@Date:2024-03-1415:46:52 *@Description:Modifyhereplease */interfaceSubscribeEvent{ fn:Function; once:boolean;}classEventEmmiter{ subscribes:Map<string,Array<SubscribeEvent>>; constructor(){  this.subscrib......
  • MIT 6.S081入门lab6 cow
    MIT6.S081入门lab6cow由于本实验的前置课程包括2部分Interrupts和Multiprocessorsandlocking,因此本次实验记录也分为2部分一、参考资料阅读与总结1.xv6book书籍阅读(chapter5Interruptsanddevicedrivers)1.概述设备驱动程序:位置:操作系统;作用:配置设备,执行操作,处......
  • React报错:Uncaught Error: Too many re-renders. React limits the number of renders
    UncaughtError:Toomanyre-renders.Reactlimitsthenumberofrenderstopreventaninfiniteloop.atrenderWithHooks(react-dom.development.js:16317:1)atmountIndeterminateComponent(react-dom.development.js:20074:1)atbeginWork(react-do......
  • GAMIT/GLOBK v10.75:北斗数据处理利器,你掌握了吗?
    随着GNSS导航定位技术的不断演进和广泛应用,大型工程项目的设计、施工、运行与管理等环节对工程测量的要求也日趋严格。众多行业领域,包括测绘、勘测、规划、市政、交通、铁道、水利水电、建筑、矿山、道桥、国土资源、气象、地震等,在大型工程建设中均需要依赖高精度卫星定位......
  • hadoop报错:is running 446528000B beyond the 'VIRTUAL' memory limit
    发现问题今天在配置hadoop文件时,报错:isrunning446528000Bbeyondthe'VIRTUAL'memorylimit.Currentusage:73.9MBof1GBphysicalmemoryused;2.5GBof2.1GBvirtualmemoryused.Killingcontainer.意思是虚拟内存,超出了限制。然后将虚拟机内存改为3G关闭集群......
  • macOS 下使用 pyenv 安装 python 2.n.p 报错,ERROR: The Python zlib extension was no
    TL;DR执行brewinstallzlib安装zlib之后,根据安装信息提示将一下三行变量exportLDFLAGS="-L/opt/homebrew/opt/zlib/lib"exportCPPFLAGS="-I/opt/homebrew/opt/zlib/include"exportPKG_CONFIG_PATH="/opt/homebrew/opt/zlib/lib/pkgconfig"加入到~/.zsh......
  • commit规范
    commit 的类型:feat: 新功能、新特性fix: 修改 bugperf: 更改代码,以提高性能(在不影响代码内部行为的前提下,对程序性能进行优化)refactor: 代码重构(重构,在不影响代码内部行为、功能下的代码修改)docs: 文档修改style: 代码格式修改, 注意不是 css 修改(例如分号修改)test: ......