首页 > 系统相关 >MIT missing semester 1 the Shell

MIT missing semester 1 the Shell

时间:2023-01-15 20:12:46浏览次数:38  
标签:bin 文件 sbin Shell missing semester usr MIT

最近在看MIT的missing semester,顺便做了一些记录,做的比较简洁,课程主页如下:https://missing.csail.mit.edu/2020/。
### The Shell **1.Shell如何找到一个程序?** Shell是一个编程环境,它具有变量、条件、循环、函数。当我们在shell中输入命令后,如果无法匹配到shell的关键词,它会去`$PATH`中查找,其中列出了可以寻找程序的目录。 ```bash missing:~$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin missing:~$ which echo /bin/echo missing:~$ /bin/echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ``` **2.Shell中的地址** 在Linux和macOS上使用`/`,在Windows上使用`\`作为分隔符。 - `~`表示home - `/`表示文件系统的root,包含所有目录和文件 - 以`/`开始的路径称为绝对路径,其他路径为相对路径 - `.`表示当前文件夹,`..`表示父文件夹
**3. 指令接收flags和options** 大多数的指令可以接收flags和options,以`-`开始。常见的是`--help`或`-h`. **4. 文件操作权限** 对于目录: - w:可以修改目录,添加删除文件 - x:可以进入目录 - r:可以列出目录中的内容
对于文件权限很容易理解。
`/bin`文件夹中几乎所有文件都允许所有用户执行。
**5. 常用程序** - `mv`:更改文件名称,移动文件 - `cp`:复制一个文件 - `mkdir`:创建新目录 - `man`:可以展示一个程序的参数、输入、输出以及工作方式 - `cat`:连接文件,直接使用可以讲指定文件内容输出到输出流。此外也可以指定输入流和输出流。 - `touch`:更新文件时间戳,新建文件
**6. 程序之间的连接** shell中程序具有输入流和输出流。通常输入和输出都是终端,也可以修改这些流。使用`<`和`>`.使用`|`可以讲一个程序的输出和另一个程序的输入连接。 使用`>>`则是在文件后面进行输出而不是覆盖。

**7. sudo** root用户具有很高的权限,通常我们很少直接使用root账户登入系统,而是使用`sudo`指令。
例如,在`/sys/sysfs`文件的修改就需要root权限。该文件中包括许多内核参数,因此可以很容易的重新配置。
更具体的一个例子。在`/sys/class/backlight`中有一个`brightness`文件,表示电脑屏幕亮度。做法是使用下面的指令。 `echo 3 | sudo tee brightness` `tee`程序可以为文件输出的同时输出的屏幕。
xdg-open:使用合适的工具打开文件

标签:bin,文件,sbin,Shell,missing,semester,usr,MIT
From: https://www.cnblogs.com/Aaron-H/p/17054039.html

相关文章

  • JAVA线程池 submit方法返回值
    JAVA线程池submit方法返回值AbstractExecutorServicepublicabstractclassAbstractExecutorServiceimplementsExecutorService{//RunnableFuture是用于......
  • SVN pre-commit钩子检测文件名称合法性
    需求这里题目起的比较大,实际笔者这里的需求,仅仅是检测提交的文件名称以及目录名称是否包含空格而已,不过回头想想也不算大,我能够检测空格,同时也就能检测其他的元素,进而实现......
  • shell1
    expr//a=5b=10expr$a\*$b不会执行计算功能,输出->5*10expr$a\*$b(有空格以示区分),输出->50printf//printf只能写成一行printf"%d"100可以//printf......
  • shell 脚本if语句
    思路:判断/root/test/下是否有14这个文件,如果有.就拷贝到/home目录下例:#!/bin/bashif  [-f/root/test/14]||cp/root/test/14/home  then       echo......
  • 一步一步实现若依框架--2.3防止重复提交(后台) repeat_submit
    原理:常见的场景端页面多次点击提交按钮,通常见到的是前端通过点击一次后使按钮disable进行处理,后端同样也需要进行限制。若依使用了注解+拦截器的方式,这里其实也可以用......
  • PowerShell 中运行 maven 参数无法识别
    下面的命令在命令行中执行没有问题:mvncleaninstall-Dgpg.skip但,如果你默认启动是PowerShell的话,上面的命令将会提示错误为:  实际的原因是提供的参数没有被P......
  • 使用powershell脚本自动安装程序的几种方法
    经常会遇到需要重复安装程序时,可以用脚本自动安装,避免不停按鼠标这种重复劳动。在不修改原版安装程序,尽量使用Windows自带脚本工具情况下,对于不同的安装包,有几种方法1.安......
  • shell学习总结
    shell教程第一个shell脚本打开文本编辑器(可以使用vi/vim命令来创建文件),新建一个文件test.sh,扩展名为sh(sh代表shell)#!/bin/bashecho"HelloWorld!"(#!)是一个......
  • 记一次简单的诈骗网站Getshell-cnblog
    前言:在放假期间接到一个诈骗电话、然后说京东金条利率过高让我处理下(在疫情开放期间京东客服基本上是没有人工客服),然后就慢慢的被拉入钉钉会议,然后骗子给网站的时候发现域......
  • MIT 6.1810 Lab: Xv6 and Unix utilities
    lab网址:https://pdos.csail.mit.edu/6.828/2022/labs/util.htmlxv6Book:https://pdos.csail.mit.edu/6.828/2022/xv6/book-riscv-rev3.pdfBootxv6这部分主要完成系统的......