本来想录一个视频,来讲解相关知识,后来想想,这方面的知识,很多时候需要速查,视频不是很好索引。

这期说一些我日常作为一个“调参工程师”工作生活所用到一些工具——linuxbrew、zsh、tmux、Ipython、pdb/ipdb、vim(vscode remote)、。

为什么要写下这篇文章呢?一是为了自己做一个记录,二是为了以后朋友问我相关问题,我可以直接甩一篇文章给他。

首先感谢@sleepyBag,谢谢他给的启蒙,和借我抄的配置。

linuxbrew

用过mac的同学肯定知道有brew这种东西,装什么东西,直接输入brew install xxx非常方便,linux下也有一个东西叫linuxbrew,安装完成之后也可以brew install xxx。你可能会说,一般linux比如ubuntu不是有apt,但是很多情况下,给到我们手上的计算资源没有root权限,同时brew安装真的太方便了……

安装方法:

  1. sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
  2. test -d ~/.linuxbrew && PATH="$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin:$PATH"
  3. test -d /home/linuxbrew/.linuxbrew && PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH"
  4. test -r ~/.bash_profile && echo "export PATH='$(brew --prefix)/bin:$(brew --prefix)/sbin'":'"$PATH"' >>~/.bash_profile
  5. echo "export PATH='$(brew --prefix)/bin:$(brew --prefix)/sbin'":'"$PATH"' >>~/.profile

ZSH

什么是zsh,在我的理解就是一个就是一个代替bash的东西,什么是bash?就是一个可以被zsh替代的东西。像我在作为一个调参工程师之后,基本上不用再本地工作了,都是ssh到远程写代码改代码。如果成天面对本来的bash命令行,我可能要崩溃。

zsh可以干的

如何当一个合格的调参工程师——工具篇 - 图1

zsh命令行语法高亮

如何当一个合格的调参工程师——工具篇 - 图2

zsh历史命令自动补全

如何当一个合格的调参工程师——工具篇 - 图3

结合fzf更好的查找历史命令

  1. (git git-open fzf zsh-syntax-highlighting tmux vi-mode extract rand-quote themes per-directory-history zsh-autosuggestions)

我用的一些插件

当然zsh还有很多别的很多功能,基本上依赖他的插件系统,有需求,有兴趣可以自己去找一下。基本上把需要的插件写到.zshrc配置里就好。可以说用过zsh就不会再想用bash,一般碰到一台新机器装完linuxbrew,就会直接装zsh,然后装oh my zsh,再把以前的配置文件复制过来,基本上就是一个好用不的不得了的终端了。

安装oh my zsh

  1. sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

使用zsh,还需要配合很多常用的linux命令使用比如watch、alias、awk、sort等等配合管道、重定向食用。推荐一本书——linux命令行大全

如何当一个合格的调参工程师——工具篇 - 图4

Tmux

为什么要用tmux,他可以很好的管理窗口,同时在你重新连接ssh之后,也可以很方便的恢复回来。对我来说比较刚的刚需就是我可以很方便的在后台跑程序,不用像以前那样部署一个守护进程或者用nohup等不稳定的方式。tmux同样有oh my tmux,基本上不需要配置。

安装oh my tmux

  1. rm -rf .tmux/
  2. git clone https://github.com/gpakosz/.tmux.git
  3. ln -s -f .tmux/.tmux.conf
  4. cp .tmux/.tmux.conf.local .

如何当一个合格的调参工程师——工具篇 - 图5管理窗口

如何当一个合格的调参工程师——工具篇 - 图6

恢复窗口

Ipython

ipython你们可能没听过,但是调过参的同学一定用过jupyter,jupyter的内核其实就是ipython,ipython的功能非常强大,支持命令行命令、语法高亮、更好的补全等等……

如何当一个合格的调参工程师——工具篇 - 图7

pdb/ipdb

因为我相信大部分“调参工程师”都是写python的,我相信大部分人都是print调试法,pdb是一个打断点的方法,只要在需要打断点的地方import pdb; pdb.set_trace(),ipdb就是把pdb换成ipdb就好,用过调试代码的时候基本上也不会用print了。

vim(vscode remote)

最后说的比较争议的东西。远程连接服务总归是需要编辑的工作。vim是命令行里的编辑器,拥有非常陡峭的学习曲线,我高中就接触过,知道我研一才觉得好用,可想而知……我现在一般直接vim配合space vim,懒人方法。不过我不推荐新手用vim,因为我最近发现vscode remote对于新手更好用。但是vim配合之前几个工具一起使用,会极大的提升效率。

如何当一个合格的调参工程师——工具篇 - 图8

tmux 配合vim

Bonus

这篇文章的目的,不是为了详细的介绍,我相信你们用搜索引擎(关键字+教程)肯定有非常详细的介绍,所以我这里只是一个简单的启发式的文章,希望你们结合自己的生活工作,把自己的痛点需求往这几个工具上靠一靠,可能能满足你们的需求,如果不能满足,使用搜索引擎基本上可以找到满足需求的工具。这也是我写这篇文章第二个目的,工欲善其事,必先利其器,在有痛点需求的时候找找工具方法,说不定可以解放生产力,而不是用原始的笨办法。浪费自己时间。

还有一篇同学写的入门文章,比我详细,交代了使用动机,和基本方法。

http://maiff.gitee.io/home/

同时,为了大家更好的上手,我这里提供了一份可以借鉴的配置脚本,如果碰到新的机器,基本上运行这个脚本,就可以把上述的所有的东西装好,不需要再一行一行输这些命令了。

https://github.com/maiff/init(内有readme帮助食用)