《计算机教育中缺失的一课》笔记
课程在线地址:计算机教育中缺失的一课
笔记
- Shell是程序的文字接口
- Linux和macOS上使用
/
分割目录,Windows上使用 \ /
是绝对路径,其他的都是相对路径- Windows上每个盘都有一个根目录(例如: C:\ )
- 相对路径是指相对于当前目录的路径
- 当前工作目录可以使用
pwd
命令来获取 - 切换目录使用
cd
命令 - 在路径中
.
表示当前目录,..
表示上级目录 - 如果没有指定路径,程序一般会在当前目录执行
- man这个程序,它接受一个程序名作为参数,然后将它的文档(用户手册)展现给您
- shell中,程序有两个主要的“流”,输入流和输出流
- 我们可以重定向输入和输出流,最简单的重定向
< file
和> file
,这两个命令可以将程序的输入输出流分别重定向到文件。还可以向用>>
来象一个文件追加内容 - 使用管道(pipes),我们能够更好的利用文件重定向。
|
操作符允许我们将一个程序的输出和另一个程序的输入连接起来 |
、>
和<
是通过shell执行的,echo
等程序并不知道|
的存在,它们只知道从自己的输入输出流中进行读写- 对于大多数的类Unix系统,有一类用户是非常特殊的,那就是:跟用户(root user)
sudo
命令,顾名思义,他的作用是让您可以以su(super user或root的简写)的身份执行一些操作- shell脚本是一种更加复杂的工具
- shell脚本针对shell所从事的相关工作来进行优化,因此,创建命令流程(pipelines)、将结果保存到文件、从标准输入中读取输入,这些都是shell脚本中的原生操作,这让它比通用的脚本语言更易用。
- 在bash中变量赋值的语法
foo=bar
- 访问变量中存储的数值的语法为
$foo
foo = bar
(使用空格隔开)是不能正确工作的,解释器会调用程序foo
并将=
和bar
作为参数'
定义的字符串为原义字符串,其中的变量不会被转义;"
定义的字符串会将变量值进行替换- bash函数例子:
mcd () { mkdir -p "$1" cd "$1" }
history | grep find
会打印包含find字串的命令- 使用Ctrl+R对历史命令记录进行回溯搜索
- 命令的开头加上一个空格,它就不会被加进shell记录中
- 可以通过编辑
.bash_history
或.zhistory
来手动从历史记录中移除记录项