研发效率破局之道
葛俊
前Facebook内部工具团队Tech Lead
立即订阅
3343 人已学习
课程目录
已完结 39 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 为什么你要关注研发效能?
免费
研发效能综述 (3讲)
01 | 效能模型:如何系统地理解研发效能?
02 | 效能度量:效果不好甚至有副作用,怎么回事?
03 | 效能度量:如何选对指标与方法,真正提升效能?
研发流程 (7讲)
04 | 流程优化:怎样才能让敏捷、精益真正为我所用?
05 | 代码入库前:Facebook如何让开发人员聚焦于开发?
06 | 代码入库到产品上线:Facebook如何使用CI/CD满足业务要求?
07 | 分支管理:Facebook的策略,适合我的团队吗?
08 | DevOps、SRE的共性:应用全栈思路打通开发和运维
09 | 信息流通:让团队高效协同,让产品准确击中目标
10 | 答疑篇:反对996并不是反对奋斗
工程方法 (10讲)
11 | 研发环境:Facebook怎样让开发人员不再操心环境?
12 | 代码审查:哪种方式更适合我的团队?
13 | 代码审查:学习Facebook真正发挥代码审查的提效作用
14 | 质量与速度的均衡:让“唯快不破”快得更持久
15 | 开源:从Phabricator的开源历程看开源利弊
16 | 高效上云:如何用云计算来提高效能?
17 | 测试左移:测试如何应对新的开发模式?
18 | 蓝绿红黑灰度发布:这些五颜六色的发布到底怎么用?
19 | 不再掉队,研发流程、工程方法趋势解读和展望
20 | 答疑篇:如何平衡短期收益和长期收益?
个人效能 (11讲)
21 | 高效工作:Facebook的10x程序员效率心法
22 | 深度工作:聚焦最有价值的事儿
23 | 效率工具:选对用对才能事半功倍
特别放送 | 每个开发人员都应该学一些VIM
24 | VIM:如何高性价比地学习VIM的实用技巧?
25 | 玩转Git:五种提高代码提交原子性的基本操作
26 | Facebook怎样实现代码提交的原子性?
27 | 命令行:不只是酷,更重要的是能提高个人效能
28 | 从工作场景出发,寻找炫酷且有效的命令行工具
29 | 1+1>2,灵活的工具组合及环境让你的工作效率翻倍
30 | 答疑篇:关于价值导向和沟通
管理和文化 (6讲)
31 | 业务目标和技术目标两手抓:怎样打造高效团队?
32 | 从Netflix公开的著名PPT谈硅谷公司文化
33 | Facebook企业文化:工程师文化是创造力引擎
34 | Facebook工程师文化实践三大支柱之一做感兴趣的事
35 | Facebook工程师文化实践三大支柱之二拥有信息和权限
36 | Facebook工程师文化实践三大支柱之三绩效调节
结束语 (1讲)
结束语 | 超越昨天的自己,享受成长的快乐
研发效率破局之道
登录|注册

28 | 从工作场景出发,寻找炫酷且有效的命令行工具

葛俊 2019-10-28
你好,我是葛俊。今天,我继续和你分享命令行工具的使用。
在上一篇文章中,我与你介绍了命令行环境中的终端、Shell,以及远程连接的设置,解决了环境配置的问题。今天,我们再来看看具体的命令行工具的使用技巧。我会根据常见的工作场景来组织这些工具,因为优化工作流程、提高效率才是学习工具的真正目的。
从我的经验来看,开发人员最常见的、使用命令行的场景主要包括两个:
日常的操作,比如文件夹跳转、处理和搜索文件夹和文件内容、查看和管理系统信息;
开发中常见的工作,比如 Git 的使用、API 调试、查看日志和网络状况等。
我会重点与你分享这些场景中有哪些推荐工具以及使用技巧。而至于这些工具如何安装的内容,网络上已经有很多了,我就不再详细描述了。

日常操作中的工具和技巧

关于日常操作,Linux/Unix 系统已经自带了一些工具,另外还有些产生已久、为我们所熟悉的工具。不过,要更高效地完成工作,我们还有更强大的工具可以选择。

第一个场景:列举文件夹和文件,查看文件

列举文件的默认工具是 ls。除此之外,一个常用的工具是 tree,可以列出文件夹的树形结构:
另外,还有些比 tree 更方便的工具,比如 alder 和 exa。exa 尤其好用,优点包括:
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《研发效率破局之道》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(7)

  • 我来也
    今天又学了些新东西.

    以前这些工具都是自己慢慢摸索,或机缘巧合看了某个文章提到了,自己才会去尝试下.
    现在一篇文章就接触这么多,还是蛮方便的.

    bat和fzf这个确实不错.
    特别是fzf,简单配置后更强大.
    我Mac下的几个配置可以给你们试试:
    ```
    # 设置样式 可以直接预览文件 也可以用快捷键执行简单的操作
    export FZF_DEFAULT_OPTS="--height 40% --reverse --border --prompt '>>>' \
        --bind 'ctrl-j:preview-down,ctrl-k:preview-up,ctrl-y:execute-silent(echo -n {2..} | pbcopy)+abort,?:toggle-preview' \
        --header 'C-j/k: preview down/up, C-y: copy, ?: toggle preview' \
        --preview '(highlight -O ansi -l {} 2> /dev/null || cat {} || tree -C {}) 2> /dev/null'"
    export FZF_CTRL_T_OPTS=$FZF_DEFAULT_OPTS
    export FZF_CTRL_R_OPTS="--preview 'echo {}' --preview-window hidden:wrap --bind '?:toggle-preview'"
    # 让Ctrl-R直接执行选中的命令
    fzf-history-widget-accept() {
      fzf-history-widget
      zle accept-line
    }
    zle -N fzf-history-widget-accept
    bindkey '^X^R' fzf-history-widget-accept
    ```

    作者回复: fzf 的preview功能的确好用。推荐大家可以试试 @我来也 的配置。

    fzf 的github页面上有一个视频链接,介绍fzf在命令行和VIM中的使用,很不错。也推荐大家看看。

    2019-10-28
    5
    2
  • Neo
    如何递归搜索当前文件夹内所有文件的全文

    作者回复: rg 默认就可以:
    > rg <needle>

    传统的办法是用find找到文件,然后用xargs把文件名传给grep命令:
    > find . -type f | xargs grep <needle>

    当然你可以用fd代替find,rp代替grep:
    > fd -t f | xargs rg <needle>

    needle 是你要找的字符串。

    2019-10-30
    1
  • 寻找自我
    tldr就是太长不想看,想给我一个例子让我运行起来。常用的场景都给例子出来,让人一看就懂。

    不知道会不会介绍thefuck。

    macos中finder用打开zsh并跳转到当前finder目录,也是很频繁的需求,有个Go2shell的工具也挺好用。

    作者回复: thefuck 我倒是装了,不过用的很少 :)

    跳转到当前finder目录,我用的是cdf命令https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/osx

    这个plugin还有几个其他命令也还不错。推荐看看

    2019-10-28
    1
  • 我愿化身石桥→_→
    老师,为什么我使用 fd 文件夹 | vim -
    使用 gF 跳转会报错
     E37: No write since last change

    作者回复: 这是因为VIMI默认要求当前文件保存之后才能切换到其他文件。改变这个设置,请使用 :set hidden

    2019-11-24
  • 苦行僧
    fzf 非常好用,还有一个是vim的浏览器插件

    作者回复: fzf 真的是厉害。再来一个例子:
    https://ddrscott.github.io/blog/2017/fzf-dictionary/

    2019-11-18
  • 我来也
    今天又找了个小技巧,跟文中的命令`fd index.md | vim -`功能类似.

    1.`fd index.md | xargs -o vim`
       遇到带空格的文件名会出问题

    2.`find . index.md -exec vi {} +`
      可以正确处理带空格的文件名

    这两个命令都是直接打开指定文件, 就不用再用`gF`打开当前某一行的文件了.
    参考:
    https://superuser.com/questions/335999/how-can-i-edit-all-the-files-returned-by-find-in-vi-in-linux

    作者回复: 如果我们需要打开每个文件,的确更方便!另外一个办法是还可以使用fzf的preview功能 :)

    2019-10-30
  • Robert小七
    文章的工具是否可以列出包名,我试着用yum安装,几乎都是找不到了用的包!

    作者回复: 我一般也都是问也搜索具体的安装方式的 😅 你先试试搜索,找不到的告诉我,我们一起看看

    2019-10-28
    1
收起评论
7
返回
顶部