一、起因

下午,我打开 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. 在 NUC980 上运行 RT-Thread

    NUC980 & RT-Thread (1) NUC980 nuc980 是新塘推出的基于 ARM926EJ-S,集成 64 MB 或 128 MB DDR-II 的处理器,主频可以达到300 ...

  2. 关于基于Nexus3和Docker搭建私有Nuget服务的探索

    背景简介 NuGet是Microsoft开发平台的程序集包管理器,它由客户端工具和服务端站点组成,客户端工具提供给用户管理和安装/卸载软件程序包,以及打包和发布程序包到NuGet服务端站点等功能,服务 ...

  3. 5、修改oracle的字符集

    注意:修改字符集前需要将表空间进行数据泵备份: 5.1.修改server端字符集: 1.登录到oracle实例查看字符集: [oracle@slave-node2 ~]$ echo $ORACLE_S ...

  4. 如何使用原生的Feign

    什么是Feign Feign 是由 Netflix 团队开发的一款基于 Java 实现的 HTTP client,借鉴了 Retrofi. JAXRS-2.0.WebSocket 等类库.通过 Fei ...

  5. AcWing 1293. 夏洛克和他的女朋友

    夏洛克有了一个新女友(这太不像他了!). 情人节到了,他想送给女友一些珠宝当做礼物. 他买了n件珠宝,第i件的价值是i+1. 华生挑战夏洛克,让他给这些珠宝染色,使得一件珠宝的价格是另一件珠宝的价格的 ...

  6. css边框样式(动画)

    html: <div class="wrap"> <a href="#">shui</a> </div> css ...

  7. 所有的Java虚拟机必须实现在每个类或接口被Java程序 “ 首次主动使用 ” 时才初始化他们

    原文:https://www.cnblogs.com/fanjie/p/6916784.html Java程序对类的使用方式可分为两种– 主动使用– 被动使用 被动使用以后再讲,这里说说什么是主动使用 ...

  8. XCTF simple-unpacked

    一.查壳 是UPX的壳,拖入IDA,发现很多函数无法反编译也无法查看 二.骚操作 将那个文件放入记事本,ctrl+F搜索flag. 找到了. 实际上,是需要专门的UPX脱壳工具或者手工来脱壳的,我目前 ...

  9. buu [MRCTF2020]EasyCpp

    上次没写出,这次认真分析了一下,发现自己的调试水平也有了上涨,也看了一些C++逆向的文章,尤其是stl,发现C++的oop还是挺复杂,这题还没考啥虚函数的还行了. 一.拖入ida,找到主函数,还是挺容 ...

  10. Leetcode No.53 Maximum Subarray(c++实现)

    1. 题目 1.1 英文题目 Given an integer array nums, find the contiguous subarray (containing at least one nu ...