思科、华为路由器的 shell 是如何工作的?
在很多网关设备上,我们通过 ssh 或者 telnet 连接到设备上进行调试,不同厂家不同设备都会定制有不同的 shell 命令,比如华为的 WAP shell,一开始进入设备使用的是 WAP 的 shell,然而这个 shell 都是定制的,如果想要使用更多的命令则需要进入到 linux 之下才能使用 linux的命令,然而在 linux 下面也是不能使用 WAP 的命令。很想知道像这种特别定制的 shell 是如何工作的,怎么才能知道哪些命令实际上都是如何跟 linux 底层工作的。谢谢!
巴扎黑2017-04-17 15:07:56
이러한 제조업체는 새로운 인터페이스를 제공한다고 생각할 수도 있고, 미들웨어를 제공한다고 생각할 수도 있습니다.
간단히 말하면 실제로 운영할 수 있는 수준은 Linux가 아니라 웹페이지의 그래픽 인터페이스와 같은 운영 계층입니다. 제조업체가 너무 게으르거나 충분히 높은 효율성을 추구한다면 오랫동안 이 그래픽 인터페이스를 사용하지 않고 대신 명령줄 인터페이스를 제공할 것입니다.
그래픽 인터페이스를 클릭하면 실제로 웹 페이지에서 미들웨어 스크립트가 실행됩니다. 이 스크립트는 실제로 IP 및 라우팅과 같은 Linux 시스템의 콘텐츠를 변경합니다.
그래픽 인터페이스가 없으면 명령줄 인터페이스에서 cmd -A -B -C를 실행합니다. 이 명령줄 인터페이스는 실제로 여전히 미들웨어를 호출합니다.
예를 들어 디스플레이 인터페이스 e0/0은 실제로 ifconfig eth0; ethtool eth0을 실행한 다음 이러한 데이터를 통합하여 사용자에게 출력할 수 있습니다.
이전 회사에서도 비슷한 일을 했습니다. 살펴볼 수 있습니다: vyatta.
天蓬老师2017-04-17 15:07:56
Cisco IOS: https://learningnetwork.cisco.com/thread/47297
Huawei VRP를 찾을 수 없습니다. - - 사실 인터넷에는 Huawei VRP에 대한 정보가 별로 없습니다.
PHPz2017-04-17 15:07:56
리눅스 시스템이 사용자에게 제공하는 가장 중요한 시스템 프로그램은 쉘 명령언어 인터프리터이다. 그렇지 않아요
커널 부분에 속하지만 사용자 모드에서는 코어 외부에서 실행됩니다. 기본 기능은 설명하고
사용자가 입력한 다양한 명령을 실행하여 사용자와 Linux 코어 간의 인터페이스를 구현합니다. 시스템이 처음 시작된 후 커널
각 최종 사용자가 Shell 인터프리터를 실행하는 프로세스를 만듭니다. 실행 과정은 기본적으로
다음 단계를 따르십시오. (1) 사용자가 키보드에서 입력한 명령줄을 읽습니다. (2) 명령어
로 명령어 분석하기이름은 파일 이름으로 사용되며, 기타 매개변수는 시스템 호출 execve()의 내부 처리에 필요한
로 변환됩니다.양식. (3) 터미널 프로세스는 자식 프로세스를 생성하기 위해 fork()를 호출합니다. (4) 터미널 프로세스 자체는 시스템을 사용합니다
시스템은 wait4()를 호출하여 하위 프로세스가 완료될 때까지 기다립니다(백그라운드 명령인 경우 기다리지 않습니다). 당즈진
은 프로세스가 실행 중일 때 execve()를 호출하고, 하위 프로세스는 파일 이름(예: 명령 이름)을 기준으로 디렉터리에서
을 검색합니다.파일(명령 해석 프로그램으로 구성된 파일)을 닫고 메모리에 옮겨 놓은 후 프로그램을 실행합니다(
이 명령을 설명하세요). (5) 명령 끝에 앰퍼샌드(백그라운드 명령 기호)가 있으면 터미널 프로세스
시스템 호출 wait4()를 기다릴 필요가 없습니다. 즉시 사용자가 다음 명령을 입력할 수 있도록 프롬프트를 보내고 ⑴
으로 이동하세요.. 명령 끝에 앰퍼샌드가 없으면 터미널 프로세스는 하위 프로세스가 나올 때까지 기다려야 합니다(즉,
명령을 실행합니다))의 프로세스는 처리 완료 후 종료되며, 이때 상위 프로세스(터미널 프로세스)에 보고됩니다.
필요한 판단 및 기타 작업을 수행한 후 터미널 프로세스는 사용자에게 새 명령을 입력하라는 메시지를 보낸 다음 다시 시작합니다위 과정을 반복하세요.
http://www.cnblogs.com/wuyuegb2312/p/3399566.html