一般的计算机接口

  • GUI(graphic User Interface) gnome KDE XFACE Windows的图形界面叫X-Window(x是图形显示协议而且是c~s架构)
  • CLI(Command Line Interface)

计算机的构成

硬件,内核,库,shell

widows中的.dll文件,是Dynamic Link Library在Linux中是.os或者.dos(shared object,d就是dynamic)

shell通过系统调用操作内核,应用程序通过shell 在unix上运行。

一个命令的执行过程

命令分为内置命令和外部命令 我们不能直接操作内核,而是用shell通过系统调用和内核进行交互。当你敲入命令是,如果命令不是一个函数,那么在内建命令列表中检查。shell内建命令是指bash(或其它版本)工具集中的命令。一般都会有一个与之同名的系统命令,比如bash中的echo命令与/bin/echo是两个不同的命令,尽管他们行为大体相仿。当在bash中键入一个命令时系统会先看他是否是一个内建命令,如果不是才会查看是否是系统命令或第三方工具。所以在bash中键入echo命令实际上执行bash工具集中的bash命令也就是内建命令,而不是/bin/echo这个系统命令。备注: Linux中的type命令如果命令既不是函数也不是内建命令,那么扫描列在 PATH 中的目录列表来进行查找。 Bash使用一个 hashtable ( 内存中的数据存放区域) 来记忆可执行文件的完整路径,这样能防止对 PATH 的扩展搜索。如果搜索没有成功, Bash打印一条错误消息并返回退出状态127。如果搜索成功或者命令包含一个斜杠, shell在一个单独执行环境中执行这个命令。如果因为文件是不可执行的或者不是一个目录造成执行失败,就假设是一个shell脚本。如果命令是异步开始的, shell会等待命令完成并收集它的退出状态。

ls命令的一些冷门参数

-A   除了.和..的所有文件
-h   以人类方便的方式显示,也就是将文件大小转换成方便查看的 
-r   用abcd相反的顺序显示文件
printenv  这里还有一个显示环境变量

bash缓存

Bash有缓存,hash列表是一个键值对数据库,在你是用命令的时候,他会有一个缓存列表,hit代表你命中的次数。