CN105893089A - 一种Linux命令行的封装方法 - Google Patents

一种Linux命令行的封装方法 Download PDF

Info

Publication number
CN105893089A
CN105893089A CN201610196624.4A CN201610196624A CN105893089A CN 105893089 A CN105893089 A CN 105893089A CN 201610196624 A CN201610196624 A CN 201610196624A CN 105893089 A CN105893089 A CN 105893089A
Authority
CN
China
Prior art keywords
linux
order line
filtering object
command
linux command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610196624.4A
Other languages
English (en)
Other versions
CN105893089B (zh
Inventor
马桂成
杨松
季统凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
G Cloud Technology Co Ltd
Original Assignee
G Cloud Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by G Cloud Technology Co Ltd filed Critical G Cloud Technology Co Ltd
Priority to CN201610196624.4A priority Critical patent/CN105893089B/zh
Publication of CN105893089A publication Critical patent/CN105893089A/zh
Application granted granted Critical
Publication of CN105893089B publication Critical patent/CN105893089B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种Linux命令行的封装方法。本发明的基本步骤是:1:设置无密码启动命令行封装工具;2:命令行解析;3:读取解析配置文件;4:加载过滤器文件的过滤对象;5:匹配命令行过滤对象;6:封装命令行;7:执行命令行。本发明解决了应用程序根据不同的使用场景需要对Linux命令行进行封装的问题,提供一种通用的Linux命令行封装工具,避免重复开发这些组件的成本;可应用于由多种计算机编程语言开发的应用程序对命令行的封装。

Description

一种Linux命令行的封装方法
技术领域
本发明涉及系统命令处理技术领域,特别是一种Linux命令行的封装方法。
背景技术
一般的云计算平台一般有可能多种语言开发而成,而基于Linux操作系统的云计算平台组件通常是调用不同的命令行,为了支持多个不同版本的Linux,并以非特权身份启动这些组件进一步保证资源隔离。而云平台的组件调用命令行存在以下的问题:
一是部分Linux命令在不同的版本所在的路径不是完全一样,有些命令支持在任何路径都可以执行,有些却不支持。
二是以非特权身份启动的组件调用命令行的时候,有时候也需要root用户执行。
三是这样做不容易维护,而且不能进行复杂的参数处理
四是命令行调用的时候都需要输入密码
五是各种计算机编程语言开发的应用程序重复开发封装工具的问题。
发明内容
本发明解决的技术问题在于提供一种Linux命令行的封装方法,解决了重复开发多种封装Linux命令行工具、不支持调用多个版本的Linux操作系统命令行、非特权身份启动的组件调用命令行的时候不能支持root用户执行、命令行调用的时候都需要输入密码等问题。
本发明解决上述技术问题的技术方案是:
所述的方法包括如下步骤:
步骤1:设置无密码启动命令行封装工具;
步骤2:命令行解析;
步骤3:读取解析配置文件;
步骤4:加载过滤器文件的过滤对象;
步骤5:匹配命令行过滤对象;
步骤6:封装命令行;
步骤7:执行命令行。
所述的步骤1是在Linux的/etc/sudoers.d/目录下新增一个或多个文件,用来允许一个或多个用户以root用户免输入密码情况下执行命令行封装工具;
所述的步骤2是调用命令行封装工具,参数是用户本来想调用的Linux命令行,其格式为:封装工具的名称+空格+封装工具的配置文件路径+空格+Linux命令+空格+参数;根据格式解释其中的内容;
所述的步骤3是解释命令行封装工具所用到的配置文件,获取过滤器文件所在的目录;
所述的步骤4是过滤器文件所在的目录下所有过滤器文件,解释并加载其包含的过滤对象;
所述的步骤5是根据命令行解析的Linux命令名称需找其对应的过滤对象,若找不到就默认root用户名执行;
所述的步骤6是根据用户调用提供的参数以及配置文件提供的参数整合新的参数,命令行最终为sudo-u用户名Linux命令新的参数;
所述的步骤7是创建一个新的子进程来执行封装后的命令行,并等待其运行结束,当获取到命令行执行返回结果后退出这个子进程。
所述的过滤器文件上有一行或多行描述过滤对象的语句,每行记录包括Linux命令名称、过滤对象的名称、Linux命令执行路径、用户名、过滤对象参数;
所述的过滤对象,包括常规命令行、正则表达式、文件路径、杀掉进程、读取文件、IP相关等多种常用的过滤对象;每个过滤对象的匹配方式不一样。
本发明将命令行封装成一个工具,其他应用程序调用命令行封装工具就能使用,区别其他Linux命令行封装只适用于自身组件或同一种计算机编程语言开发的组件;可以支持多种常用的过滤对象,区别于一般的Linux命令行封装工具。通过本发明适用于Linux命令行封装的方法,解决了重复开发多种封装Linux命令行工具、不支持调用多个版本的Linux操作系统命令行、非特权身份启动的组件调用命令行的时候不支持root用户执行、命令行调用的时候都需要输入密码等问题。
附图说明
下面结合附图对本发明进一步说明:
图1为流程图。
具体实施方式
本发明的实施方式有多种,这里以云平台为例说明其中一种实现方法,流程图如图1所示,具体实施过程如下:
1、首先在Linux的/etc/sudoers.d/目录下新增一个或多个文件,用来允许一个或多个用户以root用户免输入密码情况下执行命令行封装工具
2、命令行解析;
3、读取解析配置文件;
4、加载过滤器文件的过滤对象;
5、匹配命令行过滤对象;
6、封装命令行;
7、执行命令行;
整个流程结束。

Claims (3)

1.一种Linux命令行的封装方法,其特征在于:所述的方法包括如下步骤:
步骤1:设置无密码启动命令行封装工具;
步骤2:命令行解析;
步骤3:读取解析配置文件;
步骤4:加载过滤器文件的过滤对象;
步骤5:匹配命令行过滤对象;
步骤6:封装命令行;
步骤7:执行命令行。
2.根据权利要求1所述的Linux命令行的封装方法,其特征在于:
所述的步骤1是在Linux的/etc/sudoers.d/目录下新增一个或多个文件,用来允许一个或多个用户以root用户免输入密码情况下执行命令行封装工具;
所述的步骤2是调用命令行封装工具,参数是用户本来想调用的Linux命令行,其格式为:封装工具的名称+空格+封装工具的配置文件路径+空格+Linux命令+空格+参数;根据格式解释其中的内容;
所述的步骤3是解释命令行封装工具所用到的配置文件,获取过滤器文件所在的目录;
所述的步骤4是过滤器文件所在的目录下所有过滤器文件,解释并加载其包含的过滤对象;
所述的步骤5是根据命令行解析的Linux命令名称需找其对应的过滤对象,若找不到就默认root用户名执行;
所述的步骤6是根据用户调用提供的参数以及配置文件提供的参数整合新的参数,命令行最终为sudo-u用户名Linux命令新的参数;
所述的步骤7是创建一个新的子进程来执行封装后的命令行,并等待其运行结束,当获取到命令行执行返回结果后退出这个子进程。
3.根据权利要求2所述的Linux命令行的封装方法,其特征在于:
所述的过滤器文件上有一行或多行描述过滤对象的语句,每行记录包括Linux命令名称、过滤对象的名称、Linux命令执行路径、用户名、过滤对象参数;
所述的过滤对象,包括常规命令行、正则表达式、文件路径、杀掉进程、读取文件、IP相关等多种常用的过滤对象;每个过滤对象的匹配方式不一样。
CN201610196624.4A 2016-03-30 2016-03-30 一种Linux命令行的封装方法 Active CN105893089B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610196624.4A CN105893089B (zh) 2016-03-30 2016-03-30 一种Linux命令行的封装方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610196624.4A CN105893089B (zh) 2016-03-30 2016-03-30 一种Linux命令行的封装方法

Publications (2)

Publication Number Publication Date
CN105893089A true CN105893089A (zh) 2016-08-24
CN105893089B CN105893089B (zh) 2019-05-21

Family

ID=57011795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610196624.4A Active CN105893089B (zh) 2016-03-30 2016-03-30 一种Linux命令行的封装方法

Country Status (1)

Country Link
CN (1) CN105893089B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108509235A (zh) * 2018-03-14 2018-09-07 广东电网有限责任公司惠州供电局 一种linux系统命令运行简化方法
CN109388581A (zh) * 2018-10-08 2019-02-26 郑州云海信息技术有限公司 一种非易失性内存储器管理方法与装置
CN112965767A (zh) * 2021-03-08 2021-06-15 北京金山云网络技术有限公司 作业的处理方法和装置、电子设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030163570A1 (en) * 2002-02-26 2003-08-28 Sun Microsystems, Inc. Command line interface session tool
US7047526B1 (en) * 2000-06-28 2006-05-16 Cisco Technology, Inc. Generic command interface for multiple executable routines
CN101110703A (zh) * 2007-06-28 2008-01-23 中兴通讯股份有限公司 可定制的命令行实现方法和系统
CN101944023A (zh) * 2010-09-14 2011-01-12 南京联创科技集团股份有限公司 Unix服务器软件通用命令行接口实现方法
CN103336707A (zh) * 2013-07-10 2013-10-02 深圳市开立科技有限公司 在安卓系统下运行标准c程序的方法和装置
CN104424002A (zh) * 2013-09-10 2015-03-18 中国科学院声学研究所 一种基于插件机制的动态加载组件方法和系统
CN104461574A (zh) * 2014-12-23 2015-03-25 上海斐讯数据通信技术有限公司 一种基于xml的命令行及其命令行程序的处理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047526B1 (en) * 2000-06-28 2006-05-16 Cisco Technology, Inc. Generic command interface for multiple executable routines
US20030163570A1 (en) * 2002-02-26 2003-08-28 Sun Microsystems, Inc. Command line interface session tool
CN101110703A (zh) * 2007-06-28 2008-01-23 中兴通讯股份有限公司 可定制的命令行实现方法和系统
CN101944023A (zh) * 2010-09-14 2011-01-12 南京联创科技集团股份有限公司 Unix服务器软件通用命令行接口实现方法
CN103336707A (zh) * 2013-07-10 2013-10-02 深圳市开立科技有限公司 在安卓系统下运行标准c程序的方法和装置
CN104424002A (zh) * 2013-09-10 2015-03-18 中国科学院声学研究所 一种基于插件机制的动态加载组件方法和系统
CN104461574A (zh) * 2014-12-23 2015-03-25 上海斐讯数据通信技术有限公司 一种基于xml的命令行及其命令行程序的处理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
QQ770492426: "《android命令行打包流程》", 《百度文库》 *
赵恒: "《面向企业的创新私有云平台的创建》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108509235A (zh) * 2018-03-14 2018-09-07 广东电网有限责任公司惠州供电局 一种linux系统命令运行简化方法
CN109388581A (zh) * 2018-10-08 2019-02-26 郑州云海信息技术有限公司 一种非易失性内存储器管理方法与装置
CN112965767A (zh) * 2021-03-08 2021-06-15 北京金山云网络技术有限公司 作业的处理方法和装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN105893089B (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
US20210049024A1 (en) Method and apparatus for loading multiple differing versions of a native library into a native environment
US8813031B2 (en) System and method for automatically resolving dependencies of Java Archive files for use with Maven
CN104424002B (zh) 一种基于插件机制的动态加载组件方法和系统
CN106406960B (zh) 一种linux环境中快速部署软件的方法
US20160019072A1 (en) Dynamic determination of application server runtime classloading
CN106547527B (zh) 一种JavaScript文件构建方法及装置
US8429648B2 (en) Method and apparatus to service a software generated trap received by a virtual machine monitor
KR20060070412A (ko) 소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치패키지
Kern Securing the tangled web
CN105893089A (zh) 一种Linux命令行的封装方法
CN109933350B (zh) 在应用中嵌入代码的方法、装置及电子设备
CN108196876A (zh) 基于文件的php业务配置方法及中心服务器
Madieu Linux Device Drivers Development: Develop Customized Drivers for Embedded Linux
Heap Ansible: from beginner to pro
US10216502B2 (en) System module deployment optimization
US7428729B2 (en) Methods, systems, and computer program products for integrating legacy applications into a platform-independent environment
US8539468B2 (en) System and methods for replacing software application classes using transparent object adapters
CN108089895B (zh) 一种插件中Activity的注册方法、装置、电子设备以及存储介质
CN114840195B (zh) 一种针对iOS SDK静态库的私有化方法
US20060248351A1 (en) Method and apparatus for building software applications
CN105912468B (zh) 开放平台运行脚本的方法和开放平台系统
CN111381865B (zh) 游戏应用的打包方法、装置、设备及存储介质
US20170286072A1 (en) Custom class library generation method and apparatus
KR20190105774A (ko) 스마트 계약 언어에서 함수 호출의 안전성 향상 방법
AU2016100249A4 (en) A method to codify application packaging rules and dependencies for the purposes of automating the creation of Microsoft App-V bubbles using a software engine

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 523808 19th Floor, Cloud Computing Center, Chinese Academy of Sciences, No. 1 Kehui Road, Songshan Lake Hi-tech Industrial Development Zone, Dongguan City, Guangdong Province

Applicant after: G-Cloud Technology Co., Ltd.

Address before: 523808 No. 14 Building, Songke Garden, Songshan Lake Science and Technology Industrial Park, Dongguan City, Guangdong Province

Applicant before: G-Cloud Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant