前言
我是一名开发工程师,平时使用云服务器很多,经常要用到命令行操作系统,涉及到的系统有:centos、Ubuntu。
命令的记忆是一个很艰巨的事情,有时候真的会忘记一些命令,还有一些场景命令不太会用,毕竟非专业运维,有一定的挑战性。
试用了阿里云的os copilot
后,真的超级爽,下面分享一下使用过程,和一些使用场景。
安装过程
安装 co copilot
安装非常简单。
我用的是centos 7系统(目前已经停止更新了,正在考虑升级到Anolis OS
,线下使用很久了,该系统推荐!),操作方式都一样。
# x86系统,一键安装
curl -#S https://mirrors.aliyun.com/os-copilot/os-copilot-all-in-one-latest.sh | bash
# 如果是aarch64架构,可使用下面的命令
curl -#S https://mirrors.aliyun.com/os-copilot/os-copilot-all-in-one-arm-latest.sh | bash
配置访问co copilot
的角色
我通过ram角色创建的方式做的,这种方式很简单,综合下来比ak ak的方式简单还省心。
进入访问控制
创建角色
选择阿里云服务
配置角色名称(懒得起名字的,直接复制我的)
注意:授信服务为:云服务器,别选错了,不然下一步无法配置。
# 角色名称
role-co-copilot
# 备注
阿里云 Os Copilot服务使用角色
最后点击完成即可。
角色新增授权
输入 OMOS
,搜索该权限,选择后点击确认授权即可。
配置云服务器的授权
通过控制台,搜索ECS服务。(注意区域别选错了)
找到实例的配置,进行授权
选择刚才创建的角色,类型为授予,选择后点击确认即可。
使用
上面步骤操作完成后,即可开始使用 Co Copilot
了
能力大纲
- 通过
-t
命令,来交互式完成需求 - 通过
-f
完成复杂的命令,来交互式完成需求 - 通过
|
管道,来增强指令 - 命令纠错
- 知识问答
- 命令、脚本生成
- 软件管理
- 日志分析
交互式命令
- 场景
现在文件夹下,有很多个文件,但我不知道有多少个文件,也不知道该怎么去执行指令。
- 操作
常规
co 当前文件夹下有多少个文件 -t
进阶
co 当前文件夹及所有层级的子文件共有多少个文件 -t
co 找到当前目录下,占用空间最大的目录 -t
非常好用!
复杂命令使用
- 场景
如果要操作的需求太复杂,那么通过命令行不太好写描述了,可以把描述写进一个文件中。
- 操作
先来描述一下文字内容,尽可能的随意一些,避免太专业的内容,就不太适合大众使用了。
1. 我需要写一个shell脚本,该脚本可以定时输出一段文字,“hello”。
2. 这个脚本需要能开机启动,启动后就开始执行开脚本。
3. 输出的文字中,需要包含日期,日期格式为:yyyy-MM-dd HH:mm:ss
4. 把输出的文本,追加到/root/test/test.log文件中。
5. 每一次不同的输出,中间要间隔一下“===================”,并换行,让我来知道每一次输出的区分。
6. 把日期放在间隔的===中间。
执行命令
co -f task -t
执行效果
到这里,我们的任务已经全部被执行了,可以查看下结果
现在,目录中已经有了脚本、日志,还有一个不知道是什么的文件。我们逐一查看。
首先不知名的文件
通过脚本内容查看,发现里面有两个命令,是用来查看定时任务目前状态的。
执行一下,没有问题,看到当前任务已经在正常执行了。
看下log执行记录
发现日志中什么都没有,那就再看下脚本
到这,就知道为什么日志中,什么都没有了。
- 总结
多任务是可以被执行并解析,上下文的连贯有一些问题。他把我的每一行,都拆解成了一个单独的任务,没有真正做到汇总融合。
其实也难为它了,问题在于我的描述,太过散乱。综合执行能力还是非常强的。
我们再试一下,让他把刚才的操作,全部移除,看是否可行。
co 移除刚才让你生成的脚本,并停止所有相关的内容,删掉日志和脚本文件 -t
这是一个非常考验上下文的动作,看是否会造成风险处理。
风险是可控的,在做每一个风险操作之前,都会做出提示。上下文的贯穿能力有待提升~~~~
我们优化下文案。
co 移除刚才生成的test.sh脚本,并停止和他相关的所有进程 -t
这个风险就有点高了,只给了我进程号,我完全不知道他kill掉了什么。同时test的服务、service都没有停掉,也没有删除掉对应的文件。
只能手动删除、停止相关内容了。
管道
这是官方的说明
这是我的使用
好像没有生效,并且执行了我的任务
换一种用法
是我愚蠢了,用法不对,再一次深刻理解了管道。
用上一次执行的结果,来给到第二个命令。如此甚好~~哈哈哈哈
命令纠错
这个还是非常不错的!如果你执行出错了,只需要打一个问号,就知道你错哪了。
注意!!!?是直接打不出来的,需要先把?添加到环境变量中,官方提供了脚本,直接执行即可。
source /etc/os-copilot/fix_command_config.sh
日志分析
日志分析,最大不能超过100行,不然可能会触发token限制。
使用场景有点少,毕竟一般日志都不可能只能100行。暂不使用。
其他能力
其他都是兼容性能力,一块试用
- 脚本生成:上面每一个交互完成后,提示我是否保存,会生成一个.sh文件,该文件就是生成的脚本,可直接使用。
- 答疑使用
只需要输入下面的命令,就可以进入到聊天界面
co
接下来,直接和他聊天就行了。
总结
优势
我觉得这个小助手,真的可以帮很大的忙,特别是在执行一些脚本,或者在处理一些细节性问题处理的时候,可以有很大的帮助。
推荐功能
- -t,通过中文描述来执行任务、解析、答疑等。
- ?,执行答疑。
- co,直接在命令行中进行答疑交流。
不足
一些场景下,可能不太好进行中文描述,比如在一些工具中,是不具备输入法的。
- 上下文的连贯性稍显不足
- 日志分析的能力,使用场景有点局限
建议
- 增加指令的ai提示,有时候,记得大概得指令,也知道怎么用,如果这种时候,通过co来调用,速度上可能会有一些慢。
- 日志的分析,增加本地分析能力,或者增加日志大文本的附件传输能力,以增强对日志的分析,拓展使用场景。
- 上下文的连贯性稍显不足,可增强相关能力。
其他
如果有更多想要了解的,欢迎查看官网的说明介绍。
非常推荐
https://help.aliyun.com/zh/alinux/user-guide/instructions-for-os-copilot