经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Linux/Shell » 查看文章
【Noi-Linux 2.0】 装机+使用整合
来源:cnblogs  作者:FReQuenter  时间:2023/10/19 10:24:00  对本文有异议

写在前面

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

对拍

  1. #!/bin/bash
  2. # 我是注释,上一句话=告诉系统用bash运行
  3. # 命令行 bash xxx.sh 运行
  4. # 编译指令,-fsanitize=address数组越界自动停,undefined就是UB自动停
  5. g++ std.cpp -o std -Wall -Wextra -std=c++17 -D LOCAL -fsanitize=address,undefined
  6. g++ wrong.cpp -o wrong -Wall -Wextra -std=c++17 -D LOCAL -fsanitize=address,undefined
  7. g++ gen.cpp -o gen -Wall -Wextra -std=c++17 -D LOCAL -fsanitize=address,undefined
  8. for T in $(seq 1 100) # for(int T=1;T<=100;T++)
  9. do
  10. echo "========== Test Case $T =========="
  11. ./gen > test.in
  12. timeout 1 ./std < test.in > test.ans
  13. timeout 1 ./wrong < test.in > test.out
  14. if [[ $? != 0 ]] # 测试返回值是不是0
  15. then
  16. echo "TLE or RE!"
  17. cp test.in error-$T.in # 把出错的数据拷出去
  18. break
  19. fi # 结束if
  20. diff -q test.ans test.out
  21. if [[ $? != 0 ]]
  22. then
  23. echo "Wrong answer!"
  24. cp test.in error-WA-$T.in # 同上
  25. break
  26. fi
  27. done

原文链接:https://www.cnblogs.com/FReQuenter5156/p/noi_linux2_0_all.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号