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

可以查看所有内部命令

外部命令(不是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

不会产生新的子进程。

最新文章

  1. 几个有趣的WEB设备API 前端提高B格必备(一)——电池状态&震动api
  2. 女生的最爱,装饰品。WPF也有,Adorner。(上海晒衣服理念)
  3. RDS MySQL 空间问题的原因和解决
  4. Learn ZYNQ(10) – zybo cluster word count
  5. Debian8.3.0下安装Odoo8.0步骤
  6. Java API 实现HBase的数据添加与过滤查询
  7. Codeforces Round #129 (Div. 2)
  8. java Spring集合
  9. Scrum教练不应兼任product owner
  10. String,StringBuffer与StringBuilder的差别??
  11. 当今最流行的Node.js应用开发框架简介
  12. IDL和生成代码分析
  13. MySQL5.6多实例部署
  14. 第16次CCF CSP认证-第5题-317 号子任务(subtask317)-图论最短路径
  15. AVIER Racing Drone App Privacy Policy
  16. 让linux启动更快的方法
  17. 从虚拟机指令执行的角度分析JAVA中多态的实现原理
  18. 在 Python 中使用 JSON
  19. [转]centos安装autossh
  20. 记一次升级Tomcat

热门文章

  1. 使用Steamwork.Net 接入Steam一点心得
  2. 华南理工大学 Python第5章课后小测-2
  3. 好书推荐之Mysql三剑客 :《高性能Mysql》、《Mysql技术内幕》、《数据库索引设计与优化》
  4. Python数据科学手册-机器学习: 流形学习
  5. (一)JPA的快速入门
  6. java项目中VO、DTO以及Entity,各自是在什么情况下应用的
  7. 存储类StorageClass
  8. DeepHyperX代码理解-HamidaEtAl
  9. .Net WebApi 中的 FromBody FromForm FromQuery FromHeader FromRoute
  10. .Net CLR异常简析