收集了这么多实用技巧,帮助你的 iterm2 成为最帅的那个!

栏目: IT技术 · 发布时间: 4年前

内容简介:交代下为啥要开这么多个窗口,目前我们的应用是单机部署,一个服务部署在很多台 Linux 服务器上,构建分布式架构。(当然,我们也有日志监控平台,从 UI 上查询信息也很方便,但看过《鸟哥的 Linux 私房菜》后,感觉里面的命令十分有用,所以在排查问题时,更喜欢直接在终端进行信息统计(grep、awk、sed、wc 和正则表达式来一套),而且终端查询比网页查询更快,所以决定好好改造 iterm2 这个工具!

一个适合后端仔排查问题的 iterm2 终端应该是这样的:

收集了这么多实用技巧,帮助你的 iterm2 成为最帅的那个!

交代下为啥要开这么多个窗口,目前我们的应用是单机部署,一个服务部署在很多台 Linux 服务器上,构建分布式架构。( 实际上服务器数量比这个更多:-O

当然,我们也有日志监控平台,从 UI 上查询信息也很方便,但看过《鸟哥的 Linux 私房菜》后,感觉里面的命令十分有用,所以在排查问题时,更喜欢直接在终端进行信息统计(grep、awk、sed、wc 和正则表达式来一套),而且终端查询比网页查询更快,所以决定好好改造 iterm2 这个工具!

安装 zsh

iterm2 被称为 Mac 下最好用的终端软件,我觉得更重要的是它与 zsh 的结合,才让 iterm2 变得这么好用!

收集了这么多实用技巧,帮助你的 iterm2 成为最帅的那个!

在 github 官网上( https://github.com/ohmyzsh/ohmyzsh),它是这么介绍它的:

oh my zsh 是一个开放源代码,社区驱动的框架,用于管理zsh配置。

一旦完成安装,你的终端 shell 一定会成为村里最靓的那个仔(不是的话你可以找我退款!)

在命令提示符中进行每次输入,您都将利用数百个功能强大的插件和精美的主题。在咖啡馆时,会有陌生人找你,问你:“太好了!你是不是天才?”

当然,上面的介绍是 「谷歌专业翻译+个人渣翻译」,就是为了突出 zsh 的强大,下面来看下具体如何配置吧

个性化打造

关于 「iTerm2 + Oh My Zsh 打造舒适终端体验」 ,这篇文章已经说得很全面了: https://segmentfault.com/a/1190000014992947

我按照上面的提示和步骤,一步一步往下实践,也成功完成了自己的 iterm2 改造:

收集了这么多实用技巧,帮助你的 iterm2 成为最帅的那个!

来介绍下上面出现过的插件:

  • PowerLine:
    Powerline 是一个比较酷炫的状态栏工具,主要用于显示状态行和提示信息(上面蓝色的状态栏,当然还有其它主题,读者慢慢去发掘吧): https://github.com/powerline/powerline
  • PowerFonts:
    它是一个字体库,用来替换字体,有些主题需要字体的配合,所以从中选择一款好看且兼容主题的字体吧: https://github.com/powerline/fonts
  • Solarized 配色:
    原来的背景颜色是黑白的,看起来不够冲击力,所以可以从下面的调色板中,选择一款自己喜欢的配置: https://github.com/altercation/solarized
  • 选择主题样式:
    Robby 主题是默认的主题。但经过博主推荐,我也喜欢上了使用 agnoster 主题。更多主题选择截图请参考该链接: https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
  • highlighting:
    它是一个代码高亮插件,例如输入正确的 git 命令,字体颜色显示的是黄色,而输入 gti 错误命令时,它将显示红色。它能提前检查我们输入的命令是否正确,让我们得到更快提示: https://github.com/zsh-users/zsh-syntax-highlighting
  • autosuggestions:
    自动补全功能,它将会记录我们输入过的命令,用于建议和补全,例如效果图中,输入命令 cd ,按下方向右键,就能将命令补全,或者方向上下键,可以选择曾经定位过的路径: https://github.com/zsh-users/zsh-autosuggestions

由于博主写的图文并茂,每一步都有详细操作,我就不重复记录啦,建议大家好好看着步骤进行配置,也可以在每个步骤中选择自己喜欢的插件,做自己的个性化配置~

去掉提示前缀

在配置完后,终端的提示状态栏,存在着一长串前缀提示:xxxx@MacBook-Pro,它是每个人的电脑名字,如果遇到定位的路径长,加上主机名,一整行就放不下,于是找到了消除前缀的办法:

  • 定位到主题文件:

    打开「访达」,点击顶部状态栏「前往 -> 前往文件夹」(或者按快捷键 Shift + ⌘(command) + G),接着定位到该目录:~/.oh-my-zsh/themes/

收集了这么多实用技巧,帮助你的 iterm2 成为最帅的那个!

例如我选择的是 agnoster 主题,于是打开了 agnoster.zsh-theme 文件,然后在最底部的添加了注释符:

收集了这么多实用技巧,帮助你的 iterm2 成为最帅的那个!

加上 # 前缀后,注释掉上下文提示符,然后记得保存,接着打开新的终端窗口,就看不到长长的主机名啦~

免密登录

既然是远端 Linux 服务器,我们需要通过 SSH 进行登录,常用以下形式进行操作:

$ssh root@ip
#if you first login, alter this
The authenticity of host 'host (xxx)' can't be established.
...
Are you sure you want to continue connecting (yes/no)?

#after enter

[entery your password]

上面的 root 是登录角色,输入第一行后,如果是第一次登录,会提示你是否确认保存”公钥指纹”,点击回车后,就可以输入登录密码,然后登录。

使用公钥加密是为了 SSH 安全登录,具体加密算法和原理,可以查看该篇文章: SSH原理与运用(一):远程登录 http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html

可是每次都要进行这样重复的操作,输入 ssh 命令后还要继续输入密码,浪费了宝贵的三秒时间,于是找到了「免密登录」,输入指令后,不需要再输入密码。

原理

前面提到了“公钥”,ssh 提供了公钥登录,通过公钥登录可以不需要输入密码直接登录

公钥登录:

用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。 远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录 shell,不再要求密码。

操作

  • 客户端生成公钥
$ssh-keygen -t rsa

上述语句输入后,中途会提示你是否需要输入私钥,个人开发时比较少用到,所以可以直接回车,最后会提示你成功生成公钥和私钥。

具体文件生成路径在 ~/.ssh

├── authorized_keys     # 已认证的 key
├── id_rsa              # 生成的私钥
├── id_rsa.pub          # 生成的公钥,待会被复制过去的就是这个
└── known_hosts         # 已保存的公钥对应 ip 地址
  • 拷贝公钥到服务器
$ssh-copy-id -i id_rsa.pub root@ip

在本地终端上,输入 ssh-copy-id 命令,将本地公钥拷贝到远端服务器上,成功拷贝后,你将会在远端服务器上的 ~/.ssh/authorized_keys 文件上看到自己电脑的公钥信息。

接着下一次登录,直接输入 ssh 命令,不需密码就能直接登录到服务器~

使用脚本登录

如果有小伙伴的登录方式跟我们相似,是通过跳板机,服务器信息是通过跳板机管理和访问的,这样无法直接 ssh 连上远端服务器,这时候可以考虑这种方式,在 iterm2 的 profiles 界面,保存登录命令,通过 profile 直接登录。

  • 添加脚本

shell 脚本保存的目录可以自己设置,个人保存在了 /usr/local/bin/iterm2login.sh 文件下

$sudo vim /usr/local/bin/iterm2login.sh
#!/usr/bin/expect

set timeout 30
spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]
expect {
        "(yes/no)?"
        {send "yes\n";exp_continue}
        "password:"
        {send "[lindex $argv 3]\n"}
        "Password"
        {send "[lindex $argv 3]\n"}
}
interact%

保存后记得赋予该脚本可执行权限(由于在个人电脑,直接赋予了 777 权限(#^.^#))

$chmod 777 /usr/local/bin/iterm2login.sh
  • 保存 profile 信息

在这里设置配置文件信息

收集了这么多实用技巧,帮助你的 iterm2 成为最帅的那个!

左下角的 + 号,进行添加一个配置文件,接着在右边的 Command 栏,输入以下命令:

/usr/local/bin/iterm2login.sh port root ip password
字段名 含义
port 开放登录的端口号,常见的是 22
root 登录者角色
ip 远端服务器 ip
password 登录角色对应的密码

根据上述格式,可能输入如下:

/usr/local/bin/iterm2login.sh 22 root 127.0.0.1 123456

输入完成后,可以通过快捷键:⌘(command) + O(英文 O),调出配置信息,然后选择刚才保存的配置,iterm2 调用脚本后,会自动帮我们输入密码,进行登录。

  • 配置 Shortcut Key

在右侧,有一行 「Shortcut Keys」,点击下拉选择,可以选一个自己喜欢,而且与其它软件不冲突的快捷键。

例如我使用了 「⌘(command) + Shift + P」,这样可以快速的通过快捷键,直接就能进行登录~

rz、sz 上传下载

有时候想传点小 工具 到远端服务器,或者将服务器上的排查结果下载到本地进行分析,这时候就可以祭出我们的大杀器 rz、sz 脚本。

网上也有很多介绍和安装步骤,但是由于配置问题,弄了挺久,最后才成功配置,所以这次记录下自己的配置流程:

  • 安装 lrzsz

HomeBrew 是 mac 上一个很好用的包管理软件,如果没安装的话,可以使用以下命令安装:

$ruby -e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 拷贝脚本文件

定位到 /usr/local/bin 目录

下载下面地址的两个文件并放入 : https://github.com/Vip-Augus/Vip-Augus.github.io/tree/master/assets/iterm2

  • 添加权限
$cd/usrlocal/bin
$chmod 777 iterm2-*
  • 添加触发器

定位到 Perferences -> Profiles -> Advanced -> Triggers -> Edit

收集了这么多实用技巧,帮助你的 iterm2 成为最帅的那个!

左下角的 + 号,添加以下两个触发器:

一、SZ 命令
Regular expression: \*\*B0100
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-send-zmodem.sh

二、RZ 命令
Regular expression: \*\*B00000000000000
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-recv-zmodem.sh
  • 使用方式
#上传本地文件到服务器,直接输入 rz 命令,将会弹出文件选择框
$rz
#将服务器的文件发送到本地,输入 sz 命令,同时后面接上服务器的文件路径
$sz /{patch}/file.out

通过上面的配置方式,就可以愉快上传和下载文件了~

快捷键推荐

像一开始,在一个窗口打开过个 tab 页,是通过拖拽 tab 形式实现的:

收集了这么多实用技巧,帮助你的 iterm2 成为最帅的那个!

接着,在命令发送到所有窗口,是通过广播命令实现的,广播命令也分很多种,例如全部 window 的面板,或者是当前 window 的面板,我使用的是当前 window:

快捷键:「⌘(command) + Shift + i」

收集了这么多实用技巧,帮助你的 iterm2 成为最帅的那个!

使用广播命令,在一个窗口上输入指令,可以将它们发送到其它窗口上,实现多个服务器同时执行指令的功能。

还有更多快捷键,可以参考这篇文章: https://www.jianshu.com/p/a0249778872e


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

CSS揭秘

CSS揭秘

[希] Lea Verou / CSS魔法 / 人民邮电出版社 / 2016-4 / 99.00元

本书是一本注重实践的教程,作者为我们揭示了 47 个鲜为人知的 CSS 技巧,主要内容包括背景与边框、形状、 视觉效果、字体排印、用户体验、结构与布局、过渡与动画等。本书将带领读者循序渐进地探寻更优雅的解决方案,攻克每天都会遇到的各种网页样式难题。 本书的读者对象为前端工程师、网页开发人员。一起来看看 《CSS揭秘》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换