CN105893089A - 一种Linux命令行的封装方法 - Google Patents
一种Linux命令行的封装方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring 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命令在不同的版本所在的路径不是完全一样,有些命令支持在任何路径都可以执行,有些却不支持。
二是以非特权身份启动的组件调用命令行的时候,有时候也需要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相关等多种常用的过滤对象;每个过滤对象的匹配方式不一样。
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)
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)
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的命令行及其命令行程序的处理方法 |
-
2016
- 2016-03-30 CN CN201610196624.4A patent/CN105893089B/zh active Active
Patent Citations (7)
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)
Title |
---|
QQ770492426: "《android命令行打包流程》", 《百度文库》 * |
赵恒: "《面向企业的创新私有云平台的创建》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
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 |