标签:软件推荐 应该 active charles nal blog gif 取数据 epo
原创 码农唐磊 程序猿石头 1周前一个在阿里云打工的清华学渣!
图 by:石头
cmd + , : 设置
cmd + -/=: 缩小/放大
ctrl + u: 删除到行首(与zsh冲突, zsh中是删除整行)
ctrl + k: 删除到行尾
ctrl + p/n: 上/下移动一行或者前/后一个命令
ctrl + b/f: 光标前/后移char
esc + b/f: 光标前/后移word(蛋疼不能连续work)
ctrl + a/e: 到行首/行尾
ctrl + h/d: 删前/后字符
ctrl + y: 粘贴
ctrl + w: 删除前一个单词
esc + d: 删后一个单词
ctrl + _: undo
ctrl + r: bck-i-search/reverse-i-search,输入关键字搜索历史命令
上面的这些快捷键特别是在敲命令时还是很有用的(可能有的确实是在命令行中才生效),特别是结合 zsh 自动补全等功能。
比较 DT 的是就是 esc 一起用的时候,不能连续使用。举个例子,Terminal 中输入了 git push origin source,光标在末尾,这时按住ctrl 不放, 按一下 w 即向前删除一个单词,第一次按 w 删除 source,再按 w 删除 origin。而 esc + d 不能这样结合使用(如下 gif 连续按就不 work),esc 必须中途释放再按才能 work。不知道是不是石头使用的姿势不对,有知道的朋友,还帮忙指出一下啊。
bash自动补全
啥?你说上面快捷键 ctrl + w 等不太好按?按键特别别扭?
你需要做的就是将 caps lock 映射为 ctrl, Keyboard -> Modifier Keys修改,目前我笔记本上的 ctrl 键无效。不过,一般情况下我用我的 HHKB,这种映射方式正好符合 HHKB 的布局。其实石头是在买 HHKB 之前就修改的这个映射,所以切换自如。
另外,借助之前介绍的Karabiner,可以将一些常用的方向键(上下左右)重新映射一下, 比如我目前是 s + h/j/k/l 来表示方向,手不用太移动就能直接按方向(HHKB 本身按方向太麻烦, Mac 内置键盘有方向键还需要大幅度移动手),用起来方便多了。
Mac 内置的更多的快捷键列表可以参考 Mac 官网[1]
其他还有一些常用的软件的快捷键,可以用之前介绍的软件 cheetsheet,长按 cmd, 可弹出当前 active 的软件的快捷键。
截图
这个从快捷键中单独列出来了,就强调下这个功能。
cmd + shift + 3 截取整个屏幕。cmd + shift + 4 部分窗口,出现十字供选取,若此时按空格键(这个技能得点赞),会选取当前应用的窗口,再 tap 即可完成截图。
上面快捷键是截图后以文件形式保存在桌面(默认是桌面,当然你也可以自己修改保存位置), 在上面快捷键基础上再同时按 ctrl 就会把图片保存在内存/剪贴板中,直接去相应窗口粘贴即可。
home brew
类似 Centos 的 yum, Ubuntu 的 apt-get,能够方便管理安装软件包。Mac 上类似的应用还有port, 我刚开始试用过 port,貌似 brew 上的源会多一些。
brew-cask 是 brew 的一个加强版,可以安装一些桌面应用,例如 Chrome 等等之类。
这里就不多介绍了,详情可以到官网查看:
? brew[2]
? brew-cask[3]
iTerm2
iTerm2官网[4]有介绍功能。以下是觉得可能常用的功能。
alias gs=‘git status‘
alias gb=‘git branch -va‘
alias gco=‘git checkout‘
alias ga=‘git add‘
alias gc=‘git commit -m‘
alias gp=‘git push‘
alias gfom=‘git fetch origin master‘
alias gfod=‘git fetch origin develop‘
alias grod=‘git rebase origin/develop‘
alias grom=‘git rebase origin/master‘
? app-in-mac git:(source) ? subl dungeon-game.cpp
? app-in-mac git:(source) ? which subl
/usr/local/bin/subl
? app-in-mac git:(source) ? ls -la /usr/local/bin/subl
lrwxr-xr-x 1 tanglei admin 62 1 24 2016 /usr/local/bin/subl -> /Applications/Sublime Text.app/Contents/SharedSupport/bin/subl
Vim
介绍 Vim 的文章也很多了,这里就不详细展开了。分享下石头用的部分插件。为了让多台电脑同步我的 vim 配置/插件等,我直接放 github 了(ref vimconfigs[7]),不同电脑只需要再建一个软链到github 中的 vimrc 即可。
vim 自动补全
? Vundle/Pathogen: 插件管理,我用的Pathogen,直接将下面 github repo clone 到 ~/.vim/bundle/ 目录下即可。
? NERDTree: 文件目录树 NERDTree[8]
? YouCompleteMe: YouCompleteMe[9] 自动补全,对C系列,结合其他的可支持 Java/Python/Js 等, 跪求 Scala 支持
? ctrlp.vim: 快速搜索文件 ctrlp[10]
? minibufexpl.vim: 会把最近打开的文件列出来方便跳转,minibufexpl.vim github src[11]
? conque-term: shell 跑在 vim 里面, conque-term github src[12]
? ag: 代码搜索, 可结合 ctrlp.vim,如果后者搜索太慢的话, ag github src[13]
? tagbar/taglist: 标签,能显示类结构信息等,tagbar github src[14]
? vim-surround: 处理诸如 (), "", [] 等配对信息,[vim-surround github src](https://github.com/tpope/vim-surround.git] 等配对信息,[vim-surroundgithub src" "]` 等配对信息,[vim-surround github src"), vim-surround ref[15]
? vim-easymotion: 快速跳转,关键字后会给匹配到的标记,再选标记并跳转(类似后文介绍 Chrome 插件的Vimium中的链接标记并跳转功能,按键 f 会将本文所有链接突出显示并用字母标记,然后按相应的字母则会新开标签页打开)。vim-easymotion github src[16],vim-easymotion ref[17]
? vim-powerline: 增强状态栏 vim-powerline github src[18]
? vim-indent-guides: 缩进可视化,vim-indent-guides github src[19]
具体效果等配置方法可以参考下面的两篇文章,插件具体用法可阅读具体插件的 doc。
Reference
? 将你的 Vim 打造成轻巧强大的IDE[20]
? 所需即所获:像 IDE 一样使用 vim[21]
Dash
其实介绍前文 介绍 Alfred 已经提到过,这里再介绍一下,程序猿必备神器。
内置各种语言,各种环境的各种文档。该 App 还提供各种 API 供其他工具交互使用。例如 Vim(不是想象当中自动补全功能,只是能够快捷地搜索 API), Sublime 等。 (p.s 要是有人写了一个 Vim 插件,能够支持调用 dash 的 API(如果有的话) 自动补全代码, 那应该会很受欢迎的)
dash 搜索 API
dash
其他App
chrome
插件
? AdBlock: 广告屏蔽;
? EditThisCookie: 修改 cookie;
? Evernote Web Clipper: 印象笔记;
? JSONView and JSONLint for Google Chrome?: 请求返回的json进行beautify方便查看;
? Markdown Here: 在富文本输入markdown, 渲染成 html;
? Markdown Preview Plus: 渲染 .md 文件,相当于 preview markdown;
? Open Screenshot: 网页截图,能够自动下拉截长图;
? Postman: 请求伪造/抓包等,也可以用curl;
? Proxy SwitchySharp: proxy 切换;
? RescueTime: 前文有介绍的RescueTime;
? undirect: google/baidu 搜索结果,点击直达网站,这个貌似不太好用了。征求替代品;
? Vimium: 操作 vim 一样操作浏览器,移动查找等功能,还有前文提到的快速标记链接并跳转;
Charles
类 Windows 下 Fiddler 抓包应用。
相关命令 tcpdump
其他有用的命令行
一些好用的命令(基本的什么ls/cd/cp/rm之类的这里就直接忽略了),我觉得作为程序猿还是应该了解,至少只当某个场景下直接用相应的命令就能解决。具体参数可以再 --help 或者man commond 再看。
? screen: 特别是 ssh 到登录远程时用以管理会话
? curl: 网络请求, 相关的还有 traceroute, dig 等
? find: 文件查找
? grep/zgrep/zcat: 查看日志的时候用
? awk: 这个本身就很强大了,具体编程语法不用太掌握但可以了解一些基本的用法,帮助你拼接一些语句。比如石头常用来批量拼接一些 SQL 语句。
? sed: 文本替换,还有 tr,注意 sed 的语法 Mac 和 一般 Linux 还有些不一样( 比如原文替换的时候 mac 里需要用参数 -i ""), 比如之前石头迁移 wordpress 到 jekyll[22] 上的时候需要将一些链接整体替换成新的路径。
? cut: 按列取数据,awk 也可以
? sort: 这个就不多说了
? uniq: 一般和 sort 一块用,只能去重相邻的行
? diff: 比较文件,类似的还有 comm (输出3列,分别是: 只在文件1, 只在文件2 和两个文件都在的行)
? paste: 两个文件按列拼接
? od: 以16/8/2进制查看文件
? wc: 统计文件字节数/字数/行数
结合这些命令可能就能完成某些复杂的功能,举个例子:
如线上的web 访问日志会记录 请求时间,请求路径,参数 等等。现在需要统计当天请求路径为 A,排名前10的参数,就可以 grep 路径A | cut 取出想要的数据列 | sort | uniq 之类的。
或者比如统计 http 404 请求最多的10个路径。再比如,随机生成3个长度为8包含字母数字的字符串(偶尔会用到,比如各种生产 secret key 的时候),直接用如下命令即可
? _includes git:(source) ? cat /dev/urandom | sed ‘s/[^a-zA-Z0-9]//g‘ | head -n 3 | cut -c 1-8
MaL6nEmZ
00m2Ub19
rsc4AOQm
石头之前写过一篇综合应用,就是用 shell 脚本来完成一些统计功能。文章在这里"大数据"分析首批北京积分落户同学,文中介绍了如何根据一个 json 文件如何快速统计取得户口名额最多的top10公司,获取取得户口名额的人中姓氏最多的等等。
其他的可能较少用,但一旦用,能省不少时间。网上也有一些 online 的工具,但哪有这个快准狠。
? openssl sha1/aes-256-ecb/des/base64 等等: 比如经常要和其他服务联调,有验证签名等,就可以临时用 shell 写个脚本,验证一下看看 API 的返回值和效果。
? md5/base64: 常见的 md5,base64 编码。
? sips: scriptable image processing system 比如批量处理图片大小,压缩等等。
后记
公众号不能有外链,文中上述引用链接,石头都附在后文的参考资料中了,大家可以按需访问。
另外觉得本号分享的文章有价值,记得添加星标哦。周更很累,不要白 piao,需要来点正反馈,安排个 “一键三连”(点赞、在看、分享)如何? 这将是我持续输出优质文章的最强动力。
关于作者:程序猿石头(ID: tangleithu),现任阿里巴巴技术专家,清华学渣,前大疆后端 Leader。用不同的视角分享高质量技术文章,以每篇文章都让人有收获为目的,欢迎关注,交流和指导!
推 荐 阅 读
工欲善其事,必先利其器 -- Mac 软件推荐(序)
有了这几个神器,瞬间逼格就上去了
面试官:会玩牌吧?给我讲讲洗牌算法和它的应用场景吧!
面了 7 轮 Google,最终还是逃不脱被挂的命运
从一道面试题谈谈一线大厂码农应该具备的基本能力
参考资料
[1]
Mac 官网: https://support.apple.com/zh-cn/HT201236
[2]
brew: http://brew.sh/
[3]
brew-cask: https://caskroom.github.io/
[4]
iTerm2官网: http://www.iterm2.com/features.html
[5]
oh my zsh: http://ohmyz.sh/
[6]
sublime官网: http://www.sublimetext.com/
[7]
ref vimconfigs: https://github.com/tl3shi/vimconfigs.git
[8]
NERDTree: https://github.com/scrooloose/nerdtree.git
[9]
YouCompleteMe: https://github.com/Valloric/YouCompleteMe
[10]
快速搜索文件 ctrlp: https://github.com/ctrlpvim/ctrlp.vim
[11]
minibufexpl.vim github src: https://github.com/fholgado/minibufexpl.vim.git
[12]
conque-term github src: https://github.com/tl3shi/conque-term.git
[13]
ag github src: https://github.com/rking/ag.vim.git
[14]
tagbar github src: https://github.com/majutsushi/tagbar.git
[15]
vim-surround ref: http://zuyunfei.com/2013/04/17/killer-plugin-of-vim-surround/
[16]
vim-easymotion github src: https://github.com/easymotion/vim-easymotion.git
[17]
vim-easymotion ref: http://www.wklken.me/posts/2015/06/07/vim-plugin-easymotion.html
[18]
vim-powerline github src: https://github.com/Lokaltog/vim-powerline.git
[19]
vim-indent-guides github src: https://github.com/nathanaelkane/vim-indent-guides
[20]
将你的 Vim 打造成轻巧强大的IDE: http://yuez.me/jiang-ni-de-vim-da-zao-cheng-qing-qiao-qiang-da-de-ide/
[21]
所需即所获:像 IDE 一样使用 vim: https://github.com/yangyangwithgnu/use_vim_as_ide
[22]
石头迁移 wordpress 到 jekyll: https://www.tanglei.name/blog/give-up-wordpress-to-jekyll.html
标签:软件推荐 应该 active charles nal blog gif 取数据 epo
原文地址:https://blog.51cto.com/14890678/2516408