可锐资源网

技术资源分享平台,提供编程学习、网站建设、脚本开发教程

从 0 到 1:如何打造你的专属 Linux 命令行工具

在 Linux 世界中,命令行工具是提升工作效率的关键。但你是否想过,自己也能打造一个专属的命令行工具,让日常运维或开发更加便捷?本篇文章将带你从零开始,使用 Bash、Python 和 Go 语言,创建你的第一个 Linux 命令行工具。



一、为什么要自定义命令行工具?


在日常工作中,我们可能需要执行重复性的操作,比如:

o 备份日志文件

o 监控服务器状态

o 快速查询系统信息


虽然可以用 Shell 脚本实现,但如果能 封装成一个专业的 CLI(Command Line Interface)工具,不仅易用,还能分享给团队成员。




二、使用 Bash 创建简单 CLI 工具


Bash 是最常见的 Shell 语言,我们先用它创建一个简单的 系统监控工具。


1. 创建 Bash 脚本


新建一个名为 sysmon.sh 的文件:

#!/bin/bash

echo "==== 服务器状态监控 ===="

echo "CPU 使用率:"

top -bn1 | grep "Cpu(s)"

echo "内存使用情况:"

free -h

echo "磁盘使用情况:"

df -h /

2. 赋予执行权限

chmod +x sysmon.sh

3. 运行工具

./sysmon.sh

至此,你已经完成了一个基本的 CLI 工具,但它还不够灵活。接下来,我们用 Python 进行增强。




三、用 Python 编写交互式 CLI 工具


Python 适合编写更高级的命令行工具,我们用它创建一个 服务器资源监控工具。


1. 安装依赖

pip install click psutil

2. 编写 Python 代码

import click

import psutil


@click.command()

@click.option("--cpu", is_flag=True, help="显示 CPU 使用率")

@click.option("--mem", is_flag=True, help="显示内存使用情况")

@click.option("--disk", is_flag=True, help="显示磁盘使用情况")

def monitor(cpu, mem, disk):

"""一个简单的 Linux 监控 CLI 工具"""

if cpu:

print(f"CPU 使用率: {psutil.cpu_percent()}%")

if mem:

print(f"内存使用情况: {psutil.virtual_memory().percent}%")

if disk:

print(f"磁盘使用率: {psutil.disk_usage('/').percent}%")


if __name__ == "__main__":

monitor()

3. 运行命令

python sysmon.py --cpu --mem

此时,你已经构建了一个更强大的 CLI 工具。




四、使用 Go 语言创建更专业的 CLI 工具


Go 语言适合开发高性能 CLI 工具,并可以编译成二进制文件,适用于不同系统。


1. 安装 Go 及 Cobra

go install github.com/spf13/cobra-cli@latest

2. 创建 CLI 工具

mkdir mycli && cd mycli

cobra-cli init

cobra-cli add monitor

3. 修改 monitor.go

package cmd


import (

"fmt"

"github.com/shirou/gopsutil/cpu"

"github.com/shirou/gopsutil/mem"

"github.com/spf13/cobra"

)


var monitorCmd = &cobra.Command{

Use: "monitor",

Short: "显示服务器状态",

Run: func(cmd *cobra.Command, args []string) {

cpuPercent, _ := cpu.Percent(0, false)

memInfo, _ := mem.VirtualMemory()

fmt.Printf("CPU 使用率: %.2f%%\n", cpuPercent[0])

fmt.Printf("内存使用率: %.2f%%\n", memInfo.UsedPercent)

},

}


func init() {

rootCmd.AddCommand(monitorCmd)

}

4. 运行 CLI

go run main.go monitor

至此,你已经用三种语言创建了 CLI 工具。




五、打包并发布 CLI 工具


1. Bash 脚本发布


将 sysmon.sh 复制到 /usr/local/bin:

sudo cp sysmon.sh /usr/local/bin/sysmon

sudo chmod +x /usr/local/bin/sysmon

然后,你可以直接运行:

sysmon

2. Python CLI 打包

pip install pyinstaller

pyinstaller --onefile sysmon.py

mv dist/sysmon /usr/local/bin/

3. Go CLI 打包

go build -o sysmon

sudo mv sysmon /usr/local/bin/





六、总结

o Bash 适合简单任务自动化

o Python 适合编写更强大、更交互的 CLI

o Go 适合开发高性能、跨平台的 CLI


你更喜欢哪种方式呢?欢迎在评论区交流!

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言