Linux 中的内部命令和外部命令

linux,内部,命令,外部命令 · 浏览次数 : 377

小编点评

**内部命令和外部命令作者:Grey原文地址:博客园:Linux 中的内部命令和外部命令CSDN:Linux 中的内部命令和外部命令什么是 bash shell ?bash shell,就是一个程序,就是 Linux 系统安装的一个软件,用户通过 SSH 输入用户名密码登录操作系统后,直接进入 bash shell 这个软件shell 命令分为外部命令和内置命令: **外部命令** 外部命令是从用户到操作系统之间传递的命令,由用户通过 SSH 输入来执行。外部命令通常由 shell 自带的命令或外部程序实现。 **内置命令** 内置命令是与 shell 本身相关的命令,它们与 shell 的执行过程密切相关。内置命令通常由 shell 自带的命令实现,但它们不是由用户输入的。 **bash shell** bash shell 是一个解释器,它解释用户输入的命令并执行相应的操作。bash shell 是 Linux 系统默认的 shell,它是用于各种命令行工具和应用程序的执行器。 **外部命令和内置命令的比较** | 外部命令 | 内置命令 | |---|---| | 从用户到操作系统之间传递 | 与 shell 本身相关的命令 | | 由用户输入 | 由 shell 自带的命令或外部程序实现 | | 与 shell 的执行过程密切相关 | 与 shell 本身相关的命令实现 | | 经常用于命令行工具和应用程序的执行 | 与 shell 本身相关的命令实现 |

正文

Linux 中的内部命令和外部命令

作者:Grey

原文地址:

博客园:Linux 中的内部命令和外部命令

CSDN:Linux 中的内部命令和外部命令

什么是 bash shell ?

bash shell,就是一个程序,就是 Linux 系统安装的一个软件,用户通过 SSH 输入用户名密码登录操作系统后,直接进入 bash shell 这个软件

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

比较 内置命令 外部命名
定义 Bash Shell 自带的命令 Linux 系统中的应用程序
执行效率
执行过程 调用当前 Shell 进程的一个函数 触发磁盘 I/O,fork 出一个单独的进程,执行完成后退出

内部命令( Shell 自带的命令)

例如:cd命令,使用

type cd

显示:

cd is a shell builtin

说明cd命令是 shell 自带的命令

通过

help -d

可以查看所有内部命令

image

外部命令(不是Shell自带的命令,由用户安装的)

比如 ifconfig 命令

type ifconfig

显示:ifconfig is /usr/sbin/ifconfig

可以使用 file 命令查看命令是一个什么类型的文件

file /usr/sbin/ifconfig

显示:

/usr/sbin/ifconfig: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=22d5b3be8d3ce3c71cad5b982581ede262397b56, stripped

使用 whereis 查看某个命令在哪个位置

whereis ifconfig

显示

ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

此外:

内部命令的帮助用 help 指令,外部命令的帮助用 man 指令。

更多

bash shell 在执行命令的时候,做了两步优化:

第一个优化,通过 PATH 来(echo $PATH) 搜索命令 。

第二个优化,通过 hash 来搜索命令,hash查看,hash -r(清空hash)

编写脚本时候, 如需要执行权限,要赋予该文件执行权限 chmod u+rx filename

如果 bash 执行,则不需要赋予执行权限。

# 不需要执行权限
bash ./filename.sh
# 要赋予执行权限
./filename.sh

注:以上两种执行方式都是新开一个进程,使用如下方式执行

source ./filename.sh
.filename.sh

不会产生新的子进程。

与Linux 中的内部命令和外部命令相似的内容:

Linux 中的内部命令和外部命令

Linux 中的内部命令和外部命令 作者:Grey 原文地址: 博客园:Linux 中的内部命令和外部命令 CSDN:Linux 中的内部命令和外部命令 什么是 bash shell ? bash shell,就是一个程序,就是 Linux 系统安装的一个软件,用户通过 SSH 输入用户名密码登录操

[转帖]Linux系统中的Page cache和Buffer cache

Free命令显示内存 首先,我们来了解下内存的使用情况: Mem:表示物理内存统计 total:表示物理内存总量(total = used + free) used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。 free:未被分配的内存。 sh

[转帖]17 种查看 Linux 物理内存的方法

17 种查看 Linux 物理内存的方法 https://linux.cn/article-10235-1.html 大多数系统管理员在遇到性能问题时会检查 CPU 和内存利用率。Linux 中有许多实用程序可以用于检查物理内存。这些命令有助于我们检查系统中存在的物理内存,还允许用户检查各种方面的内

[转帖]Linux中EOF和Expect命令详解

一、EOF说明 Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。可以把EOF替换成其他东西,意思是把内容当作标准输入传给程序。 回顾一下< <的用法。当shell看到< <的时候,它就会知道下一个词是一个分界符。在

[转帖]记录几个常用linux命令的使用方法——find、grep、file、which、whereis和压缩命令gzip、bzip2、tar

一、命令1: find、grep、file、which、whereis 1、find 目的:查找符合条件的文件 1)在哪些目录中查找 2)查找的内容 格式: find 目录名 选项 查找条件 举例: 1)find /work -name "test1.txt" 说明: /work 指明了查找的路径-

[转帖]gdb调试常见命令详细总结(附示例操作)

一、简介 通过gdb调试我们可以监控程序执行的每一个细节,包括变量的值、函数的调用过程、内存中数据、线程的调度等,从而发现隐藏的错误或者低效的代码,程序的调试过程主要有:单步执行,跳入函数,跳出函数,设置断点,设置观察点,查看变量。 本文将主要介绍linux下的gdb调试工具常用的命令和具体的使用实

journalctl 命令使用总结

转载请注明出处: journalctl 命令是 Linux 系统中一个用于查询和管理系统日志的命令行工具,它基于 systemd 的日志守护进程 systemd-journald 的功能。 1. 介绍 journalctl 命令可以帮助用户查找、过滤和分析系统日志。这些日志信息包括内核消息、系统服务

[转帖]《Linux性能优化实战》笔记(一)—— 平均负载

最近在看极客时间的《Linux性能优化实战》课程,记录下学习内容。 一、 平均负载(Load Average) 1. 概念 我们都知道uptime命令的最后三列分别是过去 1 分钟、5 分钟、15 分钟系统的平均负载,到底平均负载是什么? 简单来说,平均负载是指单位时间内,系统处于可运行状态和不可中

Python:对程序做性能分析及计时统计

如果只是想简单地对整个程序做计算统计,通常使用UNIX下的time命令就足够了。由于我用的是Mac系统,和Linux系统的输出可能有不同,不过关键都是这三个时间:user: 运行用户态代码所花费的时间,也即CPU实际用于执行该进程的时间,其他进程和进程阻塞的时间不计入此数字;system: 在内核中执行系统调用(如I/O调用)所花费的CPU时间。total(Linux下应该是real):即挂钟时间

[转帖]linux【监控】BCC – 用于Linux性能监视,网络和更多的动态跟踪工具

https://blog.51cto.com/ghostwritten/5344917 文章目录​ ​1. ubuntu安装bcc​​​ ​2. centos安装bcc​​​ ​3. cachestat 缓存统计​​​ ​4. cachetop 缓存命中​​​ ​5. filtop 跟踪内核中文件的