介紹html
配置linux
有時候在服務器上有個文件之類的,很想下載到本地,可是又沒有順手的東西。命令行或者其餘的軟件之類的雖然能搞定,不過用的很少的話還要本身去拼命令或者開軟件作鏈接找到對應的目錄很麻煩。新版的 iTerm (3.0) 經過 Shell Integration 實現了着樣的功能:git
ls
一下,而後就能夠直接右鍵文件名下載本地了。感受酷酷的,有時候真的很方便。shell
主要是下面兩步bash
安裝 Shell Integration服務器
配置一些 ssh 的參數ssh
注意這裏的安裝須要在遠程的服務器上安裝的。(固然本地也能夠安裝,只是此次的 scp 下載用到的是 Remote Host 上安裝。)curl
安裝gitlab
$ curl -L https://iterm2.com/misc/install_shell_integration.sh | bash
在啓動腳本中添加(bash 的 .bashrc,zsh 的 .zshrc,有時候安裝腳本會本身添加上,若是添加了就不用再添加了)url
source ~/.iterm2_shell_integration.`basename $SHELL`
完成後從新登錄下,或者手動 source 一下那個文件,當命令行最左邊出現小的藍色三角形的時候就是成功了,這時候 ls 到文件就能夠右鍵下載了。(本地的話能夠按住 cmd
並單擊文件能夠打開文件)
可是這時候大概是會失敗的,由於它其實本質執行的仍是 scp 的命令,只不過是經過 shell integration 能夠多得到一些信息從而幫忙拼出那個命令並執行而已。
$ scp -P<port-number> <user-name>@<host-name>:<file-path> <local-path>
比較關鍵的是 host-name 和 port-number。
首先說 host-name,由於機器的 host-name 通常並不能直接 DNS 解析出來,因此會有問題。這時候就能夠參考本身 ssh 登錄的時候的 host-name 了。
在以前添加 source ~/.iterm2_shell_integration...
的位置的前面添加:
export iterm2_hostname=<hostname>
export 一個 ssh 使用的 hostname 就行了。
這時候發現 scp 的時候已是正確的 hostname 了,可是它用的 port 還不對。
由於 scp 最終要從本地執行,因此最後這個設置也是在本地的。在本地的 ~/.ssh/config
中按需添加記錄和對應的設置參數。
Host <host-name> User <user-name> Port <port> IdentityFile ~/.ssh/<file>
這個也設置了以後通常就成功了!