效率提升指南(一) 工作篇(上)
2021-11-18 17:13:11 # 学习

工具清单

  • vscode及其插件

  • python环境管理

  • 常用shell工具

  • listary + quicker + utools 百宝箱

  • 磁盘管理工具

  • 文本编辑工具(except vscode)

VSCODE

世界最强IDE没有之一,真正的生产力利器。vscode本身已经不用再介绍,直接从插件讲起。

REMOTE SSH

远程ssh,可以直接拿vscode远程连接服务器,不仅有资源管理器,而且远程安装vscode以后,装上语言服务器,代码跳转不是梦。一边用着终端,一边可以实时浏览代码进行修改。

Jupyter notebook

装上vscode的jupyter插件之后,基本就可以闲置之前的jupyter网络服务了,不用像之前卡在一个工作区里,可以实时编辑ipynb文件,并且有更好的交互式体验,还可以直接在cell里debug。

image-20211118173053231

draw.io

绘制矢量图神器,啥都能画,开源免费,吹爆!

image-20211118173034149

Tabnine

AI引擎代码补全,挺好用的,省事。

VIM

很多人吹vim好用,我个人也觉得vim不需要鼠标的设计很爽,用的很舒服,所以我不做人了,我直接在vscode里用vim插件!

ps:后来发现有些快捷键很蛋疼,所以我直接用了AutoHotKey改了键盘映射(caps+hijk代替原本的上下左右,alt+hl代替ctrl 加左右,毕竟我只是个vim轻度用户orz)

快捷键

VSCODE有很多很多的快捷键,而对每个插件还有更多更多的快捷键,而同样的快捷键在不同的工作区和聚焦点有不同的作用,所以贼鸡儿好用!后续会放上我自己的快捷键json

vscode的设计思路好像就是万物皆json

调试

我一般只用vscode写python和c++

python调试一般是跑大预训练模型的微调,是以执行shell脚本的方式运行的,但由于配置调试的launch.json很难受,所以我采取另一种方式,在远端服务器上装debugpy这个库 然后在脚本里加上 -m debugpy –listen localhost:端口号。

image-20211118173958020

然后还需要vscode里添加对应的调试配置,点添加调试配置,然后选Python:attach,再在json里设置一下刚刚的端口号,就可以直接debug了

image-20211118173958020

image-20211118173958020

而c++ debug一般要更麻烦,如果是单文件还好,直接用默认的就可以,多文件大项目的话,一般有自己的cmake脚本和make脚本,配置好默认的prelaunch task后还要配对应的参数。我一般用gdb调试,生成二进制之后,用gdb运行,vscode跟踪gdb进程号的方式调试。

python环境管理

我只能说这里水很深,懂的都懂,不懂得说了也不懂

conda

多环境管理,很少遇到问题,有个点就是conda create 后面跟–clone 再加上一个你从别的地方拷过来的环境,就可以很简单的完成离线的环境移植。

conda install的包很少,基本平时还是用pip

深度学习环境

这里水太深了,等我摸熟了,再开一篇单独讲

常用shell 工具

模糊搜索 fzf

linux下的listary,非常好用,不仅支持文件搜索,还兼容很多其他的命令,比如vim,kill

还可以搜索历史输入命令

image-20211118180501904

系统监控 htop

非常帅气的系统监控工具,有shell的图形界面

image-20211118180722447

处理命令 ag sed grep awk

我也没玩明白,玩明白了开一期讲

墙裂推荐上海交大Ipads实验室的入门教程系列,里面第一讲详细讲解了 shell使用,MIT也有相关的教程和lab

这里贴一下

Course overview + the shell · the missing semester of your cs education (mit.edu)

IPADS新人培训第一讲:Shell_哔哩哔哩_bilibili

偷看工具 strace

这个可以很细粒度的追踪每个进程的具体信息,比如输出的文件流,对系统的调用等待,功能非常强大,我一般用来看服务器上某某的模型训练到第几个epoch。

终端复用工具 screen tmux

有时候要跑一些大应用,可能因为网络原因,终端断联导致程序终止。为了避免这种情况,就有了screen 和tmux,我用screen用的比较多,因为vscode上 tmux很丑。

screen只需要记住两三个命令就可以用起来了

screen -S name创建会话

screen -R name恢复会话

screen -ls查看所有会话

screen -d name 断开某个attached的会话

ctrl d杀死当前会话

ctrl alt d退出当前会话,回到原本终端

不要在screen里开screen,别套娃.

screen上翻屏幕有点麻烦,建议直接输出到文本文件,然后vim或者vscode看