工具清单
vscode及其插件
python环境管理
常用shell工具
listary + quicker + utools 百宝箱
磁盘管理工具
文本编辑工具(except vscode)
VSCODE
世界最强IDE没有之一,真正的生产力利器。vscode本身已经不用再介绍,直接从插件讲起。
REMOTE SSH
远程ssh,可以直接拿vscode远程连接服务器,不仅有资源管理器,而且远程安装vscode以后,装上语言服务器,代码跳转不是梦。一边用着终端,一边可以实时浏览代码进行修改。
Jupyter notebook
装上vscode的jupyter插件之后,基本就可以闲置之前的jupyter网络服务了,不用像之前卡在一个工作区里,可以实时编辑ipynb文件,并且有更好的交互式体验,还可以直接在cell里debug。
draw.io
绘制矢量图神器,啥都能画,开源免费,吹爆!
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:端口号。
然后还需要vscode里添加对应的调试配置,点添加调试配置,然后选Python:attach,再在json里设置一下刚刚的端口号,就可以直接debug了
而c++ debug一般要更麻烦,如果是单文件还好,直接用默认的就可以,多文件大项目的话,一般有自己的cmake脚本和make脚本,配置好默认的prelaunch task后还要配对应的参数。我一般用gdb调试,生成二进制之后,用gdb运行,vscode跟踪gdb进程号的方式调试。
python环境管理
我只能说这里水很深,懂的都懂,不懂得说了也不懂
conda
多环境管理,很少遇到问题,有个点就是conda create 后面跟–clone 再加上一个你从别的地方拷过来的环境,就可以很简单的完成离线的环境移植。
conda install的包很少,基本平时还是用pip
深度学习环境
这里水太深了,等我摸熟了,再开一篇单独讲
常用shell 工具
模糊搜索 fzf
linux下的listary,非常好用,不仅支持文件搜索,还兼容很多其他的命令,比如vim,kill
还可以搜索历史输入命令
系统监控 htop
非常帅气的系统监控工具,有shell的图形界面
处理命令 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看