在 Linux 系统中“一切皆文件”,Linux 命令也不例外。那么,当编辑完成 Linux 命令并回车后,系统底层是怎么执行的?
1) 内核层
内核层是 UNIX/Linux 系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。
2) Shell层
Shell 层是与用户直接交互的界面。用户可以在提示符下输入命令行,由 Shell 解释执行并输出相应结果或者有关信息,所以我们也把 Shell 称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。
3) 应用层
应用层提供基于 X Window 协议的图形环境。X Window 协议定义了一个系统所必须具备的功能(就如同 TCP/IP 是一个协议,定义软件所应具备的功能),可系统能满足此协议及符合 X 协会其他的规范,便可称为 X Window。
一、Linux 命令的执行过程Linux 命令的执行过程可分为 3 个步骤。
1、 用户输入命令
1) 判断路径
判断用户是否以绝对路径或相对路径的方式输入命令(如 /bin/ls),如果是的话直接执行。
[root@centos7 ~]# ls /root
abc anaconda-ks.cfg test2
[root@centos7 ~]# /bin/ls /root
abc anaconda-ks.cfg test2
2) 检查别名
Linux 系统会检查用户输入的命令是否为“别名命令”。
alias 命令:通过 alias 命令是可以给现有命令自定义别名的,即用一个自定义的命令名称来替换原本的命令名称。也可查看命令的别名。
[root@centos7 ~]# alias ls
alias ls='ls --color=auto'
[root@centos7 ~]# alias rm
alias rm='rm -i'
2、Linux命令行解释器
Linux命令行解释器(又称为 Shell)会判断用户输入的命令是内部命令还是外部命令。Shell 会把命令解析成二进制格式,二进制命令进入系统内核,在内核中调用相关功能。其中,内部命令指的是解释器内部的命令,会被直接执行;而用户通常输入的命令都是外部命令,这些命令交给步骤3继续处理。
type 命令:可以判断一个命令属于内部命令还是外部命令
[root@centos7 ~]# type pwd
pwd is a shell builtin
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?