为什么要有shell
shell 是同date或who一样的普通程序, 尽管它可以处理一些有特色的事务。 它有三个主要优点:
- 文件名简写:可以通过指令文件名的模式来选取一套文件名作为程序的变量——shell会找出匹配该模式的文件名。
- 输入输出重定向:可以把任何程序的输出送到文件中而不是终端上, 并当作来自文件的而不是终端的输入。 输入和输出甚至可以连接到其他程序上。
- 环境个性化:可以定义自己的命令和同义词。
ls *
*
不是ls
命令的特性,而是shell
的一项服务
查询路径
当键入命令名时,shell通常首先查询当前目录, 而后是/bin
, 再是/usr/bin
。
文件
即字节序列(一个字节即一小块信息,长度一般为8位。一个字节就等于一个字符)。 系统并没有给文件强加任何结构, 也没有给它的内容附加任何意义,这些字节的意义仅依赖千解释文件的程序。
没有文件格式
没有文件格式总体上来说是个优点程序可以不需考虑文件的类型, 而且所有标准程序可以对任何文件进行处理。
od、 WE、 cp、 cmp、 file
和其他一些命令处理文件时并不考虑它们的内容。
当前目录是进程
当前目录是进程,而不是程序的属性 ——用户有登录目录,进程有当前目录。如果进程创建 一个子进程,则子进程继承其父进程的当前目录。但如果子进程改变到一个新的路径下,父进程不受影响一一不论子进程做了什么父进程的当前路径都保持不变。
.
(点)是引用目录自身的目录入口,它允许在不知道全名的情况下访问目录rm
命令并不真正删除I
(文件的系统内部名称即它的I
节点号,I
节点保存文件信息的号码)节点,它删除目录入口或链。只有当链接到文件的最后链消失以后, 系统才删除I
节点, 也就是文件本身。- 一个文件有几项内容:名称、 内容和管理信息如权限和修改时间 。 管理信息存放在
I
节点中,同时存放的还有一些基本的系统数据如文件的长度、 文件内容存放在磁盘上的位置等等。在I
节点中有三个时间: 文件内容最后一次修改(写) 的时间;文件最后一次使用(读或执行)的时间; 以及I
节点自身最后一次改变的时间