我通过 SSH 登录到 Edge 路由器终端。像往常一样,在输入几个长命令后,我输入了reset
:
admin@ERX:~$ reset
Incomplete command
admin@ERX:~$ reset -h
Invalid command
admin@ERX:~$ reset --help
Invalid command
admin@ERX:~$ reset help
Invalid command
admin@ERX:~$ which reset
/usr/bin/reset
admin@ERX:~$ clear
Incomplete command
admin@ERX:~$ which clear
/usr/bin/clear
现在,我知道边缘路由器捆绑了一个特定的分支bash
,即vbash
(维欧)。
admin@ERX:~$ echo $SHELL
/bin/vbash
我可以输入整个命令(带路径)来重置,但如果不存在替代定义,为什么 vbash 不选择命令?
admin@ERX:~$ vbash --version
GNU bash, version 4.1.0(2)-release (mipsel-unknown-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
是否reset
被clear
覆盖?如果是,为什么which <command>
不报告相同?
更新 1
输出PATH
admin@ERX:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
答案1
这看起来 bash 为“reset”和“clear”定义了别名,当您在没有完整路径的情况下调用它们时会使用它们。
which
是一个外部工具,而不是 bash 内置工具,因此它不知道别名。
检查alias
“reset”和“clear”的别名是否已定义。