Featured image of post 从CS201开始:Ubuntu设置笔记

从CS201开始:Ubuntu设置笔记

CS201这门课需要用java,学校发了一个Ubuntu虚拟机给我们用,这样在虚拟机上配置环境就够了不需要在本地乱搞。虽然说这还是比不上INFOSCI102那样用(超级爽的)colab,也不像CS101用jupyter notebook,但是依旧比在本地装一套环境好得多得多。

但是以上论断只有在教程完美、网络正常的情况下才成立。很显然作为一个新生没多久的课程,CS201的教程依旧是不合格的!这篇文章就用来记录一下我,即使已经有了(并不)丰富的环境配置经验与(相对)丰富的Linux知识,依旧在配置过程中踩了多少坑!

工作基本思路

CS201这门课没有使用任何OJ而是采用了Prof Jiang Long自己用python写的SAG (Stage Auto-Grading System)。负责维护SAG的Tutor告诉我,Prof Long自己也承认写的不够Professional,但他自己认为是semi-professional(笑)但是我依旧想不明白在DKU OJ已经那么成熟的情况下要自己造一套轮子……完全想不明白

基本来说,所有的提交都需要用SAG在虚拟机(服务器)内完成,用到他自己写的sag_client来提交。主要来说,作业以一个.tar.gz的压缩包下发,里面包括所有题目的文件夹和Makefile文件方便使用指令。不得不说make指令还是很强的,有机会一定要学习一个(

主要来说用到以下几个命令:

  • make init-pull 用来初始化文件
  • make compile | javac ${file_name} 用来编译,获得一个.class二进制文件
  • make submit 用来提交代码
  • make status 用来查看提交状态
  • java ${file_name} {argument} 用来执行文件

make命令的具体作用可以在Makefile文件里面看到。

但是用命令行来写代码,不是不可以,只是太难受(顺便,nano真好用嘶哈嘶哈)。在Prof Long的提醒下,通过配置VScode使用插件Remote-ssh在远程连接服务器后直接在VScode里面写代码,要比本地写git push到服务器爽的多——后者正是我的博客采用的方式。

这样,VScode里面看起来就是这样的:

VScode

这里涉及到的一个关键点是ssh密钥的使用,即通过在远程服务器上保存密钥(公钥?),ssh链接时不必再输入密码。具体使用方法这篇文章写的灰常清楚

配置Command Line

一个正常的command line应该长成这样:

Screenshot of Command line

可以看到,这个命令行是有颜色的!怎么设置才能让颜色正确的显示出来?折腾了几个小时之后,我发现只需要在 ~/.bashrc文件中启用force_color_prompt=yes功能,就可以让命令行带上颜色。 如果发现保存后没有立即启用,可以source ~/.bashrc来加载这个文件。背后具体机制还没有搞清楚,但是能用(

学校的VCM

DKU的VCM是与别处不同的,每天早上6点就会自动关机,真的很离谱;我是挺希望它自动关机的,但是我希望能够设置关机时间……

此外,一开始设置虚拟机的时候死活打不开网站。折腾很长时间之后,我貌似用重置DNS缓存的方法解决了这个问题。

解决DNS问题

剩下的以后想起来再写

Built with Hugo
主题 StackJimmy 设计