杂七杂八,Linux命令分类

linux的几个基本原则

  • 由单一的小程序组成
  • 一切皆文件
  • 尽量避免捕获用户接口(如执行命令时避免与用户交互)
  • 配置文件保存成纯文本格式(配置一个服务时,一个文本编辑器即可)

内核的基本功能

  • 进程管理
  • 内存管理
  • 文件系统
  • 驱动程序

linux里的命令

linux下的命令如果要运行的话必须依赖于shell命令解释器,而shell对于linux而言它又是在系统上运行的一个特殊的程序,它作为linux内核和用户交流的桥梁,接受用户输入的命令并进行解释再传递给内核执行。当用户登陆到linux系统时,会自动加载一个shell程序,也就是为用户提供了输入命令的环境。
而bash就是linux中默认的shell程序,文件位于/bin/bash。根据linux中的命令与shell程序的关系一般把linux下的命令分为两种,内部命令和外部命令。

内部命令

指已经被集成于shell解释器内的一些特殊的指令,也成为内键指令(built-in)。内部命令属于Shell的一部分,所以并没有单独对应的系统文件,只要Shell解释器被运行,内部指令也就自动载入内存了,用户可以直接使用。内部命令无需从硬盘中重新读取文件,因此执行效率更高。例如cd ,我们可以用type命令查看指令的类型。

[root@tonglele bin]# type cd
cd is a shell builtin

外部命令

指的是linux系统中能够完成特定功能的脚本文件或者二进制程序,每个外部指令都对应了系统中的一个相应的文件,linux必须知道外部命令对应的文件位置,才能够由shell加载并执行。

-
我们使用printenv命令可以显示当前环境变量的值,其中PATH一项存放了外部命令的目录,如/usr/local/bin,/usr/bin等。使用位于这些目录中的外部命令时,用户不需要指定具体的位置。

我们知道,执行内部指令的时候,由于命令被集成在shell解释器中,执行时会比较快,那么外部指令呢?要每次都去找么?当然不是了,这里就可以说一下缓存的概念,用过的命令就被存入缓存中,可以用hash命令查看,这样,根据hash去查找的话时间复杂度为O(1),也是比较高效的。

这里我们就可以看出缓存在linux中的重要性了,后面的学习中我们会经常接触。

感谢阅读,欢迎指正。

-------------本文结束感谢您的阅读-------------