当前位置: 首页 > news >正文

重庆建设工程造价管理协会网站直播网站开发价格

重庆建设工程造价管理协会网站,直播网站开发价格,有没有什么做水利资料的网站,网站排名查询最近在兼职项目中老是遇到这样的场景: 在云服务器之间通过scp命令传输文件,密码太长记不住(客户服务器不方便ssh-copy-id)在服务器上使用mysql命令登录修改数据,数据库密码太长记不住(客户设置的密码,直接改掉哈&#…

最近在兼职项目中老是遇到这样的场景:

  1. 在云服务器之间通过scp命令传输文件,密码太长记不住(客户服务器不方便ssh-copy-id)
  2. 在服务器上使用mysql命令登录修改数据,数据库密码太长记不住(客户设置的密码,直接改掉哈?)
  3. 自己电脑使用gemini cli需要代理,代理命令太长记不住 (简单的放入脚本中不能生效)

之前的做法都是记录到本地记事本,然后打开记事本找到对应的密码再复制到剪贴板,
但是这样太麻烦了,而且容易出错(因为有些密码有特殊字符,所以容易拷贝不全)。

整理下我的需求:

这样的效率太低了,所以我决定写一个工具,能满足我前面的需求。

  1. 命令行执行程序,因为要高效,我开机第一个打开的程序是iterm哈。
  2. 命令方便记忆,就叫yucopy,缩写那就是yc。
  3. 输入一个参数,就能得到对应的密码等值
  4. 参数支持快捷补全
  5. 执行完后密码等信息能自动保存到剪贴板

我的解决方案:

  1. 我的高效流程是用fish shell,参数补全使用fish shel的方案。
  2. 最近在复习rust语言,后续有项目需要用到rust开发,打算用rust实现这个命令行工具。

fish shell

~/.config/fish/config.fish中增加

complete -c yc -x -a '(  cat /opt/dir/yulove/data/key2value.txt | awk -F "=" \'{print $1}\' )'

/opt/dir/yulove/data/key2value.txt是我的配置文件
这样key2value.txt中的key就能自动补全了。

配置文件key2value.txt

参考配置:

yl_mysql_pwd==对应数据库密码
yl_rtest_ip==对应测试服务器ip
yl_baidu_pwd==对应服务器密码
proxy_hong==export https_proxy=http://127.0.0.1:8888 http_proxy=http://127.0.0.1:8888 all_proxy=http://127.0.0.1:8888

可以看到我故意用==去区分key和value,这样像https_proxy=等value值就不容易出错了。

rust代码

Cargo.toml

[package]
name = "yc"
version = "0.1.0"
edition = "2021"[dependencies]
arboard = "3.2.0"

main.rust

use std::env;
use std::fs::File;
use std::io::{self, BufRead};
use arboard::Clipboard;fn main() -> io::Result<()> {let args: Vec<String> = env::args().collect();if args.len() < 2 {println!("Usage: ycopy <key>");return Ok(());}let key = &args[1];let file = File::open("/opt/dir/yulove/data/key2value.txt")?;let reader = io::BufReader::new(file);for line in reader.lines() {let line = line?;let parts: Vec<&str> = line.split("==").collect();if parts.len() == 2 && parts[0] == key {Clipboard::new().unwrap().set_text(parts[1].to_string()).unwrap();println!("Value for key '{}' copied to clipboard.", key);return Ok(());}}println!("Key '{}' not found.", key);Ok(())
}

效果

在这里插入图片描述

总结

因为终端我都是打开tmux的,这样我可以快捷键切换到另一个窗口,然后使用yc命令+方便记忆的key,就能快速得到我想要的保存到剪贴板,
再切换窗口,然后粘贴,这样我就可以快速登录服务器,修改数据库密码,或者使用gemini cli了。

http://www.dtcms.com/a/507852.html

相关文章:

  • 【Nest】集成测试
  • ELK运维之路(Logstash基础使用-7.17.24)
  • 快速排序(JAVA详细讲解快速排序的四种方式)
  • 数据结构四大简单排序算法详解:直接插入排序、选择排序、基数排序和冒泡排序
  • 官渡网站建设wordpress单页面制作
  • 企业电子商务网站开发数据库设计昆明seo博客
  • 东道 网站建设erp系统哪家做得好
  • 现代 Web 开发中检测用户离开页面的完整方案(附 Vue 实现)
  • [crackme]029-figugegl.1
  • 网站建站分辨率腾讯企点怎么注册
  • 第四章:L2CAP 的“数据语言”——揭秘蓝牙通信的报文格式
  • 【代码随想录算法训练营——Day43(Day42周日休息)】动态规划——300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组
  • block的样式有哪些?如果copy的话分别会有啥样式
  • 如何做网络投票网站大数据开发工程师
  • 提示词 prompt 快速上手
  • 网站降权查询工具lnmp中安装wordpress
  • 一个空间放两个网站蓟门桥网站建设
  • DPC和DPC-KNN算法
  • git中tag标签远程管理
  • Babylon.js UtilityLayerRenderer 深度解析:创建3D工具与调试层的完整指南
  • 如何制造一个网站网站的图片怎么更换
  • 区块链安全评估:守护数字世界的“安全密码”
  • 多语言网站建设公司教你做企业网站
  • 第19节-非规范化数据类型-Drop-Type
  • docker desktop的容器间通信
  • 宝安做网站的公司企业文化经典句子
  • 学校二级网站建设百度关键词优化怎么做
  • 百度前端面试准备
  • 立创EDA学习(一、新建项目与自定义元件)
  • dify项目智能记账