奇技淫巧用得工具指南(奇技淫巧工具命令用得跳板)「奇技是什么意思」

同时打开多个终端窗口,来回切换太麻烦
能不能像IDEA一样,能够查看历史粘贴记录?有没有办法一键登陆服务器?工欲善其事,必先利其器
无论工作还是学习,选择好用的工具真的太重要了
今天就给大家介绍一下笔者感觉相见恨晚的工具iTerm2,如果让我说日常开发中好用的工具有哪些,iTerm2必须拥有姓名
作为经常和Terminal打交道的工程师来说,对于自带的Terminal来说,Windows的命令行最难用,笔者一般使用XShell
入坑Mac后发现大家都在用iTerm2,半年下来感受只有两个字:真香
先赞后看,养成习惯,谢谢大家01 窗口管理窗口,当然是想怎么分就怎么分
和Mac原生的Terminal一个关键的区别就是iTerm2支持任意分割和创建窗口
热键Window首先,你可以设置一个打开iTerm窗口的快捷键,iTerm2->Perferences->Kes->Hotkey,这样就可以在打开时快人一步
如果已经打开了iTem2应用,就可以通过快捷键一键打开和隐藏
默认的Hotkey Window最大的特点就是透明和悬浮,它能够悬浮在任意窗口上面
普通Window新建Window:Command + N 关闭Window:Command + W 全屏:Command + Enter, 再按一次还原 展示所有窗口:Command + Option + e 关闭窗口:Command + w选项卡Tab新建标签:Command + t 关闭标签:Command + w 切换标签:Command + 数字 或者 Command + 左/右方向窗格Panes垂直分屏:Command + d 水平分屏:Command + shift + d 切换窗格:Command + Option + 方向键 或者 Command + 左右中括号02 即时回放除了窗口划分,Term2的另一杀手锏就是回放
不仅可以查看剪切板的历史记录,还能像视频一样回放窗口内的历史记录
历史剪切板对于普通文本编辑器来说,每次复制后都会覆盖之前的剪切板,非常不好用
而iTerm2提供了和IDEA一样查看历史剪切板功能,对于笔者这种CV工程师来说是相当友好了
快捷键:Command + Shift + h历史命令提示命令提示,能够提示最近输入的内容,以及常用的命令;需要注意的是,这里仅仅会输入过的内容,当然iTerm也有命令补全插件,后面会进行介绍
快捷键:Command + ;当然除了历史命令提示之外,也可以使用系统支持的方式来搜索和查看历史命令
上一条命令:Ctrl + p(previous) 或 向上方向键 下一条命令: Ctrl + n(next) 或 向下方向键 搜索历史命令:ctrl + r即时回放非常有意思的功能,像录屏一样,记录过去一段时间内窗口显示的内容
快捷键:Command + Option + b前进/后退:左右箭头/鼠标拖动进度条 退出回放:esc03 快捷功能智能复制在item中选中即复制,被选择的文本会自动保存在剪切板中
双击选中,三击选中整行,四击智能选择,可以智能地选中你想要的数据,如网址,邮箱,括号或引号中的数据等
同样也支持快速粘贴,鼠标选中复制后,可以通过鼠标中键或者Command+v进行粘贴
同时,选中后也可以通过拖拽实现快速的复制和粘贴
使用Command+f即可完成搜索,搜索后,通过Tab 或者 Tab + Shift可向右或向左扩大选中范围,完成复制
妙用CommandCommand既可以和其他按键组合成快捷键,也可以搭配鼠标实现一些快捷功能
只需要按下Command再搭配一下操作即可
点击url,调用默认浏览器访问该网址点击文件,调用默认程序打开文件
如果选中的是 文件名:数字,且默认文本编辑器是Mac vim 将会直接打开到这一行
点击文件夹,在Finder中打开该文件夹配合Optional键,使用鼠标可以选择矩形区域内容常用快捷键这些快捷键并非iTem2特有,也是非常基础的快捷键
当然最重要的是它们非常实用,几乎每天都会用到
清屏:Command + r 或者 ctrl + l 清除当前行:Ctrl + u 删除当前光标的字符:ctrl + d 删除光标之前的字符:ctrl + h 删除光标之前的单词:ctrl + w 删除到文本末尾:ctrl + k 交换光标处文本:ctrl + t 光标移动导行首:Ctrl + a 光标移动到行位:Ctrl + e04 一键登陆对于快捷登陆这种基本操作,iTerm2当然也能很好支持
只需要在将脚本配置到iTerm2->Preferences->Profiles->General中的Command输入框中,既可以是单行命令,也可以是Shell脚本文件
ssh + sshpassssh命令一般用来远程登陆Linux主机,不过需要两段式登陆,先输ssh连接命令,当服务器响应后再输入密码
要把两段式登陆合并成一步到位,只需要安装sshpass工具即可,sshpass用于非交互的ssh密码验证,允许你指定明文密码,然后配置ssh命令直接登录远程服务器
它支持密码从命令行,文件,环境变量中读取
三种用法如下:# 1. 密码sshpass -p {密码} ssh -p ${端口} {用户名}@{主机IP} # 2. 密码文本文件sshpass -f {密码文本文件} ssh -p ${端口} {用户名}@{主机IP} # 3. 环境变量# 配置环境变量export SSHPASS='my_pass_here'echo $SSHPASS# 登陆sshpass -e ssh username@192.168.0.1复制代码需要注意的是,为了防止密码显示在屏幕上,一般使用密码文件和环境变量的方式登陆
expect脚本工作中通常不能直接连线上服务器或数据库,而是需要先登陆跳板机,再通过跳板机连接线上服务器/数据库
这些就可以通过expect脚本来解决
expect 是用来进行自动化控制和测试的工具,主要是用来和ssh/talnet/ftp等这些交互式软件进行自动交互,比如远程自动输入密码,执行脚本等
expect的大致原理就是,首先spawn我们要执行的命令A,然后设置一个或多个预期命令A会输出的结果,根据设置匹配的结果选择接下来执行的分支,然后通过send命令执行后续命令,模拟键盘输入
假如我们要实现自动登录线上数据库,并查看所有数据表
具体步骤可以分为以下几步:登陆跳板机 通过跳板机登陆线上数据库 选择database,然后执行 show tables 命令以下是笔者提供一个简单的脚本程序模板:#!/usr/bin/expect -f# 脚本的参数,mysql服务器的登陆地址,密码,以及 选择数据库指令set loginCommand [lrange $argv 0 1]set passwd [lrange $argv 2 2]set script [lrange $argv 3 4]# 等待命令执行的超时时间,10sset timeout 10# 1. 登陆跳板机spawn ssh 用户名@跳板机的hostexpect { # 输入跳板机登陆密码(第1步指令执行完后,会输出xxx@xxx's password: 提示输入跳板机密码) "用户名@跳板机的host's password:" {send "跳板机密码\r"; exp_continue} # 2. 通过跳板机登陆数据库(笔者公司的跳板机登陆完成后,会提示输入INPUT:,提示输入要登陆的服务器ip) "INPUT:" {send "$loginCommand\r"; exp_continue} # 输入要登陆数据库的密码 "Enter password:" {send "$passwd\r" ; exp_continue} # 密码输入错误,退出(如果密码输入错误,提示文案中会出现ERROR字样) "ERROR" interact; # 3. 输入数据库指令 "Welcome to the MySQL monitor" {send "$script\r"; exp_continue} # 执行show tables指令 "Reading table information" {send "show tables;\r"}}interact复制代码Command中配置脚本文件和执行参数/Users/xxx/ssh_login.exp mysql yaccount_relay@xxaccount.db.xxx.com:3456 数据库密码 use dbzz_zzpayaccount复制代码执行配置文件,效果图:05 等你探索iTerm2支持很多自定义的个性化配置,还有有趣且实用的功能等着你去探索
如果你想让你的iTerm2外观变得炫酷的,更加极客
不妨看看这里www.jianshu.com/p/7de00c73a…篇幅有限,像密码管理器,输入(命令)广播等实用的功能还有很多,这里就不一一列举
据说每个程序员都有自己的一套葵花宝典,欢迎各位同学在留言区把你最顺手的工具分享给大家
奇技淫巧用得工具指南(奇技淫巧工具命令用得跳板)
(图片来源网络,侵删)

联系我们

在线咨询:点击这里给我发消息