内容简介:交代下为啥要开这么多个窗口,目前我们的应用是单机部署,一个服务部署在很多台 Linux 服务器上,构建分布式架构。(当然,我们也有日志监控平台,从 UI 上查询信息也很方便,但看过《鸟哥的 Linux 私房菜》后,感觉里面的命令十分有用,所以在排查问题时,更喜欢直接在终端进行信息统计(grep、awk、sed、wc 和正则表达式来一套),而且终端查询比网页查询更快,所以决定好好改造 iterm2 这个工具!
一个适合后端仔排查问题的 iterm2 终端应该是这样的:
交代下为啥要开这么多个窗口,目前我们的应用是单机部署,一个服务部署在很多台 Linux 服务器上,构建分布式架构。( 实际上服务器数量比这个更多:-O )
当然,我们也有日志监控平台,从 UI 上查询信息也很方便,但看过《鸟哥的 Linux 私房菜》后,感觉里面的命令十分有用,所以在排查问题时,更喜欢直接在终端进行信息统计(grep、awk、sed、wc 和正则表达式来一套),而且终端查询比网页查询更快,所以决定好好改造 iterm2 这个工具!
安装 zsh
iterm2 被称为 Mac 下最好用的终端软件,我觉得更重要的是它与 zsh 的结合,才让 iterm2 变得这么好用!
在 github 官网上( https://github.com/ohmyzsh/ohmyzsh),它是这么介绍它的:
oh my zsh 是一个开放源代码,社区驱动的框架,用于管理zsh配置。
一旦完成安装,你的终端 shell 一定会成为村里最靓的那个仔(不是的话你可以找我退款!)
在命令提示符中进行每次输入,您都将利用数百个功能强大的插件和精美的主题。在咖啡馆时,会有陌生人找你,问你:“太好了!你是不是天才?”
当然,上面的介绍是 「谷歌专业翻译+个人渣翻译」,就是为了突出 zsh 的强大,下面来看下具体如何配置吧
个性化打造
关于 「iTerm2 + Oh My Zsh 打造舒适终端体验」 ,这篇文章已经说得很全面了: https://segmentfault.com/a/1190000014992947
我按照上面的提示和步骤,一步一步往下实践,也成功完成了自己的 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/
例如我选择的是 agnoster 主题,于是打开了 agnoster.zsh-theme 文件,然后在最底部的添加了注释符:
加上 # 前缀后,注释掉上下文提示符,然后记得保存,接着打开新的终端窗口,就看不到长长的主机名啦~
免密登录
既然是远端 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 信息
在这里设置配置文件信息
左下角的 + 号,进行添加一个配置文件,接着在右边的 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
左下角的 + 号,添加以下两个触发器:
一、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 形式实现的:
接着,在命令发送到所有窗口,是通过广播命令实现的,广播命令也分很多种,例如全部 window 的面板,或者是当前 window 的面板,我使用的是当前 window:
快捷键:「⌘(command) + Shift + i」
使用广播命令,在一个窗口上输入指令,可以将它们发送到其它窗口上,实现多个服务器同时执行指令的功能。
还有更多快捷键,可以参考这篇文章: https://www.jianshu.com/p/a0249778872e
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- CSS实用技巧
- CSS实用技巧干货
- Python实用技巧,你不知道的7个好玩的Python技巧
- Kubernetes 实用技巧: 使用 ksniff 抓包
- 你可能不知道的 npm 实用技巧
- 高性能网站实用技巧之消息队列篇
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python语言及其应用
[美] Bill Lubanovic / 丁嘉瑞、梁杰、禹常隆 / 人民邮电出版社 / 2016-1 / 79.00元
本书介绍Python 语言的基础知识及其在各个领域的具体应用,基于最新版本3.x。书中首先介绍了Python 语言的一些必备基本知识,然后介绍了在商业、科研以及艺术领域使用Python 开发各种应用的实例。文字简洁明了,案例丰富实用,是一本难得的Python 入门手册。一起来看看 《Python语言及其应用》 这本书的介绍吧!
RGB转16进制工具
RGB HEX 互转工具
XML 在线格式化
在线 XML 格式化压缩工具