首页 > 系统相关 >Noi-Linux 2.0 装机+使用整合

Noi-Linux 2.0 装机+使用整合

时间:2023-10-18 20:55:23浏览次数:36  
标签:std Noi xxx 命令行 https Linux test 2.0 bash

写在前面

网上的东西比较多,也比较杂乱,不是很方便,所以我整合了一些关于 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++ 写也是可以的:

对拍

#!/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

标签:std,Noi,xxx,命令行,https,Linux,test,2.0,bash
From: https://www.cnblogs.com/FReQuenter5156/p/noi_linux2_0_all.html

相关文章

  • 如何在虚拟机上安装linux操纵系统
    1.下载linux操作系统的镜像文件(iso文件),官网链接(CentOSMirrorsList) (3)下载大小为4G或者4.几G的iso镜像文件 2.下载我发的VMwareWorkstation16直接安装完成  2、开始安装centos7:(1)创建新的虚拟机可以选“自定义”,也可使用默认推荐的类型。选择稍后安装操作系统。......
  • Linux查看进程的CPU和内存使用情况
    ps-aux|grep"spring-native-hello"结果:chkusr106110.00.0131313253364pts/1Sl19:560:00./spring-native-hellochkusr131920.00.0112812972pts/1S+20:040:00grep--color=autospring-native-hello每列的含义:USER:这一......
  • NOI Linux 2.0 用法以及 Windows 下的对拍
    一、NOILinux2.0用法打开终端。Ctrl+Alt+T进入超级管理员。sudosu列出当前文件夹下的子目录。ls进入下层文件夹a。cda在当前目录(下面同样)新建一个文件a.cpp。toucha.cpp编辑a.cpp。gedita.cpp编译a.cpp。g++.exea.cpp-oa.exe......
  • Linux线程
    task_struct是用来描述进程的,它里面有一个指针指向mm_struct(虚拟地址空间)在地址空间中,栈区可以可以由ebp,esp来进行限定它的区域,那么堆区怎么来确定呢?怎么知道每次开辟的空间是多大范围的呢?这里还有一个结构来描述每次开辟堆区的大小——vm_area_struct,该结构的start,end就可以确定堆......
  • Linux进程间通信
    因为进程间具有独立性,你们想用进行进程间通信,难度还是比较大的。进程间通信的本质就是让不同的进程看到同一份资源。为什么要进行进程间通信——交互数据、控制、通知等目标进程间通信的技术背景进程是具有独立性的。虚拟地址空间+页表保证进程运行的独立性(进程内核数据结构+进程......
  • NOIP2018PJ T3 摆渡车(2023.10第二版题解)
    题目链接 题意:时间轴上分布着$n$位乘客($1\len\le500$),$i$号乘客的位置为$t_i$(0\let_i\le4\times10^6),用互相距离不小于$m$的车次将时间轴分为若干部分,并管辖以自己为右端点的这个区间(除了第一趟车包括$0$,其他车次左开右闭),求最小费用和。每个车次的费用来自:管辖区间内所......
  • Linux-ssh
    目录远程登录服务器配置远程服务器相关信息创建config文件配置config文件配置密钥登陆先创建密钥配置密钥文件执行命令scp传文件copy文件copy文件夹远程登录服务器sshuser@hostnameuser:用户名hostname:IP地址或域名第一次登陆会显示信息:Theauthenticityofhost'123.......
  • linux文件权限2
    ACL权限基本用法:getfacl文件/目录:展示文件或目录的ACL权限:包括文件或目录位置,所属用户,所属组,所属用户权限,所属组权限,其用户权限例如getfaclfile01setfacl-mu/g/o:指定用户:权限文件:添加文件或目录的ACL权限:......
  • Linux利用httpd搭建局域网yum源,linux搭建本地yum源
    整理了,使用linuxios搭建本地yum源。使用ios镜像挂载本地开启httpd制作本地yum源。基于ios的rpm包使用httpd搭建局域网yum源。首先普及一下YUM常用命令参数:yummakecache#构建缓存yumcheck-update#列出所有可更新的软件清单命令yumlistall......
  • Linux 下安装 miniconda,管理 Python 多环境
    安装miniconda1、下载安装包Miniconda3-py37_22.11.1-1-Linux-x86_64.sh,或者自行选择版本2、把安装包上传到服务器上,这里放在/home/software3、安装bashMiniconda3-py37_22.11.1-1-Linux-x86_64.sh4、按回车WelcometoMiniconda3py37_22.11.1-1Inordertocontin......