noi linux 2.0 体验
一、起因
下午,我打开 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 体验的更多相关文章
- Linux系统部署体验中心
Linux系统部署体验中心 安装Linux虚拟机 1. 下载安装VMware,安装64位Linux系统(Ubuntu),要求:CPU双核,2G内存,60G硬盘 2. 安装系统时,选择安装ssh服务 ...
- VMware EXSI 6.0 体验
VMware EXSI 6.0 体验 导读 VMware 作为虚拟化行业的老大,占据了80%的市场份额.而在服务器虚拟化就不得不说 VMware vSphere ,这个组合包括了VMware EXSI ...
- NetCore1.1+Linux部署初体验
1.环境准备 Centaos7+Win10 虚拟机 Win10安装VS2017 https://www.asp.net/downloads注意勾选下.Net Core 3.Centaos安装netco ...
- 第三次随笔--安装虚拟机及学习linux系统初体验
第三次随笔--安装虚拟机及学习linux系统初体验 ·学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统 首先按照老师的提示步骤进行VirtualBox虚拟 ...
- ubuntu简易教程(如何使用noi linux)
目录 linux环境下的基础操作 命令行操作 编辑器 程序编译 程序调试 gdb的使用 对拍 在提高组的考试中要求使用noi linux,因此了解一下如何在linux环境下编程是很有必要的. linu ...
- Red Hat Enterprise Linux 8.0 安装
Red Hat Enterprise Linux 8.0 安装 本次安装通过使用VMware Workstation 15 pro 进行. 1.新建虚拟机 2.点击首页的创建新的虚拟机,或者点击标签栏 ...
- 致萌新与不会用 NOI Linux 的 OIer
全文绝大部分转载自:这篇好文章啊. 目录 1:GUIDE 2:Gedit 原文 打开 编译运行 3.Vim 3-1:这东西咋开啊 3-2:这东西咋用啊 4.编译与运行 5.调试 6.CSP竞赛中编写代 ...
- NOI Linux 快速入门指南
目录 关于安装 NOI Linux 系统配置 网络 输入法 编辑器 1. gedit 打开 配置 外观展示 2. vim 打开 配置 使用 makefile 编译运行 1. 编写 makefile 2 ...
- Kali Linux 2.0配置并安装常用的工具
Kali Linux 前身是著名渗透测试系统BackTrack ,是一个基于 Debian 的 Linux 发行版,包含很多安全和取证方面的相关工具. Kali Linux 2.0是基于Debian ...
随机推荐
- 四、JavaSE语言基础之运算符
什么是是运算符 运算符:用于数据运算的符号,运算是一种处理.(注:浮点型数据(float.double)进行运算会出现精度丢失的情况) 运算符大致可分为以下六种: 一.算术运算符:+.-.*./.%. ...
- 16 自动发布PHP项目
#!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin PHP_NAME=$1 DATE ...
- 21、nginx之ngx_http_proxy_module模块
Nginx 的代理功能是通过 ngx_http_proxy_module 模块来实现的.默认在安装 Nginx 时已经安装了ngx_http_proxy_module模 块,因此可直接使用 ngx_h ...
- Gym 101147G 第二类斯特林数
大致题意: n个孩子,k场比赛,每个孩子至少参加一场比赛,且每场比赛只能由一个孩子参加.问有多少种分配方式. 分析: k>n,就无法分配了. k<=n.把n分成k堆的方案数乘以n的阶乘.N ...
- XCTF reverse maze
一.查壳 二.拖入ida64,静态调试,找到主函数F5反编译 二.1 思路分析(逆向是真的费时间,每个函数都要分析过去): 1.发现每个if最终都会进入LABEL-15 点进去,看看这个函数是干啥的. ...
- 经典论文系列 | 目标检测--CornerNet & 又名 anchor boxes的缺陷
前言: 目标检测的预测框经过了滑动窗口.selective search.RPN.anchor based等一系列生成方法的发展,到18年开始,开始流行anchor free系列,CornerNe ...
- HCNA Routing&Switching之RIP防环机制
前文我们了解了RIP的基础概念.RIP的特点.RIP报文格式.RIP度量以及RIP配置认证等相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/150085 ...
- 浅谈C++11中的多线程(三)
摘要 本篇文章围绕以下几个问题展开: 进程和线程的区别 何为并发?C++中如何解决并发问题?C++中多线程的基本操作 浅谈C++11中的多线程(一) - 唯有自己强大 - 博客园 (cnblogs.c ...
- ADO.NET整理 [转]
虽然我们都知道ADO.NET是对数据库的操作,但是要真的说出ADO.NET的具体含义还不是很容易. ADO.NET是ActiveX Data Objects的缩写,它是一个COM组件库,用于在micr ...
- IP地址详解
讲之前了解一些网络设备的作用: 交换机:组建局域网 路由器:连接内外网 网关:一个网络的出口(Gate Way = GW)一般网关在路由器上 局域网(也称内网) 一个简单的局域网的基本组成设备:交换机 ...