思科、华为路由器的 shell 是如何工作的?
在很多网关设备上,我们通过 ssh 或者 telnet 连接到设备上进行调试,不同厂家不同设备都会定制有不同的 shell 命令,比如华为的 WAP shell,一开始进入设备使用的是 WAP 的 shell,然而这个 shell 都是定制的,如果想要使用更多的命令则需要进入到 linux 之下才能使用 linux的命令,然而在 linux 下面也是不能使用 WAP 的命令。很想知道像这种特别定制的 shell 是如何工作的,怎么才能知道哪些命令实际上都是如何跟 linux 底层工作的。谢谢!
你可以理解为,这些厂家提供了一个 新的界面 ;你也可以认为,这些厂家提供了一个 中间件。
简单来讲,你所能操作的层面,其实并不是linux,而是一个操作层,比如网页的图形界面。如果厂家足够懒,或足够追求高效,那么久没有这个图形界面,转而扔给你一个命令行界面。
在图形界面点击,其实是网页执行一个中间件脚本,这个脚本才是真正工作的东西,他会改linux系统下的内容,比如ip,路由。
如果没有图形界面,那就是你在命令行界面执行cmd -A -B -C,这个命令行界面其实仍然是去调用中间件。
比如display interface e0/0,其实没准是执行的ifconfig eth0;ethtool eth0;再把这些数据整合到一起输出给你。
我以前的公司也做过类似的东西。你可以看一下:vyatta。