gcs

package module
v1.4.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 24, 2023 License: Apache-2.0 Imports: 10 Imported by: 3

README

gcs

介绍

使用Golang编写的系统命令执行模块,实现类似Python3os.shellSystemsubprocess.getstatusoutputsubprocess.getoutput

安装教程

执行下面的命令

go get -u gitee.com/liumou_site/gcs

效果如下

PS D:\data\git\Go\glbm> go  get -u gitee.com/liumou_site/gcs   
go: downloading gitee.com/liumou_site/gcs v1.1.0
go: downloading golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1
go: added gitee.com/liumou_site/gcs v1.1.0
PS D:\data\git\Go\glbm> 

使用说明

普通命令
package main

import (
	"fmt"
	"strings"
	"gitee.com/liumou_site/gcs"
	"gitee.com/liumou_site/logger"
)

// CheckCmd 检查命令是否存在
func CheckCmd() {
	ls_ := gcs.CheckCmd("dir")
	if ls_ {
		logger.Info("存在")
	} else {
		logger.Error("不存在命令")
	}
	ll_ := gcs.CheckCmd("dirs")
	if ll_ {
		logger.Info("存在")
	} else {
		logger.Error("不存在命令")
	}
}

func Shell() {
	// 执行成功
	cc := gcs.NewShell()
	err := cc.RunShell("ls", "/home/", "-a")
	if err == nil {
		logger.Info("执行成功")
	} else {
		logger.Error("执行失败")
	}
}

// GetOut 测试命令执行
func GetOut() {
	// 执行成功
	cc := gcs.NewShell()
	c := strings.Split("ls /home/liumou@ls /home/lll@lw /home/@ls -la", "@")
	for _, s := range c {
		out, err := cc.RunErrOut(s)
		if err == nil {
			logger.Info("执行成功")
		} else {
			logger.Error("执行失败")
		}
		fmt.Println(out)
	}
}
Sudo命令
package main

import (
	"fmt"
	"strings"
	"gitee.com/liumou_site/gcs"
	"gitee.com/liumou_site/logger"
)

// Sudo 测试sudo
func Sudo() {
	// 实例化构造函数
	sudo := gcs.NewSudo("Gxxc@123")
	// 开启调试信息
	sudo.Prints = true
	// 执行sudo命令(此时会使用第一步传入的密码作为sudo密码去生成命令并执行)
	// 如果已经是root权限,则直接执行当前命令
	res := sudo.RunError("apt install -y", "vsftpd")
	if res == nil {
		logger.Info("安装成功")
	} else {
		logger.Error("安装失败")
	}
}

func ShellSudo() {
	// 实例化构造函数
	sudo := gcs.NewSudo("1")
	// 开启调试信息
	sudo.Prints = true
	// 执行sudo命令(此时会使用第一步传入的密码作为sudo密码去生成命令并执行)
	// 如果已经是root权限,则直接执行当前命令
	res, err := sudo.RunOutError("rm -f ", "/ttss")
	if err == nil {
		logger.Info("删除成功")
	} else {
		logger.Error("删除失败")
		fmt.Println(res)
	}
}

func main() {
	Sudo()
	ShellSudo()
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckCmd

func CheckCmd(cmd string) bool

CheckCmd 检查命令是否存在

func GetUserInfo

func GetUserInfo(display bool) (ok bool, username string, userid int, UserHome string)

GetUserInfo 获取用户名,用户uid,用户家目录

func Version

func Version()

Types

type ShellConfig added in v1.2.0

type ShellConfig struct {
	Printer bool // 打印详细错误信息(默认: true)
	Prints  bool // 是否打印详细信息(默认: false)
	Debug   bool // 是否打印调试信息(默认: false)

	Realtime bool   // 是否开启实时打印信息
	Result   bool   // 是否执行成功
	Text     string // 需要执行的命令
	OsType   string // 系统类型

	Strings  string // 输出结果
	ExitCode int    // 命令执行退出代码
	Err      error  // 错误
	// contains filtered or unexported fields
}

ShellConfig 定义命令的结构体

func NewShell added in v1.4.6

func NewShell() *ShellConfig

NewShell 命令实例构造函数 Realtime 是否开启实时打印数据

func (*ShellConfig) RunShell added in v1.4.2

func (shells *ShellConfig) RunShell(command ...string) error

RunShell 执行命令并获取执行结果, 返回错误(error)

type SudoConfig added in v1.4.0

type SudoConfig struct {
	Printer  bool   // 打印详细错误信息(默认: true)
	Prints   bool   // 是否打印详细信息(默认: false)
	Debug    bool   // 是否打印调试信息(默认: false)
	Password string // sudo权限使用的密码

	Realtime bool        // 是否开启实时打印信息
	Result   bool        // 是否执行成功
	SudoPath string      // sudo命令绝对路径
	Text     string      // 需要执行的命令
	OsType   string      // 系统类型
	Shell    ShellConfig // 实例化Shell

	Strings  string // 输出结果
	ExitCode int    // 命令执行退出代码
	Err      error  // 错误
	// contains filtered or unexported fields
}

SudoConfig 定义命令的结构体

func NewSudo added in v1.4.6

func NewSudo(password string) *SudoConfig

NewSudo 命令实例构造函数, 当不需要执行sudo命令的时候直接传入任意字符串给password即可 Realtime 是否开启实时打印数据

func (*SudoConfig) RunBool added in v1.4.2

func (sudo *SudoConfig) RunBool(command ...string) (status bool)

RunBool 执行命令并获取执行结果, 返回执行退出码和错误

func (*SudoConfig) RunCode added in v1.4.2

func (sudo *SudoConfig) RunCode(command ...string) (ExitCode int, err error)

RunCode 执行命令并获取执行结果, 返回执行退出码和错误

func (*SudoConfig) RunError added in v1.4.2

func (sudo *SudoConfig) RunError(command ...string) (err error)

RunError 执行命令并获取执行结果, 返回执行结果(成功/失败)

func (*SudoConfig) RunShell added in v1.4.5

func (sudo *SudoConfig) RunShell(command ...string)

RunShell 执行命令并获取执行结果, 返回执行退出码和错误

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL