【Noi-Linux 2.0】 装机+使用整合

写在前面

网上的东西比较多,也比较杂乱,不是很方便,所以我整合了一些关于 Noi-Linux2.0 虚拟机装机方法+代码编辑环境+实地编程的介绍,看完至少能用起来打代码了。

NOI 官网公告(JS 开始使用 Noi-Linux2.0 作为唯一操作系统):https://www.noi.cn/gynoi/jsgz/2021-07-16/732450.shtml


Part 1 装机

主流的有 3 个虚拟机软件:VirtualBox、VMware 以及 Windows 操作系统自带的 Hyper-V。

双系统方案和电脑自身有较大关系,不在本篇讨论范围内。

VirtualBox

(应该是)使用人数最多的方案,网上的博客很多比较全面。装机可以参考这个:https://zhuanlan.zhihu.com/p/574130949。之前装过 VBox 然后又卸载了重装会很麻烦(比如我),可以考虑换方案。

所以为啥装了要卸啊啊啊

VMware

可以看这个:https://www.php1.cn/detail/Noilinux_DeAnZhu_435ca7ab.html。其实感觉都大差不差。注意这里面没有提到的最后光驱加载之后安装系统的时候要断网

Hyper-V

Windows 系统自带,比较方便。

一开始不做任何设置是没有这个软件的。激活方案:https://blog.csdn.net/Destinyzhoujunyu/article/details/131610508。注意 Windows 的家庭版好像(?不自带 Hyper-V(反正我的没有),可以按那篇里的下载连接安装,也可以参考这个:https://zhuanlan.zhihu.com/p/571306942?utm_id=0,快很多。

安装系统

https://zhuanlan.zhihu.com/p/574130949这篇里面有关于安装系统的东西,安装过程中一定要断网

Part 2 使用

Linux常用命令及文件夹、命令行相关操作

后文有提到,自行翻阅。

怎么写代码?

方案很多。程序列表:https://www.cnblogs.com/Icys/p/15126397.html

个人推荐 Subline Text。

话说 VSCode 比 Subline Text 多了啥?对于我这种从来不用 GDB 的人来说

VSCode

但是,这东西的 C++ 插件要依赖网络才能运行,所以寄。只能配命令行了(

文本编辑器实锤了。

但是在程序内就可以打开命令行还是比较方便的。代码补全和高亮也不受影响。用是没问题的。命令行等介绍参考后文。

Subline Text

貌似没有 GDB 能用(?

上手比较快吧。代码补全、高亮啥的都有。

其实什么也不用设置的,打开就能直接写代码,用命令行编译运行,配置时间为 0。

如果你想用的更方便一点(快捷键编译等等,但是无法直接运行,要依赖文件输入输出或者命令行):https://www.bilibili.com/read/cv19129222/

和 VSCode 没啥区别就是。

Code::Blocks

这是一个集成开发环境,所以。

可以直接当 dev 用。如果不想花时间学命令行可以试试。一键编译运行(build+run)。

感觉配色不是很好看

设置还是挺多的。可以琢磨琢磨如果要用的话。

Vim

有亿点点复杂......

在这里扔一个:https://blog.csdn.net/hsforpyp/article/details/113833465

Linux 指令及快捷键

这个才是重头戏哈。

注意 Linux 命令行区分大小写,比如 cd CodeCd Codecd CODE 是不一样的

全局 Ctrl+Shift+? 快捷键总览

Ctrl+Shift+~ VSCode 启动命令行

Ctrl+Alt+T 打开系统命令行

cd xxx 切换到当前目录下的 xxx

cd ~ 回退到用户根目录

cd .. 回退到上一目录

ls 列出当前目录下的文件

pwd 列出当前目录

cp xxx yyyxxx 复制到 yyy

g++ test.cpp -o test ... ... 编译指令(注意 -o xxxxxx运行文件,pdf第一页有指令)

./xxx 运行 xxx

./xxx <1.in>1.out 重定向输入输出流

code xxx VSCode 打开 xxx

gedit xxx gedit 打开 xxx

mkdir xxx 新建目录 xxx

bash xxx 运行 shell xxx

#!/bin/bash 告诉系统用 bash 跑(环境变量)

echo xxx 输出 xxx

touch xxx 新建 xxx

cat xxx 输出 xxx

time 输出运行时间(以 user 为准,real 带输入时间)

timeout xxx 运行 xxx 秒后关闭

#xxx 命令行中替换为 xxx(如 #? 获得程序返回值)

对拍小程序(.sh)当然 C++ 写也是可以的:

对拍

shell 复制代码
#!/bin/bash

# 我是注释,上一句话=告诉系统用bash运行

# 命令行 bash xxx.sh 运行

# 编译指令,-fsanitize=address数组越界自动停,undefined就是UB自动停

g++ std.cpp -o std -Wall -Wextra -std=c++17 -D LOCAL -fsanitize=address,undefined
g++ wrong.cpp -o wrong -Wall -Wextra -std=c++17 -D LOCAL -fsanitize=address,undefined
g++ gen.cpp -o gen -Wall -Wextra -std=c++17 -D LOCAL -fsanitize=address,undefined

for T in $(seq 1 100) # for(int T=1;T<=100;T++)

do
    echo  "========== Test Case $T ==========" 
    ./gen > test.in 
    timeout 1 ./std < test.in > test.ans
    timeout 1 ./wrong < test.in > test.out
    if [[ $? != 0 ]] # 测试返回值是不是0
    then
        echo "TLE or RE!"
        cp test.in error-$T.in # 把出错的数据拷出去
        break
    fi # 结束if
    diff -q test.ans test.out
    if [[ $? != 0 ]] 
    then
        echo "Wrong answer!"
        cp test.in error-WA-$T.in # 同上
        break
    fi
done
相关推荐
Logic1012 天前
《Mysql数据库应用》 第2版 郭文明 实验5 存储过程与函数的构建与使用核心操作与思路解析
数据库·sql·mysql·学习笔记·计算机网络技术·形考作业·国家开放大学
0和1的舞者2 天前
SpringBoot配置文件
java·spring boot·后端·web·配置·spirng
Logic1012 天前
《Mysql数据库应用》 第2版 郭文明 实验1 在MySQL中创建数据库和表核心操作与思路解析
数据库·sql·mysql·学习笔记·计算机网络技术·形考作业·国家开放大学
一马平川的大草原3 天前
AI Agent常见问题和核心术语
人工智能·学习笔记·agent
Logic1013 天前
《Mysql数据库应用》 第2版 郭文明 实验6 数据库系统维护核心操作与思路解析
数据库·sql·mysql·学习笔记·计算机网络技术·形考作业·国家开放大学
Logic1014 天前
《数据库运维》 郭文明 实验4 数据库备份与恢复实验核心操作与思路解析
运维·数据库·sql·mysql·学习笔记·形考作业·国家开放大学
Logic1014 天前
《数据库运维》 郭文明 实验2 MySQL数据库对象管理核心操作与思路解析
运维·数据库·mysql·学习笔记·计算机网络技术·形考作业·国家开放大学
Logic1015 天前
一份系统化《Python爬虫教程》学习笔记:Python爬虫63个核心案例精讲(含反爬策略与源码剖析)
经验分享·爬虫·python·学习笔记·编程·软件开发
Logic1016 天前
《Mysql数据库应用》 第2版 郭文明 实验4 视图和索引的构建与使用核心操作与思路解析
数据库·sql·mysql·学习笔记·计算机网络技术·形考作业·国家开放大学
Johnny_le7 天前
生物化学Learning Track(28)脂肪酸代谢
学习笔记·生物化学