mac下 iTerm2使用技巧

windows下使用secureCRT和xshell习惯了,如何在mac下过渡到iTerm2?

首先要比windwos下的shell terminal好看,这样你才有动力,配色可以是Solarized或者是别的什么,然后半透明,贴着屏幕上边沿,然后设置一个快捷键呼出、隐藏。

其次是把默认的shell换成zsh,会比bash方便不少,当然就ssh而言因为主要操作在服务器上,所以改观并不明显。同样可以使用oh-my-zsh,加载不同的zsh配置以获得一些酷炫的效果。

官网是http://ohmyz.sh/

最后,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 :交换光标和之前的字符

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-03

首先要比windwos下的shell terminal好看,这样你才有动力,配色可以是Solarized或者是别的什么,然后半透明,贴着屏幕上边沿,然后设置一个快捷键呼出、隐藏。

其次是把默认的shell换成zsh,会比bash方便不少,当然就ssh而言因为主要操作在服务器上,所以改观并不明显。同样可以使用oh-my-zsh,加载不同的zsh配置以获得一些酷炫的效果。

官网是http://ohmyz.sh/

最后,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 :交换光标和之前的字符

相似回答