IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux命令执行流程详解(图解) -> 正文阅读

[系统运维]Linux命令执行流程详解(图解)

当我们执行一条命令ip add的时候

流程图

当我们执行命令,mkdir -p hunau/yutao

一、判断路径
判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/mkdir),如果是的话,直接执行。
二、检查别名
Linux 系统会检查用户输入的命令是否为“别名命令”。因为通过 alias 命令是可以给现有命令自定义别名的,即用一个自定义的命令名称来替换原本的命令名称。比如常用命令ll
在这里插入图片描述

三、判断用户输入的是内部命令还是外部命令

  • 内部命令实际上是shell程序的一部分,简单快速系统bash内置源码
    比如:exit,history,cd,echo等。
  • 外部命令是linux系统中的实用程序部分,外部命令的实体并不包含在shell中,但是其命令执行过程是由shell程序控制的。外部命令是在bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等。可通过“echo $PATH”命令查看外部命令的存储路径,比如:ls、vim等。
  • type命令可以分辨内部命令与外部命令
    在这里插入图片描述
    内部命令直接执行,外部命令检测是否存在缓存,mkdir属于外部命令(执行过的外面命令都会保存在内部缓存中,当再次执行相同的命令,会通过缓存调取执行,也就意味着不会搜索PATH路径)

四、查找外部命令对应的可执行文件
当用户执行的是外部命令时,系统会在指定的多个路径中查找mkdir的可执行文件,而定义这些路径的变量,就称为 PATH 环境变量,其作用就是告诉 Shell 待执行命令的可执行文件可能存放的位置,Shell 会在 PATH 变量包含的多个路径中逐个查找,直到找到为止(如果找不到,Shell 会提供用户“找不到此命令”)。
五、启动命令
找到mkdir命令,linux内核分配内存空间,启动mkdir命令的进程,返回结果给shell解释器
六、返回结果
shell解释器创建/hunau/yutao返回用户

总结:当我们执行一个mkdir命令之后,整个命令执行的流程步骤如下:

  1. 检查执行的是否是绝对路径执行
  2. 检查mkdir命令是否存在别名
  3. 检查mkdir命令是内部命令还是外部命令
  4. 如果是内部命令直接执行
  5. 如果是外部命令,检查mkdir命令是否有缓存,如果没有,shell解释器查找PATH变量
  6. 检查PATH路径直到查找到该命令然后执行
  7. 如果没有找到该命令则返回错误,command not found
  8. 执行mkdir命令,返回结果给shell解释器
  9. shell解释器返回结果给用户
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-01-16 13:31:42  更:2022-01-16 13:31:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:53:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码