系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本系列文章是关于MIT课程: The Missing Semester of Your CS Education。本系列文章主要内容:
shell
shell 工具
编辑器 (vim)
数据整理(data wrangling)
命令行环境(command line)
版本控制 (git)
调试与配置(debugging-profiling)
元编程(metaprogramming)
安全(security)
其他
本文主要内容为shell
。
一、shell 是什么?
shell
是计算机上的文本接口,几乎所有平台都支持某种形式的shell。虽然它们之间的细节有所差异,但是核心功能相同:允许操作者执行程序,输入并获取某种半结构化的输出。
本节课我们会使用 Bourne Again Shell
, 简称 bash
。 这是被最广泛使用的一种 shell,它的语法和其他的 shell 都是类似的。
二、使用 shell
1.命令解析
$
符号表示当前用户不是 root 用户(稍后会介绍)。在这个提示符中,用户可以输入命令 ,命令最终会被 shell 解析。
shell
基于空格分割命令并进行解析,然后执行第一个单词代表的程序,并将后续的单词作为程序可以访问的参数。
若希望传递的参数中包含空格,则有两种方式:
- 单引号或者双引号包裹参数;
- 在空格前使用转义符
\
。
2.echo
命令
当执行 echo
命令时,shell 了解到需要执行 echo 这个程序,随后它便会在 $PATH
中搜索由 :
所分割的一系列目录,基于名字搜索该程序,当找到该程序时便执行。
确定某个程序名代表的是哪个具体的程序,可以使用 which 程序。
也可以绕过 $PATH,通过直接指定需要执行的程序的路径来执行该程序
missing:~$ echo $PATH
/usr/local/sbin:/usr/local/bin: