美文网首页
Linux Shell 工作原理

Linux Shell 工作原理

作者: 人在码途 | 来源:发表于2017-02-12 21:50 被阅读262次

在CLUI(Command Line User Interface,与GUI对应)模式下,用户是通过shell与系统交互的。shell也是一个程序,它与其他程序最大的不同是:它的目的是执行其他程序,而不是从事计算,绘图,存储等等具体事务。分析一下shell的工作原理有助于破除shell的神秘感,更好的掌握shell命令。下图是shell的基本流程,现在流行的bash,csh,zsh等要比这复杂得多,考虑了很多细节。

img

上图展示了ls命令的执行过程,下面进行简单分析:

  • 1、shell不断询问是否有键盘输入,用户以enter结束键盘输入后,shell程序以空格为分隔符,得到"ls","-l","*.c",三个字符串。
  • 2、shell发现第三个字符串包含"*"通配符,就会在当前路径(或指定路径)下搜索满足这个通配符的文件。有bar.c和foo.c两个文件,然后展开成{"ls","-l","bar.c","foo.c"}四个字符串,并保存在argv这个二维字符数组中,并赋值argc为4。
  • 3、shell然后搜索PATH这个全局变量保存的路径,寻找一个叫"ls"的命令。如果存在,则fork()一个子进程,调用exec()加载运行ls命令。ls的main(int argc, string ** argv)函数的参数就是从shell那里得来的。若不存在就会提示用户"command not found"。
  • 4、ls程序执行后,会分析argc和argv,"-l"表示这是一个选项开关,表明用户想得到文件的详细信息,并把这个开关量保存,以便最后输出的时候选择信息的格式。
  • 5、ls执行完既定的步骤后,退出并返回退出码,若成功则返回0,否则根据错误的不同返回不同的非零数字。
  • 6、shell在得到成功退出码后,继续等待用户输入。

如此不断的循环。

转:http://blog.csdn.net/hjx5200/article/details/22487683

相关文章

  • Linux Shell 工作原理

    在CLUI(Command Line User Interface,与GUI对应)模式下,用户是通过shell与系...

  • Shell脚本基本语法和应用

    概念和原理 Shell是什么? Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。 Sh...

  • Linux环境变量与修改配色

    理解环境变量的原理,以后在Linux上安装软件才会畅行无阻。 环境变量 用于存储有关shell会话和工作环境的系统...

  • Shell入门笔记

    Shell脚本:Linux Shell脚本学习指南菜鸟教程 - Shell教程Linux入门 - Shell脚本是...

  • day28-2019年4月9日

    shell编程基础 1、为什么要学shell编程? linux系统中会大量得使用shell,工作中也需要...

  • [LN_06] Shell基础:Bash基本功能(别名|输出重定

    目录结构 一、Shell概述 1. Shell简介 & 工作原理 引入Shell:在系统终端输入的字符即ASCII...

  • shell基础

    Linux学习 一、shell介绍 Linux shell基础 什么是shell shell是一个命令解释器,提供...

  • shell脚本

    SHELL 1.1、为什么要学习shell编程? Linux中会大量的使用shell,工作中我们也需要自动化实...

  • Linux下的shell

    Shell 和 Linux shell程序是包含若干行shell或linux命令的文件。linux命令语句只能一行...

  • bash 特性总结

    使用bash能更好的完成linux工作 CentOS 默认shell为bash,echo $SHELL获得当前系统...

网友评论

      本文标题:Linux Shell 工作原理

      本文链接:https://www.haomeiwen.com/subject/ohxzittx.html