Heim > Fragen und Antworten > Hauptteil
思科、华为路由器的 shell 是如何工作的?
在很多网关设备上,我们通过 ssh 或者 telnet 连接到设备上进行调试,不同厂家不同设备都会定制有不同的 shell 命令,比如华为的 WAP shell,一开始进入设备使用的是 WAP 的 shell,然而这个 shell 都是定制的,如果想要使用更多的命令则需要进入到 linux 之下才能使用 linux的命令,然而在 linux 下面也是不能使用 WAP 的命令。很想知道像这种特别定制的 shell 是如何工作的,怎么才能知道哪些命令实际上都是如何跟 linux 底层工作的。谢谢!
巴扎黑2017-04-17 15:07:56
你可以理解为,这些厂家提供了一个 新的界面 ;你也可以认为,这些厂家提供了一个 中间件。
简单来讲,你所能操作的层面,其实并不是linux,而是一个操作层,比如网页的图形界面。如果厂家足够懒,或足够追求高效,那么久没有这个图形界面,转而扔给你一个命令行界面。
在图形界面点击,其实是网页执行一个中间件脚本,这个脚本才是真正工作的东西,他会改linux系统下的内容,比如ip,路由。
如果没有图形界面,那就是你在命令行界面执行cmd -A -B -C,这个命令行界面其实仍然是去调用中间件。
比如display interface e0/0,其实没准是执行的ifconfig eth0;ethtool eth0;再把这些数据整合到一起输出给你。
我以前的公司也做过类似的东西。你可以看一下:vyatta。
天蓬老师2017-04-17 15:07:56
Cisco IOS: https://learningnetwork.cisco.com/thread/47297
Huawei VRP的没找到- -其实网上关于华为VRP的资料也不多,
PHPz2017-04-17 15:07:56
Linux系统提供给用户的最重要的系统程序是Shell命令语言解释程序。它不
属于内核部分,而是在核心之外,以用户态方式运行。其基本功能是解释并
执行用户打入的各种命令,实现用户与Linux核心的接口。系统初启后,核
心为每个终端用户建立一个进程去执行Shell解释程序。它的执行过程基本
上按如下步骤: (1)读取用户由键盘输入的命令行。 (2)分析命令,以命令
名作为文件名,并将其它参数改造为系统调用execve( )内部处理所要求的
形式。 (3)终端进程调用fork( )建立一个子进程。 (4)终端进程本身用系
统调用wait4( )来等待子进程完成(如果是后台命令,则不等待)。当子进
程运行时调用execve( ),子进程根据文件名(即命令名)到目录中查找有
关文件(这是命令解释程序构成的文件),将它调入内存,执行这个程序(
解释这条命令)。 (5)如果命令末尾有&号(后台命令符号),则终端进程
不用系统调用wait4( )等待,立即发提示符,让用户输入下一个命令,转⑴
。如果命令末尾没有&号,则终端进程要一直等待,当子进程(即运行命令
的进程)完成处理后终止,向父进程(终端进程)报告,此时终端进程醒来
,在做必要的判别等工作后,终端进程发提示符,让用户输入新的命令,重
复上述处理过程。
http://www.cnblogs.com/wuyuegb2312/p/3399566.html