参考链接
好多帖子都有这个,哪个是原创无法得知
https://blog.csdn.net/qq_41228463/article/details/80720772
需求说明
程序员用的操作系统可能不同,喜爱的shell工具也各有不同,萝卜青菜,不好判断哪个好或者不好,我用的mac OS,好用的免费的shell工具前前后后没找到一个中意的,要么丑,要么收费,要么迁移费劲,要么性能损耗大,唯独钟爱mac自带的终端工具。但是原生的也好多不爽的地方,无法保存登录连接,无法快速备份迁移连接等等。
如果只有几个常用服务器环境,上面说的这些都特么不重要,问题是随着需要操作的环境数量激增而来的。几十个环境,我本是将其记录到语雀上的,每次ssh之前先要浏览器打开语雀,找到对应的记录,然后登陆。有的小伙伴说用某某shell工具就好了啊,本来是这样的,前段时间换电脑,从老的MBP上换到新搞的黑果上,用的免费版的termius,同步配置没把我恶心死,为了避免再恶心一次,一直想着找个好的替代品。
反正我就是要搞,对也罢不对也罢,哈哈哈
使用说明
兼容问题修改
参考的链接是针对于centos下搞得脚本,在mac下执行会有些不兼容,如下图,针对mac做了调整,调整完在centos上执行也是一样的效果,如有问题的,可以自己尝试修改下。
另外原脚本对参数中的空格无法甄别,也做了修改
修改后的执行效果如下图
针对mac下的终端进行自动执行配置
这一步操作做不做都ok,只是方便高频使用这个脚本的用户,配置之后我新打卡一个终端窗口的话就会自动执行这个脚本
脚本
#!/bin/bash
table=""
#设置行,可以是表头,也可以是表格内容。
#如果是表格内容,“—”表示空值
function setRow(){
count=1
value=""
for i in "$@"
do
# echo $count: "$i"
count=$[ $count + 1 ]
value=${value}"$i""#|"
done
table=${table}"|"${value}"\n"
}
#行分隔线
#入参:表格的列数。如表格有5列,则入参为5
function splitLine(){
local num=`expr $1 + 1`
split=`seq -s '+#' $num | sed 's/[0-9]//g'` # 生成连续个的+#
table=${table}"${split}\n"
}
#绘制表格
#入参:table
function setTable(){
echo -e $1|column -s "#" -t|awk '{if($0 ~ /^\+/){gsub(" ","-",$0);print $0}else{print $0}}'
}
if [ "$SHLVL" -eq "2" ]
then
table=""
columnCount=5
splitLine ${columnCount}
setRow "GROUP" "NAME" "SCRIPT" "PASSWORD" "DESC"
splitLine ${columnCount}
setRow "aaa" "跳板机" "ssh -i ~/.ssh/11b.pem jia@47.xx.xx.60 -p 22" "RIxVm8Wi" "234 A3测试环境"
setRow "aaa" "85-测试环境" "ssh -i ~/.ssh/id_rsa root@121.xx.x9.85 -p 22" "-" "-"
splitLine ${columnCount}
setRow "cc" "开发环境" "ssh root@106.52.3.150 -p 22" "pd" "-"
splitLine ${columnCount}
setRow "11叔" "11-应用服务器" "ssh -i ~/.ssh/tencent_prd_pem root@49.xx.xx.69 -p 22" "-" "-"
setRow "11叔" "11-docker打包" "ssh -i ~/.ssh/tencent_prd_pem root@172.xx.xx.137 -p 22" "-" "-"
setRow "11叔" "11-k8s" "ssh -i ~/.ssh/tencent_prd_pem root@49.xx.xx.150 -p 22" "-" "-"
splitLine ${columnCount}
setTable "${table}"
fi
版权声明:本文为keylkeaf原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。