一、起因

下午,我打开 noi 官网准备报名 csp j/s,一看官网展板:“noi linux 2.0 发布” 我就兴奋了起来。(9 月 1 日起开始使用,

也就意味着 csp j/s 使用 noi linux 2.0)

啪的一下很快啊,我点击了这个图片链接。

一看这个配置:Ubuntu 20.04.1、vscode、sublime、code::blocks、gcc-9,

同时也去除了辣鸡 IDE(GUIDE)。

相比于之前的 noi linux,这简直是天堂啊!

回想去年参加 csp,使用的是老版的 noi linux,回想起来真是一把辛酸泪啊:那个老旧的 Ubuntu 14.04、莫名其妙卡死的桌面、

不能称之为 IDE 的 IDE(GUIDE)、gdb 崩溃......我当时用的 emacs 和 vim(emacs稍微好一些,但是我比较习惯 vim),比赛前

还特意查了 vim 的用法、背了配置文件。真是难以言表。

难道 CCF 终于了解到 OIer 们的痛点了吗?他终于醒悟了吗?

二、安装系统

抱着试试看的心态,我下载了 noi linux 2.0 的 iso 文件(3.4G),使用 VirtualBox 安装了虚拟机(vmware 我感觉不好用),

当然也可以实体机安装双系统,网上教程一大堆,自行搜索。

这里注意,新的 Ubuntu 20.04 是 64 位系统(32位的可以歇歇了),RAM 最少需要开 2048 MB(否则系统无法启动)。

安装系统就一路默认(一开始语言选的是中文,后来我后悔了,最好选英文),键盘布局选择 Chinese - Chinese 就行。

大概 20 分钟左右系统安装完成,重启后弹出虚拟光驱进入系统。

三、使用系统

整个系统给我第一眼的印象感觉还行(可以在桌面右键点击

更换壁纸),但是系统似乎没有网络模块,所以无法联网。

点击左下角的点,打开 VS Code、Terminal、Sublime Text、Code::Blocks。我写了一份测试代码(本人 C++ 党)。

#include <cstdio>
#include <cctype>
#include <vector>
using namespace std; #define reg register // 快读模板
int readInt() {
reg int x = 0, f = 1; char ch = getchar();
while (!isdigit(ch)) { if (ch == '-') f = -1; ch = getchar(); }
while (isdigit(ch)) { x = x * 10 + ch - 48; ch = getchar(); }
return x * f;
} int main(void) {
freopen("test.in", "r", stdin);
freopen("test.out", "w", stdout); vector<int> v;
int n = readInt();
for (reg int i = 0; i < n; i++) v.push_back(read());
for (auto el& : v) printf("%d ", el);
puts(""); fclose(stdin); fclose(stdout);
return 0;
}

保存在 ~/test.cpp

同时创建 ~/test.in 并输入以下内容

5
1 2 3 4 5

在终端中输入

$ g++ test.cpp -o test -std=c++11 -O2  # C++11 和 O2 优化
$ ./test

打开 ~/test.out 查看,输出为:

1 2 3 4 5

VS Code、Sublime Text、Code::Blocks 我都进行了测试,并得出以下结论:

  • VS Code 默认安装了 C/C++、Python、Pylance、Jupyter 插件,但是由于 C/C++ 插件安装后需要从 github 下载依赖文件,而系统又无法联网,所以 C/C++ 插件基本无用,这也导致了 VS Code 在 noi linux 下尴尬的境地。(但是不得不说 VS Code 在其他地方非常好用,平常用来写代码非常方便,同时跨平台支持,上手难度非常低,想使用的话教程网上都有)所以在这里不推荐使用 VS Code。
  • Sublime Text 是另一款轻量化编辑器,和 VS Code 一样颜值高,在 noi linux 下有 C++ 的语法提示,同时支持单文件编译,其万能搜索栏(Ctrl+Shift+P)也是非常顺手。推荐使用 Sublime Text。
  • Code::Blocks 是一款 C/C++ IDE(集成开发环境)。同时可以支持 C++ 语法提示,支持单文件编译,但是颜值非常朴素(与 Dev-C++ 类似)。Code::Blocks 跨平台支持,使用难度低,可以平时在其他系统使用。推荐 Code::Blocks。
  • Vim/Emacs 上手难度较高,简洁高效,但是在不熟悉其快捷键的时候效率非常低。所以这里并未使用 Vim/Emacs 进行测试。

建议平时刷题的时候使用 Code::Blocks,可以抛弃老旧的 Dev-C++ 了。

小提示:Linux 的命令行非常高效,建议熟练掌握其常见命令,有时甚至在比赛时可以救你一命(亲身经历)

四、总结

noi linux 2.0 相比旧版本做了很大的改动,其使用更加方便,更加适合 OIer。

编程工具建议使用 Code::Blocks 和 Sublime Text。两者都有较好的语法提示和单文件编译功能。

CCF 终于开窍了!

noi linux 2.0 体验的更多相关文章

  1. Linux系统部署体验中心

    Linux系统部署体验中心 安装Linux虚拟机 1.  下载安装VMware,安装64位Linux系统(Ubuntu),要求:CPU双核,2G内存,60G硬盘 2.  安装系统时,选择安装ssh服务 ...

  2. VMware EXSI 6.0 体验

    VMware EXSI 6.0 体验 导读 VMware 作为虚拟化行业的老大,占据了80%的市场份额.而在服务器虚拟化就不得不说 VMware vSphere ,这个组合包括了VMware EXSI ...

  3. NetCore1.1+Linux部署初体验

    1.环境准备 Centaos7+Win10 虚拟机 Win10安装VS2017 https://www.asp.net/downloads注意勾选下.Net Core 3.Centaos安装netco ...

  4. 第三次随笔--安装虚拟机及学习linux系统初体验

    第三次随笔--安装虚拟机及学习linux系统初体验 ·学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统 首先按照老师的提示步骤进行VirtualBox虚拟 ...

  5. ubuntu简易教程(如何使用noi linux)

    目录 linux环境下的基础操作 命令行操作 编辑器 程序编译 程序调试 gdb的使用 对拍 在提高组的考试中要求使用noi linux,因此了解一下如何在linux环境下编程是很有必要的. linu ...

  6. Red Hat Enterprise Linux 8.0 安装

    Red Hat Enterprise Linux 8.0 安装 本次安装通过使用VMware Workstation 15 pro 进行. 1.新建虚拟机 2.点击首页的创建新的虚拟机,或者点击标签栏 ...

  7. 致萌新与不会用 NOI Linux 的 OIer

    全文绝大部分转载自:这篇好文章啊. 目录 1:GUIDE 2:Gedit 原文 打开 编译运行 3.Vim 3-1:这东西咋开啊 3-2:这东西咋用啊 4.编译与运行 5.调试 6.CSP竞赛中编写代 ...

  8. NOI Linux 快速入门指南

    目录 关于安装 NOI Linux 系统配置 网络 输入法 编辑器 1. gedit 打开 配置 外观展示 2. vim 打开 配置 使用 makefile 编译运行 1. 编写 makefile 2 ...

  9. Kali Linux 2.0配置并安装常用的工具

    Kali Linux 前身是著名渗透测试系统BackTrack ,是一个基于 Debian 的 Linux 发行版,包含很多安全和取证方面的相关工具. Kali Linux 2.0是基于Debian ...

随机推荐

  1. 四、JavaSE语言基础之运算符

    什么是是运算符 运算符:用于数据运算的符号,运算是一种处理.(注:浮点型数据(float.double)进行运算会出现精度丢失的情况) 运算符大致可分为以下六种: 一.算术运算符:+.-.*./.%. ...

  2. 16 自动发布PHP项目

    #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin PHP_NAME=$1 DATE ...

  3. 21、nginx之ngx_http_proxy_module模块

    Nginx 的代理功能是通过 ngx_http_proxy_module 模块来实现的.默认在安装 Nginx 时已经安装了ngx_http_proxy_module模 块,因此可直接使用 ngx_h ...

  4. Gym 101147G 第二类斯特林数

    大致题意: n个孩子,k场比赛,每个孩子至少参加一场比赛,且每场比赛只能由一个孩子参加.问有多少种分配方式. 分析: k>n,就无法分配了. k<=n.把n分成k堆的方案数乘以n的阶乘.N ...

  5. XCTF reverse maze

    一.查壳 二.拖入ida64,静态调试,找到主函数F5反编译 二.1 思路分析(逆向是真的费时间,每个函数都要分析过去): 1.发现每个if最终都会进入LABEL-15 点进去,看看这个函数是干啥的. ...

  6. 经典论文系列 | 目标检测--CornerNet & 又名 anchor boxes的缺陷

    ​ 前言: 目标检测的预测框经过了滑动窗口.selective search.RPN.anchor based等一系列生成方法的发展,到18年开始,开始流行anchor free系列,CornerNe ...

  7. HCNA Routing&Switching之RIP防环机制

    前文我们了解了RIP的基础概念.RIP的特点.RIP报文格式.RIP度量以及RIP配置认证等相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/150085 ...

  8. 浅谈C++11中的多线程(三)

    摘要 本篇文章围绕以下几个问题展开: 进程和线程的区别 何为并发?C++中如何解决并发问题?C++中多线程的基本操作 浅谈C++11中的多线程(一) - 唯有自己强大 - 博客园 (cnblogs.c ...

  9. ADO.NET整理 [转]

    虽然我们都知道ADO.NET是对数据库的操作,但是要真的说出ADO.NET的具体含义还不是很容易. ADO.NET是ActiveX Data Objects的缩写,它是一个COM组件库,用于在micr ...

  10. IP地址详解

    讲之前了解一些网络设备的作用: 交换机:组建局域网 路由器:连接内外网 网关:一个网络的出口(Gate Way = GW)一般网关在路由器上 局域网(也称内网) 一个简单的局域网的基本组成设备:交换机 ...