本文异常严重地参考了young001兄的arch个性化提示未安装命令文。在此声明!

其实问题说起来简单得很,在bash中输入系统中不存在的命令时,会触发bash调用“command_not_found_handle”这个函数。(通常情况下)该函数一半都没有定义,那么bash这个时候就直接提示你“bash :XXX : command not found”。所以,只要你自己把这个函数定义了,bash就会直接执行你这个函数,而不是输出默认的错误提示。

自定义的位置有很多,凡是bash启动时被加载的文件中都可以。比如说~/.bashrc、/etc/bash.bashrc、/etc/bash.bashrc.local。个人推荐将该函数定义在/etc/bash.bashrc.local。因为这样以来,修改对所有用户都生效,同时也不会因为系统更新或者升级而被覆盖掉。参考代码如下:

就像你看到的,$1参数代表你输入的不存在的命令。