iterm2可以用ftp嗎
① mac下 iTerm2使用技巧
首先要比windwos下的shell terminal好看,這樣你才有動力,配色可以是Solarized或者是別的什麼,然後半透明,貼著屏幕上邊沿,然後設置一個快捷鍵呼出、隱藏。
最後,Windows 下的secureCRT和xshell支持rz和sz,雖然Linux下的scp會比rz和sz方便快捷,但是可能並不是直連伺服器,要經過堡壘機,因此scp就不適用了,此時需要通過rz和sz以輸入輸出的方式進行文件傳輸。
需要先安裝lrzsz,推薦用homebrew,可以直接brew install lrzsz
然後將iterm2-recv-zmodem.sh 和 iterm2-send-zmodem.sh腳本保存到 /usr/local/bin/
#!/bin/bash
# iterm2-recv-zmodem.sh
FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script ("echo "&(quoted form of POSIX path of thefile as Unicode text)&"")"`
if [[ $FILE = "" ]]; then
echo Cancelled.
# Send ZModem cancel
echo -e \x18\x18\x18\x18\x18
echo # Cancelled transfer
echo
else
echo $FILE
cd "$FILE"
/usr/local/bin/rz
echo # Received $FILE
echo
fi
#!/bin/bash
# iterm2-send-zmodem.sh
FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script ("echo "&(quoted form of POSIX path of thefile as Unicode text)&"")"`
if [[ $FILE = "" ]]; then
echo Cancelled.
# Send ZModem cancel
echo -e \x18\x18\x18\x18\x18
echo # Cancelled transfer
echo
else
echo $FILE
/usr/local/bin/sz "$FILE"
echo # Received $FILE
echo
fi
最後打開iTerm的Preferences,或者使用 command + , ,點進Profiles項,Advanced項,進入Tirggers,點擊Edit,添加兩條規則:
Regular expression: rz waiting to receive.**B0100
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-send-zmodem.sh
Regular expression: **B00000000000000
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-recv-zmodem.sh
至此,iterm2已經基本順手了,當然可能有同學說secureCRT和xshell可以保存連接信息、開代理,保存連接信息可以通過配置ssh config的alias來實現,但是大多數情況下有堡壘機的存在,所以就不常用了,而開socks代理可以通過ssh -N -f -D實現。
常用快捷鍵
⌘ + Click :可以打開文件,文件夾和鏈接
⌘ + n :新建窗口
⌘ + t :新建標簽頁
⌘ + w :關閉當前頁
⌘ + 數字 & ⌘ + 方向鍵 :切換標簽頁
⌥⌘ + 數字 :切換窗口
⌘ + enter :切換全屏
⌘ + d :左右分屏
⇧⌘ + d :上下分屏
⌘ + ; :自動補全歷史記錄
⇧⌘ + h :自動補全剪貼板歷史
⌥⌘ + e :查找所有來定位某個標簽頁
⌘ + r & ⌃ + l :清屏
⌘ + / :顯示游標位置
⌥⌘ + b :歷史回放
⌘ + f :查找,然後用 tab 和 ⇧ + tab 可以向右和向左補全,補全之後的內容會被自動復制, 還可以用 ⌥ + enter 將查找結果輸入終端
選中即復制,滑鼠中鍵粘貼
通用的Linux shell快捷鍵
⌃ + u :清空當前行
⌃ + a :移動到行首
⌃ + e :移動到行尾
⌃ + f :向前移動
⌃ + b :向後移動
⌃ + p :上一條命令
⌃ + n :下一條命令
⌃ + r :搜索歷史命令
⌃ + y :召回最近用命令刪除的文字
⌃ + h :刪除游標之前的字元
⌃ + d :刪除游標所指的字元
⌃ + w :刪除游標之前的單詞
⌃ + k :刪除從游標到行尾的內容
⌃ + t :交換游標和之前的字元
② 如何在iterm2中設置自動遠程登錄
當然,OS X上的終端可以使用iterm2,這樣配置後便利性不比$99的secureCRT差
首先介紹下不通過跳板機進行登錄的方式,准備:
1. 寫一個expect腳本
#!/usr/bin/expect
set timeout 30
spawn ssh [lindex $argv 0]@[lindex $argv 1]
expect {
"(yes/no)?"
{send "yes\n";exp_continue}
"password:"
{send "[lindex $argv 2]\n"}
}
interact
該腳本比較簡單,需要三個參數,第一個參數是遠程用戶名,第二個參數是遠程地址,第三個參數是密碼
2. 將expect腳本到$PATH下(例如/usr/local/bin)
3. 在iterm2中設置登錄命令為1中的腳本,用command+o的方式呼出profiles,點擊Edit Profiles
上面是已配置的遠程登錄機列表,雙擊可以自動登錄
如上圖配好後,即可自動登錄
下面再說下有跳板機的情況
俺公司的跳板機策略如下,不同公司的環境不一樣,也許某些同學可以進行參考
1.跳板機上不能存放任何文件,/tmp下可以方臨時文件,每天會定時清掉
2.文件方向只能是local->跳板機->remote的方向,即local可以push/pull跳板機上的文件,跳板機可以push/pull遠程上的文件
3.向跳板機登錄前需要通過郵件/簡訊的方式獲取passcode,這是除密碼之外的額外的驗證方式
其實跳板機的自動遠程登錄與非跳板機的差異在expect腳本的編寫上,其他的照搬即可,那這里就直接把代碼貼出來就行了
#!/usr/bin/expect
# 參數1:遠程host;參數2:遠程password
if { $argc != 2 } {
send_user "Usage: host password\n"
exit
}
set host [lindex $argv 0]
set pw [lindex $argv 1]
set TERMSERV yourjumpserver # 跳板機伺服器
set USER jumpserveruser # 用戶名
set PASSWORD jumperserverpasswd # 跳板機密碼
set fd [open /place/to/passcode r] # 本地存放passcode的地方
gets $fd pc
close $fd
# Start the session
catch {spawn ssh -l $USER $TERMSERV} # 登錄跳板機
# Login
expect "*assword:*" { send "$PASSWORD\r" }
expect "*passcode:*" { send "$pc\r" }
#通過跳板機登錄線上機器
expect "*hostname*" { send "ssh -l $USER $host\r" } # hostname為你跳板機的名字
expect {
"(yes/no)?"
{send "yes\n";exp_continue}
"*assword:*"
{send "$pw\n"}
}
expect "*$host*" { send "cd ~\r"; interact }
③ 蘋果電腦怎麼用ftp
1、首先我們打開Finder。