linux 中的内部命令和外部命令
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 的方式来实现。
评论