
使用SecureCRT痛苦之后的崛起
mac 系統(tǒng)上我一直少有發(fā)現(xiàn)一款好用的 ssh 工具, 免去我記住多個密碼的煩惱.
經(jīng)過大量時間的尋找, 我發(fā)現(xiàn)了一款名為 SecureCRT 的工具, 可以在 mac 系統(tǒng)上使用, 的確可以免除我記住大量密碼的煩惱, 但是使用的痛苦也隨之而來.
- 不存在清理屏幕的快捷鍵
經(jīng)常登錄服務(wù)器進(jìn)行測試環(huán)境的日志查閱, 這個時候, 界面上停留的可能有進(jìn)入多少級目錄, 然后打了什么命令, 已經(jīng)其他很多無關(guān)緊要的東西在上面. 這個時候清理屏幕就顯的很重要, 但是 CRT 不支持. 只能傻傻的通過工具欄上方的按鈕去清除屏幕. - vim 之后不能滾輪滑動
文字已經(jīng)很能說明問題了, 我就不多贅述. - 我自己的 Iterm2 上操作的很開心, 不能用他我就不開心
這一點(diǎn)尤為重要.
基于以上三個問題, 我決定翻出去年寫的那個已經(jīng)不能用的腳本來搞好他.
之前的腳本存在幾個問題
- 不能展示出來列表
我目前存了多少個服務(wù)器, 我記不住, 也不能展示出來 - 好端端的壞了
進(jìn)入服務(wù)器之后, 啥也不能干.
通過網(wǎng)上苦苦的搜索, 我找到一個朋友寫的一個東西非常棒. fork 了他的項(xiàng)目, 改編了一下, 使其能更好的適用于我的電腦.
此處感謝 AlicFeng 的文章給我的幫助, 此處是github 地址.
首先說說為什么要重寫
- 電腦上下載的時候總是提示需要管理員的權(quán)限, 但是已經(jīng)使用了, 不厭其煩
- 廢了好多功夫弄到本地之后, 感覺不是太會用. 這一點(diǎn)很尷尬.
- 簡書評論區(qū) 2 樓回復(fù)的很好, 在此引用一下
-s 登錄的時候,后面的編號并不是 ini 文件中的 Index 項(xiàng),而是取決于 shell 過濾出來的 ini 文件順序
基于上面 3 點(diǎn)功能, 打算小小的改造一下.
方法一: 更換系統(tǒng)的 bash, 需要重啟電腦
方法1 begin
首先解決重點(diǎn)解決第三個問題.
AlicFeng 之前使用的是集合, 順序得不到保證. 因此, 我在想, 是不是可以用 Map 類型來存儲.
經(jīng)過查閱資料, 發(fā)現(xiàn) Map 數(shù)據(jù)類型和 bash 相關(guān), mac 下的 bash 是 3.x, 但是 Map 數(shù)據(jù)類型必須要 4.x 以上.
于是乎, 需要升級個 bash.
mac 升級 bash 之前需要關(guān)閉 SIP(System Integrity Protection).
網(wǎng)上有很多文章關(guān)于如何操作, 先簡單介紹一下, 不清楚的可以去查閱資料.
首先重啟電腦, 并按住 command+r 鍵, 進(jìn)入恢復(fù)模式.
進(jìn)入恢復(fù)模式的系統(tǒng)之后, 打開上方工具欄中"實(shí)用工具"下的"終端".
在終端中輸入
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的一個文件拷貝。因此,還要替換默認(rèn)的sh指向的命令為bash,如下:
sudo mv /bin/sh /bin/sh.origin
sudo ln -s /usr/local/opt/bash/bin/bash /bin/sh
這個時候可以通過命令來查看是否成功
bash --version
安裝之后, 就可以重啟電腦, 把 SIP 給啟動.
同樣進(jìn)入恢復(fù)模式下輸入
csrutil enable
然后重啟電腦.
方法1 over
方法二: 直接下載新的 bash, 無需重啟電腦
方法2 begin
打開 iterm2, 輸入命令
brew install bash
這個時候需要把下載下來的 lucy 腳本的 "開頭"部分, 加上一小段說明
#!/usr/local/bin/bash
表示使用我們當(dāng)前下載下來的 bash, 而不是系統(tǒng)目錄下面的 bash
方法2 over
還是打開 iterm2, 這個時候, 安裝一個小插件, 讓界面更漂亮
brew install toilet
安裝好之后, 就進(jìn)入了正文.
首先介紹下, 文件路徑.
首先到~目錄下, 創(chuàng)建一個文件夾
mkdir ssh-lucy
創(chuàng)建一個 servers 的文件. (無后綴).
文件中內(nèi)容放入以下東西
#服務(wù)器IP 賬號 密碼 端口 主機(jī)
實(shí)際最后放入的東西內(nèi)容如下圖所示

最后的主機(jī)一列, 存放的是我們用于尋找登錄哪個服務(wù)器的名稱, 也就是我們存入 Map 中的 key, 可以自定義.
存好服務(wù)器地址之后, 就可以使用我們真正的腳本.
服務(wù)器腳本最后保留一個空行.
我給她起了一個非常人性化的名字, 也是我心心念念的名字"lucy"(人類的始祖
從 gayhub 上下載文件"lucy"之后, 放入本地的
/usr/local/bin
目錄.
修改文件中的第十行內(nèi)容"目錄"為 servers 存在的絕對路徑.
然后賦予這個文件生命
chmod +x lucy
此刻大公告成.
此刻存在的命令如下, 延續(xù)了 AlicFeng 之前的命名
// l表示list, 表示查看列表(不包含密碼)
lucy -l
// h表示help, 表示幫助
lucy -h
// s 表示ssh, 也就是平時我們使用的登陸方式
lucy -s 主機(jī)名
// p表示password, 展示包含密碼的查看列表
lucy -p
效果如下:


如果您使用了這個小腳本, 希望可以保留 lucy 的名字, 讓我們給他一個生命的延續(xù).
