Centos 上安装Klish(clish)的编译和测试总结

发布于:2025-05-15 ⋅ 阅读:(17) ⋅ 点赞:(0)

1,介绍

        clish是一个类思科命令行补全与执行程序,它可以帮助程序员在nix操作系统上实现功能导引、命令补全、命令执行的程序。支持?,help, Tab按键。本文基于klish-2.2.0介绍编译和测试。

2,klish的编译

        需要安装的库:

sudo yum install expat-devel

sudo yum install libxml2-devel  :支持xml文件

 编译:

            ./configure  [--prefix = /usr/local/]

            make && make install

交叉编译:

         ./configure --host=mipsel-linux CC=mipsel-linux-gcc 

        :编译器找不到的话需要写绝对路径

 3,klish的启动

 我是默认安装在/usr/local下的,bin目录下存在4个文件:

clish : cli的实例程序,启动这个就可以像cli一样交互了,即:真正的交互程序

konfd : 用于存储当前配置的守护程序,即:clish需要与konfd通过unix socket连接

konf  :从 shell 与 konfd 守护进程通信的实用程序。

sigexec : 用于从不可中断的 ACTION 脚本启动守护进程的实用程序。如:启动某个服务snmp/vftpd
           这个程序涉及到后续XML文件中的<ACTION></ACTION>标签

启动过程:

        1,启动konfd : ./konfd

        2,创建环境变量:

                CLISH_PATH=/home/work/klish-2.2.0/xml-examples/klish/etc/clish-enable

可查看源代码中的clish.c -> CLISH_PATH

如下:

        /*
         * if CLISH_PATH is unset in the environment then this is the value used.
         */
        const char *default_path = "/etc/clish;~/.clish"; 所以默认是etc下

        注: 使用klish安装目录下默认的xml文件

        3,启动clish:./clish

启动完成: 输入‘?’,显示当前视图下的命令

使用其中的ping 和 show ip route: 输入命令后,可使用Tab补全

4,clish中的XML文件

我使用的是如下路径的xml例子文件:

[root@hero clish-enable]# pwd
/home/work/klish-2.2.0/xml-examples/klish/etc/clish-enable

 ping.xml ,route.xml,interface.xml 是 刚刚提供的clish交互过程的命令

startup.xml : 是定义的首个启动视图,默认启动视图可修改,但仅仅一个

types.xml : 是<PARAM>标签中使用到的数据类型定义

可参考Klish提供的手册:

pkun/klish: The klish is a framework for implementing a CISCO-like CLI on a UNIX systems. It is configurable by XML files. @ 2.2 - libcode

5,总结

        本文介绍了Klish的安装于测试,方便后面参考,但klish不仅仅只有这些,对其中的xml文件如何配置,如何读取还需要继续研究。可参考手册获取更多信息。


网站公告

今日签到

点亮在社区的每一天
去签到