本来想录一个视频,来讲解相关知识,后来想想,这方面的知识,很多时候需要速查,视频不是很好索引。
这期说一些我日常作为一个“调参工程师”工作生活所用到一些工具——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安装真的太方便了……
安装方法:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
test -d ~/.linuxbrew && PATH="$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin:$PATH"
test -d /home/linuxbrew/.linuxbrew && PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH"
test -r ~/.bash_profile && echo "export PATH='$(brew --prefix)/bin:$(brew --prefix)/sbin'":'"$PATH"' >>~/.bash_profile
echo "export PATH='$(brew --prefix)/bin:$(brew --prefix)/sbin'":'"$PATH"' >>~/.profile
ZSH
什么是zsh,在我的理解就是一个就是一个代替bash的东西,什么是bash?就是一个可以被zsh替代的东西。像我在作为一个调参工程师之后,基本上不用再本地工作了,都是ssh到远程写代码改代码。如果成天面对本来的bash命令行,我可能要崩溃。
zsh可以干的
zsh命令行语法高亮
zsh历史命令自动补全
结合fzf更好的查找历史命令
(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
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
使用zsh,还需要配合很多常用的linux命令使用比如watch、alias、awk、sort等等配合管道、重定向食用。推荐一本书——linux命令行大全
Tmux
为什么要用tmux,他可以很好的管理窗口,同时在你重新连接ssh之后,也可以很方便的恢复回来。对我来说比较刚的刚需就是我可以很方便的在后台跑程序,不用像以前那样部署一个守护进程或者用nohup等不稳定的方式。tmux同样有oh my tmux,基本上不需要配置。
安装oh my tmux
rm -rf .tmux/
git clone https://github.com/gpakosz/.tmux.git
ln -s -f .tmux/.tmux.conf
cp .tmux/.tmux.conf.local .
管理窗口
恢复窗口
Ipython
ipython你们可能没听过,但是调过参的同学一定用过jupyter,jupyter的内核其实就是ipython,ipython的功能非常强大,支持命令行命令、语法高亮、更好的补全等等……
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配合之前几个工具一起使用,会极大的提升效率。
tmux 配合vim
Bonus
这篇文章的目的,不是为了详细的介绍,我相信你们用搜索引擎(关键字+教程)肯定有非常详细的介绍,所以我这里只是一个简单的启发式的文章,希望你们结合自己的生活工作,把自己的痛点需求往这几个工具上靠一靠,可能能满足你们的需求,如果不能满足,使用搜索引擎基本上可以找到满足需求的工具。这也是我写这篇文章第二个目的,工欲善其事,必先利其器,在有痛点需求的时候找找工具方法,说不定可以解放生产力,而不是用原始的笨办法。浪费自己时间。
还有一篇同学写的入门文章,比我详细,交代了使用动机,和基本方法。
同时,为了大家更好的上手,我这里提供了一份可以借鉴的配置脚本,如果碰到新的机器,基本上运行这个脚本,就可以把上述的所有的东西装好,不需要再一行一行输这些命令了。
https://github.com/maiff/init(内有readme帮助食用)