description: 使用SecureCRT痛苦以后的崛起git
mac 系统上我一直少有发现一款好用的 ssh 工具, 免去我记住多个密码的烦恼.github
通过大量时间的寻找, 我发现了一款名为 SecureCRT 的工具, 能够在 mac 系统上使用, 的确能够免除我记住大量密码的烦恼, 可是使用的痛苦也随之而来.shell
基于以上三个问题, 我决定翻出去年写的那个已经不能用的脚原本搞好他.vim
以前的脚本存在几个问题bash
经过网上苦苦的搜索, 我找到一个朋友写的一个东西很是棒. fork 了他的项目, 改编了一下, 使其能更好的适用于个人电脑. 此处感谢 AlicFeng 的文章给个人帮助, 此处是github 地址.服务器
首先说说为何要重写ssh
-s 登陆的时候,后面的编号并非 ini 文件中的 Index 项,而是取决于 shell 过滤出来的 ini 文件顺序工具
基于上面 3 点功能, 打算小小的改造一下.测试
首先解决重点解决第三个问题. AlicFeng 以前使用的是集合, 顺序得不到保证. 所以, 我在想, 是否是能够用 Map 类型来存储. 通过查阅资料, 发现 Map 数据类型和 bash 相关, mac 下的 bash 是 3.x, 可是 Map 数据类型必需要 4.x 以上. 因而乎, 须要升级个 bash.ui
mac 升级 bash 以前须要关闭 SIP(System Integrity Protection). 网上有不少文章关于如何操做, 先简单介绍一下, 不清楚的能够去查阅资料. 首先重启电脑, 并按住 command+r 键, 进入恢复模式. 进入恢复模式的系统以后, 打开上方工具栏中"实用工具"下的"终端". 在终端中输入 csrutil disable
复制代码 成功以后, 重启电脑. 这个时候就能够升级 bash 了. 打开 iterm2, 输入命令 brew install bash
复制代码 升级成功以后输入以下命令 # 替换bash
sudo mv /bin/bash /bin/bash.origin
sudo ln -s /usr/local/opt/bash/bin/bash /bin/bash
# 因为本mac版本下的sh并非直接连接bash,而是bash的一个文件拷贝。所以,还要替换默认的sh指向的命令为bash,以下:
sudo mv /bin/sh /bin/sh.origin
sudo ln -s /usr/local/opt/bash/bin/bash /bin/sh
复制代码 这个时候能够经过命令来查看是否成功 bash --version
复制代码 安装以后, 就能够重启电脑, 把 SIP 给启动. 一样进入恢复模式下输入 csrutil enable
复制代码 而后重启电脑. |
打开 iterm2, 输入命令 brew install bash
复制代码 这个时候须要把下载下来的 lucy 脚本的 "开头"部分, 加上一小段说明 #!/usr/local/bin/bash 复制代码 表示使用咱们当前下载下来的 bash, 而不是系统目录下面的 bash |
仍是打开 iterm2, 这个时候, 安装一个小插件, 让界面更漂亮
brew install toilet
复制代码
安装好以后, 就进入了正文.
首先介绍下, 文件路径.
首先到~目录下, 建立一个文件夹
mkdir ssh-lucy
复制代码
建立一个 servers 的文件. (无后缀).
文件中内容放入如下东西
#服务器IP 帐号 密码 端口 主机
复制代码
实际最后放入的东西内容以下图所示
最后的主机一列, 存放的是咱们用于寻找登陆哪一个服务器的名称, 也就是咱们存入 Map 中的 key, 能够自定义.
存好服务器地址以后, 就可使用咱们真正的脚本.
服务器脚本最后保留一个空行.
我给她起了一个很是人性化的名字, 也是我心心念念的名字"lucy"([人类的始祖](<en.wikipedia.org/wiki/Lucy_(…)
从 gayhub 上下载文件"lucy"以后, 放入本地的
/usr/local/bin
复制代码
目录.
修改文件中的第十行内容"目录"为 servers 存在的绝对路径.
而后赋予这个文件生命
chmod +x lucy
复制代码
此刻大公告成.
此刻存在的命令以下, 延续了 AlicFeng 以前的命名
// l表示list, 表示查看列表(不包含密码)
lucy -l
// h表示help, 表示帮助
lucy -h
// s 表示ssh, 也就是平时咱们使用的登录方式
lucy -s 主机名
// p表示password, 展现包含密码的查看列表
lucy -p
复制代码
效果以下: