【missing-semester】The shell

文章目录

    • shell 是什么
    • shell 怎么用
      • 执行基本程序
    • Shell中的路径
    • 重定向输入输出
    • 管道pipe
    • root用户的使用
    • 课后练习
    • 参考资料

我的操作环境:Windows11下的WSL2(Ubuntu20.04),之后的所有操作都是基于这个前提的

shell 是什么

命令行操作语言,文本界面:The Shell
功能:以半结构化的方式运行程序(重定向输入、输出)
Bourne Again Shell,即bash

shell 怎么用

windows+rcmd,打开终端,wsl进入Linux子系统
image.png
当前用户(dy)在名为"DESKTOP-K1E7FOE"的计算机上,位于"~/classes/missing-semester"目录下
~指home目录,$表示当前用户不是root,root用户的提示符是#

执行基本程序

date:打印当前日期时间
echo:打印输入
image.png
注意
shell是通过空格来分割解析命令,将分割结果中第一个单词作为待运行的程序,将后续单词作为程序参数
如果提供的参数里包含空格或其他特殊字符,需要使用''""引用该参数,或者使用\将空格或特殊字符进行转义
image.png
说明:这里shell就将"Hello World"作为mkdir的两个参数,于是新建了两个文件夹
shell的环境变量
$PATH即shell接收命令后应该搜索程序的目录
which 程序名打印出给定程序名执行的文件
image.png

Shell中的路径

/表示文件系统中的根目录,以/开头的路径是绝对路径,其他的为相对路径
pwd:打印当前路径
cd:切换路径
.:表示当前目录
..:父级目录
image.png
image.png
ls:展示目录内容,默认展示当前目录
--help:当前命令的使用说明
image.png
image.png
ls-l打印结果说明:
第一个d说明当前行展示的为一目录
紧接着的三个字母组每个组由三个字母组成(rwx),分别指文件所有者,所属组(用户)和其他人对当前文件拥有的权限
-表示没有指定权限
w:写权限,修改该文件夹,添加或者删除其中的文件
x:执行权限,针对文件可执行,针对文件夹即是搜索。举个例子,当一个用户想要进入一个文件夹时,他必须拥有该文件夹及其父文件夹上的x搜索权限
r:读权限,针对文件夹即是使用ls命令等展示文件夹内容

mv:修改文件名/移动文件
image.png

cp:复制文件
image.png

mkdir:新建一个文件夹
image.png

man 程序名:查询程序的使用手册

重定向输入输出

shell中每个程序都有一个input stream和一个output stream,默认情况下input和output均为terminal,即从键盘获得input,在屏幕上打印output
使用重定向运算符
> file:将output重定向到file,>>表示追加内容
< file:将input重定向到file
image.png
cat:连结文件,接收文件名为参数,将文件内容打印到其output stream

管道pipe

|
pipe的亮点:使用一个程序链,将shell中一个program的output作为另一个program的input
image.png

说明:
第一个命令将根目录下ls -l的最后一行打印出来了
第二个命令将hitwh.edu.cnresponse的content-length字段内容打印出来了

root用户的使用

sudo su:输入密码切换为root用户进行操作
在这一部分的讲解中,the teacher使用root用户修改挂载在/sys下系统文件修改如屏幕亮度的硬件内核参数。但由于Windows子系统的Linux不提供此功能,这里将不进行操作演示
image.png
说明:这条命令不能执行的原因在于程序连接是由shell来做的,而非某个程序。这条命令在shell看来是将sudo echo 3的output写到brightness中,但在写入之前shell需要打开brightness文件,打开文件时,shell的权限是当前的user不是root因而无法打开
image.png
说明:tee:读取input显示在终端和写入指定的文件中,这里即是将echo的output打印在屏幕上并输出到brightness文件中

课后练习

  1. 查看当前使用的shell
    image.png
  2. /tmp文件夹下创建一个名为missing的新文件夹
    image.png
  3. 查看touch命令的使用
    image.png
  4. 使用 touchmissing文件夹下创建一个名为semeter的新文件
    image.png
  5. 将下面的内容写入该文件,一次写一行
#!/bin/sh
curl --head --silent https://missing.csail.mit.edu

image.png
不知道用cat怎么处理第一行,直接vim
ps:自己开始的时候用错了命令,cat是将指定文件内容输出,echo才能将指定内容输出
正确的姿势:
image.png
说明
bash中的单引号(‘’)和双引号(“”)是不同的

单引号('):在单引号内的内容会被当作纯文本处理,不会对其中的变量、命令等进行解析
双引号("):在双引号内的内容会被当作命令或变量来解析、

举个例子:
image.png

  1. 输入semester脚本路径以执行该文件
    image.png
    通过ls -l查询发现其没有x权限
  2. 使用sh解释器执行该semester文件
    image.png
  3. 使用man查看chmod命令的使用
    image.png
  4. 使用chmod命令修改semester文件的模式位使得能够用./semester来执行
    这里采用的方案是chmod += rx semester即给所有用户添加读r和执行x的权限
    另外还可以使用 chmod 555 semester达到同样的效果

在Linux系统中,文件或目录的权限通常以三位八进制数表示,每一位数字分别代表所有者、所属组和其他用户的权限

image.png

Shebang: #!这个符号标识了当前文件应该用什么解释器执行,比如这里的Shebang标识#!bin/sh,则shell知道应该去找到sh执行此脚本,并将此脚本作为sh程序的input,而此Shebang行会被interpreter忽略,因为#表示注释

  1. 使用 |> ,将 semester 文件输出的最后更改日期信息,写入主目录下的 last-modified.txt 的文件中
    我的失败操作
    image.png
    别人的正确解法
    image.png
  2. 写一段命令来从 /sys 中获取笔记本的电量信息
    image.png

参考资料

  1. MIT-Missing-Semester chapter1讲义
  2. MIT-Missing-Semester chapter1学习视频
  3. Shebang
  4. MIT-Missing-Semester chapter1 exercise solution

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/148660.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pycharm安装库失败

项目场景 pycharm安装第三方库 问题描述 python 安装第三方库总是安装失败 原因分析&#xff1a; 提示&#xff1a;这里填写问题的分析&#xff1a; 1.网络 2.网墙 解决方案&#xff1a; 加个镜像 –trusted-host mirrors.aliyun.com

【EI会议征稿】第四届信息化经济发展与管理国际学术会议(IEDM 2024)

第四届信息化经济发展与管理国际学术会议&#xff08;IEDM 2024&#xff09; 2024 4th International Conference on Informatization Economic Development and Management 第四届信息化经济发展与管理国际学术会议&#xff08;IEDM 2024&#xff09;将于2024年2月23-25日在…

C++ opencv基本用法【学习笔记(九)】

这篇博客为修改过后的转载&#xff0c;因为没有转载链接&#xff0c;所以选了原创 文章目录 一、vs code 结合Cmake debug1.1 配置tasks.json1.2 配置launch.json 二、图片、视频、摄像头读取显示2.1 读取图片并显示2.2 读取视频文件并显示2.3 读取摄像头并写入文件 三、图片基…

现货黄金职业交易员怎么使用技术分析?

职业的交易员每天要处理很多不同的信息&#xff0c;其中只一部分是涉及技术指标。在这一部分处理技术分析的时间里&#xff0c;只能再分出少之又少的时间给技术指标。那职业交易员会利用做技术指标做什么呢&#xff1f;下面我们就来讨论一下。 识别行情。技术指标的主要作用就是…

TikTok女性创作者:媒体世界的新领袖

在数字时代&#xff0c;社交媒体已成为媒体和娱乐产业的关键组成部分&#xff0c;而TikTok作为最受欢迎的短视频分享平台之一&#xff0c;为女性创作者提供了一个独特的机会来在媒体世界中崭露头角。 这个平台不仅为女性创作者提供了一个创作和分享自己的声音、观点和创意的空…

(三)什么是Vite——Vite 主体流程(运行npm run dev后发生了什么?)

什么是vite系列目录: &#xff08;一&#xff09;什么是Vite——vite介绍与使用-CSDN博客 &#xff08;二&#xff09;什么是Vite——Vite 和 Webpack 区别&#xff08;冷启动&#xff09;-CSDN博客 &#xff08;三&#xff09;什么是Vite——Vite 主体流程(运行npm run dev…

江西产业链现代化1269行动计划引领新能源建设与职业教育教学改革的深度融合

江西产业链现代化1269行动计划引领新能源建设与职业教育教学改革的深度融合 在全球能源转型的时代背景下&#xff0c;江西省积极应对挑战&#xff0c;提出了产业链现代化1269行动计划。这一计划不仅着眼于推动新能源建设&#xff0c;还将新能源建设与职业教育教学改革紧密结合…

Axure9 基本操作(二)

1. 文本框、文本域 文本框&#xff1a;快速实现提示文字与不同类型文字显示的效果。 2. 下拉列表、列表框 下拉列表&#xff1a;快速实现下拉框及默认显示项的效果。 3. 复选框、单选按钮 4.

零成本体验美国云服务器,更方便的体验和选择

在当今数字化时代&#xff0c;云计算已经成为了企业和个人的首选。而美国云服务器免费试用&#xff0c;则为广大用户提供了一个零风险尝试的机会。作为一种高效、灵活、稳定的解决方案&#xff0c;美国云服务器可以为您的业务保驾护航。 什么是美国云服务器&#xff1f; 美国云…

掌握AI图像篡改检测工具,轻松识别图片造假

文章目录 一、前言1.1 背景与危害1.2会议探讨1.3 技术先行 二、亮点技术1&#xff1a;AI图像篡改检测技术2.1 传统方法Python实现步骤2.2 合合信息——PS纂改检测体验 三、亮点技术2&#xff1a;生成式图像鉴别3.1 生成式图像安全问题3.2 传统方法Python实现步骤3.2 合合信息—…

《Linux从练气到飞升》No.27 Linux中的线程互斥

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…

小DEMO:在vue中自定义range组件

1、组件样式 2、使用 import cSlider from /components/c-slider/c-slider.vue<div class"range"><cSlider v-model"cScale" change"cScaleChange" :min"1" :max"10"/> </div> 3、组件代码 <templa…

5+单基因+免疫浸润,这篇肿瘤预后文章你值得拥有

今天给同学们分享一篇生信文章“Systematic analysis of the role of SLC52A2 in multiple human cancers”&#xff0c;这篇文章发表在Cancer Cell Int期刊上&#xff0c;影响因子为5.8。 结果解读&#xff1a; 多种人类癌症中SLC52A2的mRNA表达 首先&#xff0c;作者使用GT…

virtualbox基本配置

全屏模式调出热键 右边的 ctrl home 键 安装增强功能 注意&#xff1a;virtualbox 自带那个安装增强功能点击后是没有效果的 1、启动虚拟机 2、设备 3、分配虚拟光驱 4、选择虚拟盘 5、选择对应iso文件&#xff0c;文件下载路径 6、双击对应文件安装&#xff0c;默认配置…

多区域OSPF配置

配置命令步骤&#xff1a; 1.使用router ospf 进程ID编号 启用OSPF路由 2.使用network 直连网络地址 反掩码 area 区域号 将其归于对应区域 注意&#xff1a; 1.进程ID编号可任意&#xff08;1-65535&#xff09; 2.反掩码用4个255相减得到 3.area 0 为主干区域 4.连接不…

虚拟机第一次如何打开

1、将别人的虚拟机拷贝到自己的电脑盘里&#xff1b; 2、打开VMware&#xff0c;选择“打开虚拟机”&#xff1b; 3、选择拷贝的虚拟机里的.vmx文件&#xff1b; 4、选择“播放虚拟机”&#xff1b; 5、如果出现一个选择框&#xff0c;选“我已复制改虚拟机”即可。

Python 中的 tqdm() 方法

tqdm&#xff08;阿拉伯语"taqaddum"的缩写&#xff0c;意为"进展"&#xff09;是Python中一个用于在循环中显示进度条的库。它提供了一种简单而又灵活的方式来监测代码执行的进度&#xff0c;特别是在处理大量数据或耗时较长的任务时非常有用。 1、安装 …

golang 解析oracle 数据文件头

package mainimport ("encoding/binary""fmt""io""os" ) // Powered by 黄林杰 15658655447 // Usered for parser oracle datafile header block 1 .... // oracle 数据文件头块解析 // KCBlockStruct represents the structure of t…

什么是美颜SDK?美颜SDK对比评测

美颜SDK在视频直播中发挥着越来越重要的作用。为了实现实时、高质量的美颜效果&#xff0c;各种视频直播美颜SDK应运而生。本文将对这些技术进行深入解析与比较。 一、技术原理解析 深度学习技术通过大量的训练数据学习人脸特征&#xff0c;从而实现更为自然的美颜效果。传统…

干货分享:如何提高商城系统网页访问速度?

如今&#xff0c;商城系统网页的访问速度对于用户体验和销售业绩至关重要。用户对于网页的加载速度要求越来越高&#xff0c;一旦加载速度过慢&#xff0c;用户可能会选择离开&#xff0c;甚至转向竞争对手的网站。因此&#xff0c;提高商城系统网页的打开速度是每个电商运营者…