当前位置: 首页 > java >正文

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

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文件如何配置,如何读取还需要继续研究。可参考手册获取更多信息。

http://www.xdnf.cn/news/6180.html

相关文章:

  • NixOS 系统深度解析
  • Profibus DP主站转Modbus RTU/TCP网关接艾默生流量计与上位机通讯
  • Apache Pulsar 消息、流、存储的融合
  • 【Bootstrap V4系列】学习入门教程之 组件-导航条(Navbar)
  • MQTT详细介绍
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-A. PostgreSQL常用函数速查表
  • 基于EFISH-SCB-RK3576/SAIL-RK3576的智能快递分拣机技术方案‌
  • 时序数据库IoTDB分布式系统监控基础概述
  • 小白成长之路-文件和目录内容检索处理(二)
  • 【C++重载操作符与转换】纯虚函数
  • 尚硅谷阳哥JVM
  • 智能工具协同赋能STEM教育科研|探索LLM大语言模型和数学软件Maple的创新实践
  • 2025年城市建设与交通运输国际会议(ICUCT 2025)
  • Baklib全场景知识中台驱动效能跃升
  • less中使用 @supports
  • 在C++中进行套接字编程时,主要使用以下头文件
  • CSS:选择器的优先级
  • 深入剖析某App视频详情逆向:聚焦sig3参数攻克
  • (10天冲刺版)软考:软件设计师 真题资料分享
  • Java高频面试之并发编程-17
  • 高海拔和远距离的人员识别:面部、体型和步态的融合
  • spark的Standalone模式介绍
  • 最大公约数JAVA
  • CK-S654-PA60一拖四分体式半导体电子货架专用RFID读写器|读码器接线使用说明
  • <论文>(微软)避免推荐域外物品:基于LLM的受限生成式推荐
  • “天神之眼”计算平台的算力设计(预计500-1000 TOPS)
  • 认识Docker/安装Docker
  • C及C++的SOAP协议库
  • 相关行业发展趋势写一个爬虫程序
  • 力扣3337. 字符串转换后的长度 II随笔