写点什么

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

作者:秋名山码民
  • 2022 年 7 月 18 日
  • 本文字数:1125 字

    阅读完需:约 4 分钟

linux 中的命令大致可分为两类,内部命令和外部命令

内部命令:也称 shell 内嵌命令;

外部命令:存放在一个文件中,使用时需要去文件中查找,这些文件被定义在 $PATH

[root@centos7 ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

type 命令可以查看命令类型,以区别是内部命令还是外部命令

[root@centos7 ~]# type cd

cd is a shell builtin

[root@centos7 ~]# type ls

ls is aliased to `ls --color=auto'

[root@centos7 ~]# type ifconfig

ifconfig is /usr/sbin/ifconfig

可以看到,cd 为 shell 内嵌命令,ls 命令为 ls --color=auto 的别名,ifconfig 命令为外部命令在文件/usr/sbin/ifconfig 中。

内部命令与外部命令查看帮助的区别

内部命令:

使用 help COMMAND

[root@centos7 ~]# help cd

cd: cd [-L|[-P [-e]]] [dir]

Change the shell working directory.

......

也可使用 man 命令查看 bash 帮助文档

enable 命令可以禁用内部命令;

enable -n 内部命令: 禁用内部命令(重启失效)

:enable -n cd

enable 内部命令:解除禁用

:enable cd

外部命令:

外部命令查看帮助的方法相对与内部命令还是比较多的

① command --help 或 command -h

命令的不同存在一些实用长选项 --help 或短选项 -h 的区别

例:[root@centos7 ~]# ifconfig --help

Usage:

ifconfig [-a] [-v] [-s] [[]

]

[add

[/]]

......

②使用 man 手册查看帮助, man command

例:[root@centos7 ~]# man ifconfig

IFCONFIG(8) Linux System Administrator's Manual IFCONFIG(8)

NAME

ifconfig - configure a network interface

......

③使用 info 命令查看信息页

例:[root@centos7 ~]# info ifconfig

File: *manpages*, Node: ifconfig, Up: (dir)

IFCONFIG(8) Linux System Administrator's Manual IFCONFIG(8)

NAME

ifconfig - configure a network interface

......

④使用程序自身的帮助文档

在一些程序下有些 README INSTALL ChangeLog 文件,可以查看文件内容帮助使用。

⑤程序的官方文档或发行版的官方文档

使用过外部命令会暂存在内存中,可以使用 hash 命令查看内存中的外部命令

hash 命令:查看内存中执行的外部命令,

hash: hash [-lr] [-p pathname] [-dt] [name ...]

Remember or display program locations.

选项:

-r :清除内存中的命令

-d command :删除内存中的 command 命令

有时我们会经常使用一些很长的命令,为了便于使用我们可以使用别名的方法来重新命名命令,创建别名可以使用 alias 命令;直接执行 alias 命令可以查看当前文件系统的别名列表,

命令别名 alias name command

如:alias cp='cp -i'

上文已经看到 ls 命令就是一个别名;

命令也存在同名的情况所以在执行命令也存在优先级

别名>内部命令>内存中的外部命令>外部命令

如果要使用优先级较低的命令可以使用完整路径或\COMMAND 的方式来实现。

用户头像

卷不死,就往…… 2021.10.19 加入

2019NOIP退役成员,华为云享专家,阿里云专家博主,csdn博主,努力进行算法分享,有问题欢迎私聊

评论

发布
暂无评论
linux中的内部命令和外部命令_Linux_秋名山码民_InfoQ写作社区