美文网首页
shell命令分为内部命令和外部命令

shell命令分为内部命令和外部命令

作者: 技术是神奇的 | 来源:发表于2020-06-20 13:23 被阅读0次

Shell命令分类

Shell命令分为两种:

1)自带的命令称为内置命令。内部命令本质是一个自带的函数,当shell启动后,所有的内部命令会被加载进入内存,所以内部命令最快。

2)外部命令。外部命令本质也是一个函数,运行外部命令要开启一个新的进程,所以效率上比内置命令差很多。

用户输入一个命令后,Shell 先在内部命令中查找,如果有就执行;如果没有就在外部命令中查找,如果有就执行;都没有的话就报错,告诉用户该命令不存在。

常见的内部命令:echo、kill、cd、ls等

外部命令根据一个叫做 PATH 的环境变量去查找。该环境变量保存了 Shell 对外部命令的查找路径,如果在这些路径下找不到同名的命令,Shell 也不会再去其它路径下查找了,直接报错了。

使用echo命令可以查看当前PATH保存了哪些命令(MAC OS系统)

查看PATH

注:

1)不同路径以冒号(:)分隔,shell只会在上面这几个路径下查找外部命令

2)echo 命令用来输出一个字符串

定制化自己的shell命令

其实也可以自己编写程序,编译完成后放在以上任意一个路径下,就实现了自己定制化的shell程序

如实现自动求和的shell命令:getSum

#include <stdio.h>

#include <unistd.h>

#include <getopt.h>

#include <stdlib.h>

int main(int argc, char *argv[]){

    int start = 0;

    int end = 0;

    int sum = 0;

    int opt;

    char *optstring = ":s:e:";

    while((opt = getopt(argc, argv, optstring))!= -1){

        switch(opt){

            case 's': start = atoi(optarg); break;

            case 'e': end = atoi(optarg); break;

            case ':': puts("Missing parameter"); exit(1);

        }

    }

    if(start<0 || end<=start){

        puts("Parameter error"); exit(2);

    }

    for(int i=start; i<=end; i++){

        sum+=i;

    }

    printf("%d\n", sum);

    return 0;

}

将这段代码编译成名为 getSum 的应用程序,并放在/usr/local/bin目录下,然后在 Shell 中输入下面的命令,就可以计算 1+2+3 ...... +99+100 的值。

利用getSum计算

注:

1) -s 代表 开始 的标志,-e代表 结束 的标志

2)有了getopt.h 头文件中的 getopt() 该函数我们就不用自己去解析参数了

shell个性化地配置

对于普通用户来说,不管是否登录shell都会加载~/.bashrc 文件。

我们可以将自己的一些代码添加到 ~/.bashrc,这样每次启动 Shell 都可以个性化地配置。

具体配置方法这里不做介绍了。

尽管很渺小,但终究会伟大!

相关文章

  • linux 内部命令和外部命令

    前言 Linux中的命令大致分为两类:内部命令和外部命令内部命令也称shell内嵌命令,外部命令存放在一个文件中,...

  • Linux 系统上命令的使用格式

    <1> 命令的使用格式1 、命令分为内部命令和外部命令:内建命令:由 shell 自带的,而且通过某命令形式提供;...

  • 9、常用命令使用

    linux命令类型一般分为两种:内置命令和外部命令 1. 内置命令:在shell中内部建立的命令...

  • Linux命令笔记一:Linux命令(一)

    一、Linux目录树 二、Linux命令 Linux分为内部命令和外部命令 内部命令用help去查看,外部命令可以...

  • Linux相关使用介绍

    一、Linux内外部命令的判断方式以及命令的执行流程 1、Linux命令 Linux命令分为内部命令(shell自...

  • shell 命令

    Linux shell执行命令有三种: 内建命令, shell函数和外部命令 内部命令: shell程序本身包含的...

  • shell命令分为内部命令和外部命令

    Shell命令分类 Shell命令分为两种: 1)自带的命令称为内置命令。内部命令本质是一个自带的函数,当shel...

  • 如何在linux系统上获取命令的帮助信息 并描述man文档的章节

    命令可分内部命令和外部命令 内部命令帮助可用:# help COMMAND 外部命令帮助可用: (1) #COMM...

  • Linux 入门与帮助

    一、命令别名 1. 命令别名、内部命令、外部命令 (1) 优先级 命令别名 > 内部命令 > 外部命令 二、日期和...

  • 获取帮助

    1、help(可以查看系统有哪些内部命令) 内部命令(内建命令):是shell自带的外部命令:由某个软件包安装的命...

网友评论

      本文标题:shell命令分为内部命令和外部命令

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