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的方式来实现。