![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL6VFVOpXVU1ENJpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLzcjN4ETMzETM3ETNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
使用SecureCRT痛苦之後的崛起.
mac 系統上我一直少有發現一款好用的 ssh 工具, 免去我記住多個密碼的煩惱.
經過大量時間的尋找, 我發現了一款名為 SecureCRT 的工具, 可以在 mac 系統上使用, 的确可以免除我記住大量密碼的煩惱, 但是使用的痛苦也随之而來.
-
不存在清理螢幕的快捷鍵
經常登入伺服器進行測試環境的日志查閱, 這個時候, 界面上停留的可能有進入多少級目錄, 然後打了什麼指令, 已經其他很多無關緊要的東西在上面. 這個時候清理螢幕就顯的很重要, 但是 CRT 不支援. 隻能傻傻的通過工具欄上方的按鈕去清除螢幕.
-
vim 之後不能滾輪滑動
文字已經很能說明問題了, 我就不多贅述.
-
我自己的 Iterm2 上操作的很開心, 不能用他我就不開心
這一點尤為重要.
基于以上三個問題, 我決定翻出去年寫的那個已經不能用的腳本來搞好他.
之前的腳本存在幾個問題
-
不能展示出來清單
我目前存了多少個伺服器, 我記不住, 也不能展示出來
-
好端端的壞了
進入伺服器之後, 啥也不能幹.
通過網上苦苦的搜尋, 我找到一個朋友寫的一個東西非常棒. fork 了他的項目, 改編了一下, 使其能更好的适用于我的電腦.
此處感謝 AlicFeng 的文章給我的幫助, 此處是github 位址.
首先說說為什麼要重寫
- 電腦上下載下傳的時候總是提示需要管理者的權限, 但是已經使用了, 不厭其煩
- 廢了好多功夫弄到本地之後, 感覺不是太會用. 這一點很尴尬.
- 簡書評論區 2 樓回複的很好, 在此引用一下
-s 登入的時候,後面的編号并不是 ini 檔案中的 Index 項,而是取決于 shell 過濾出來的 ini 檔案順序
基于上面 3 點功能, 打算小小的改造一下.
首先解決重點解決第三個問題.
AlicFeng 之前使用的是集合, 順序得不到保證. 是以, 我在想, 是不是可以用 Map 類型來存儲.
經過查閱資料, 發現 Map 資料類型和 bash 相關, mac 下的 bash 是 3.x, 但是 Map 資料類型必須要 4.x 以上.
于是乎, 需要更新個 bash.
方法一: 更換系統的 bash, 需要重新開機電腦
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
然後重新開機電腦.
方法二: 直接下載下傳新的 bash, 無需重新開機電腦
打開 iterm2, 輸入指令
brew install bash
這個時候需要把下載下傳下來的 lucy 腳本的 "開頭"部分, 加上一小段說明
#!/usr/local/bin/bash
表示使用我們目前下載下傳下來的 bash, 而不是系統目錄下面的 bash
還是打開 iterm2, 這個時候, 安裝一個小插件, 讓界面更漂亮
brew install toilet
安裝好之後, 就進入了正文.
首先介紹下, 檔案路徑.
首先到~目錄下, 建立一個檔案夾
mkdir ssh-lucy
建立一個 servers 的檔案. (無字尾).
檔案中内容放入以下東西
#伺服器IP 賬号 密碼 端口 主機
實際最後放入的東西内容如下圖所示
最後的主機一列, 存放的是我們用于尋找登入哪個伺服器的名稱, 也就是我們存入 Map 中的 key, 可以自定義.
存好伺服器位址之後, 就可以使用我們真正的腳本.
伺服器腳本最後保留一個空行.
我給她起了一個非常人性化的名字, 也是我心心念念的名字"lucy"([人類的始祖](<https://en.wikipedia.org/wiki/Lucy_(Australopithecus))
從 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
效果如下:
如果您使用了這個小腳本, 希望可以保留 lucy 的名字, 讓我們給他一個生命的延續.