Linux shell命令分为:
内部命令:由Shell自带,随着系统启而启动.保存在内存中.
外部命令:可执行文件
type命令可以查看命令是否是内部命令或者是外部命令.
格式: type command
[root@iZbbkuofh7v290Z ~]# type cd
cd is a shell builtin
[root@iZbbkuofh7v290Z ~]# type mkdir
mkdir is /usr/bin/mkdir
内部命令是执行从内存中读取,外部命令则是读取可执行文件.
命令的优先级:
别名 > 内部 > hash表中缓存的命令 > 外部命令
问题1:如何给命令起别名?
答:可以利用alias命令给命令起别名
格式:alias 别名 命令
取消别名使用 unalias命令
格式:unalias 别名
查看别名
格式:alias
注意:这些别名只是临时的,重启系统或者重新登录都会失效
要想永久生效,可以写入到/etc/profile文件中.(所有用户)
echo "alias vi vim" > /etc/profile
要想仅对自己生效,则写入~/.bash_profile文件中即可.
echo "alias vi vim" > ~/.bash_profile
问题2:什么是hash表中的命令?
答:linux系统中会有一张哈希表,当系统启动的时候,这张hash表是空的.
当执行过外部命令之后,hash表会记录这条命令,相当于缓存.
当下次再执行这个命令的时候直接从hash表中读取,而不去PATH目录文件中读取.
大大提高命令的调用速率
可以用hash这个命令 显示、添加或清除哈希表
参数:
-l 显示hash表内容
-r 清除hash表
-d openssl 删除表中某一条(删除openssl)
-t openssl 查看openssl命令路径(hash表中没有的话,可以调用which命令)
-p /usr/bin/openssl aliesopenssl 往hash表中添加一条,执行aliesopenssl即执行openssl命令(起别名)