全文绝大部分转载自:这篇好文章啊

致CSP萌新/不会使用NOI LINUX的人群

1:GUIDE

一句话评价:GUIDE就是个辣鸡

本意是CCF为了刁难照顾Linux小白而安装的图形化IDE,上手比较容易 但是用十五分钟你就会发现这是什么辣鸡

请头铁的同学们考场/试机时自行摸索

良言:能不用GUIDE就不用,自带编译意义不明,调试会导致IDE崩溃

2:Gedit

原文

一句话评价:如同Notepad++般的存在

Ubuntu自带的神奇软件,形似记事本但是比记事本高到哪里去

直接新建一个文件,而后把文件命名为 xxx.cpp 即可

P.S:这里推荐保存在主文件夹(/home/)下,便于编译操作

Gedit是支持语句高亮的,在右下角可以选择语言类型 跟Md异曲同工的高亮

总之,是一个体验良好,很超神的存在

为了尊重作者,以上是原文部分全部保留不动,以下是我的增加部分。

其实 Gedit 是一个很好用的编辑器。(确实比 Windows 下的笔记本好用几百倍)

但是我认为作者并没有做过多的介绍,所以决定自己重申一下。

打开

原文是说直接写 文件名.cpp 但是这样就没有办法进行配置了,所以正解是先保持无名文件,打开后进行配置后再命名。

具体图片就是酱紫:

在“编辑”中找到“首选项”,然后就可以自己乱搞了。

可以调大字体,自定义代码高亮,还可以自动缩进 + 显示行号,反正非常好用就对了。

编译运行

编译方法的话,可以看下面 Vim 的编译方法,用命令行解决就是了。

以上是我的增加部分,下面是原文

3、Vim

一句话评价:灯光都打起来!最强者出现了!

Vim是(大部分)Ubuntu内置的一个奇妙东西

其实Vim这个东西十分强大,功能比你想象的要多很多,这里只讲最最最基础的操作,如果想要了解详细,可以移步这里

Vim这个东西有点奇妙,因为它是运行在终端里的 因此也显得高大上

3-1:这东西咋开啊

方法1:在Linux左上角“搜索我的计算机里”,搜索“Vim”即可,此时会显示Vim的welcome画面

方法2:使用Ctrl + Alt + T 打开终端,直接输入 vi ./xxx.cpp 使用Vim打开文件,此时Vim显示的是文件内容(如果没有这个文件,Vim会自动新建一个文件,上面的语句中, vi 表示调用vim, ./ 是这个文件的路径(本文中为Home文件夹), xxx.cpp 是文件名

3-2:这东西咋用啊

使用Vim打开了文件,我们发现此时我们无法对文件进行操作

不要慌,Vim默认开启时是“命令”模式,是需要输入指令来操作的

我们按下 i ,切换到插入模式,就可以愉快的写代码了

看,和Gedit一样有语句高光,惊不惊喜

需要注意的是,Vim中的光标只能靠键盘上的上下左右键和Home/End等键移动,不能靠鼠标

写完代码了,我们需要保存一下

那么问题来了,怎么保存呢

首先,我们按下 Esc 键 (敲ESC三个字母的可以关掉blog直接退役了),返回命令模式

然后,我们在命令模式下输入 :wq (均为小写英文字符),就可以保存文件并直接回到终端啦

语句解释: : 的作用是一次输入多条指令,上文中我们未使用":"直接按"i"便是立刻执行命令,这里便会等待你一次输入全部命令回车后依次执行; w 是Vim的保存命令 (不是s吗) ; q 是退出指令

4、编译与运行

代码写完了,接下来我们就是要来运行了

编译运行其实也很简单,本质上跟dev C++是一样的

以上文代码为例,首先按下 Ctrl + Alt + T 召唤出 终端,在终端里敲下

gcc ./xxx.cpp -o ./xxx -g 即可编译完成

如果gcc频繁编译失败,又找不出问题,可以尝试把 gcc 换成 g++

语句解释:"gcc"是调用gcc编译器(类似vi语句), ./xxx.cpp 是上文代码的路径, -o 是向gcc传递编译指令(平时你用的Dev C++里编译也是这一步只是加上了各种后缀,另外注意一定要加上那个"-"号),./xxx 是编译过的可执行程序的输出路径(这个记好一会运行要用,同样建议生成至Home文件夹), -g 是后缀,表示生成调试信息,OI中常用的后缀大概只有 -O2 (吸氧), -Wall (显示警告信息)和 -g 了,如果你不使用GDB调试程序,可以不添加这个后缀

运行更加简单了,在终端里直接输入

./xxx 即可运行程序,前面什么都不用加,然后我们就可以运行程序,程序的输入输出和你平时在Windows下使用cmd运行是一模一样的,当然,也可以重定向到文件

数据:P1908样例

笔者的程序有使用fread的快读,必须使用文件读入所以出锅了

假装有输出

顺便教给大家,图片里的^C就是 Ctrl + C ,意义为强行kill终端当前运行的任务,故在使用终端测试时一定要手打数据或右键粘贴,千万不要Ctrl C 再 Ctrl V 结果练程序怎么死的都不知道,终端跟cmd一样不支持 Ctrl + V 粘贴,想要在终端内进行复制粘贴操作,可以使用 Ctrl + Shift + CCtrl + Shift + V 操作

5、调试

太菜了不会GDB

想学GDB可以参考这里

6、CSP竞赛中编写代码的经常性注意事项

由于CSP的评测是在Linux的环境下完成的,因此有一些注意事项需要注意:

1、尽量不要使用 gets() 语句读取一行,因为这些函数使用换行符来判断行结束,Windows下换行是\r\n,而Linux下换行是\n,假设某题的数据是在Windows下生成的,那么这道题的换行符就是\r\n,最终比赛时的代码是在Linux下编译的,读取的换行符是\n,这样就会导致读入错误

kkksc03评论:其实不使用gets()的原因主要还是潜在的溢出风险。

2、评测环境为Linux64位,因此请注意指针变量占用的空间是 8 字节,注意计算内存,避免MLE

3、在使用long long 型int时请记得使用 %lld 而非WIndows下的%I64d

4、忌使用 __ (双下划线)开头的函数如pbds,CSP是禁止此类函数的使用的,使用此类函数可能导致你的代码CE或取消题目成绩

7、总结

总结一下CSP考试中最常用的计算机指令(排名不分先后)

Ctrl + Alt + T     //开启终端

Ctrl + C     //强行kill当前运行的任务(终端内适用)

vi ./xxx.cpp     //使用Vim打开或创建文件(终端内适用)
---^^^^^^^^^
路径

Vim内:
i //写入模式
Esc //返回命令模式
: //依次执行多条命令
w //保存
q //退出
(终端运行Vim时适用)

gcc ./xxx.cpp -o ./xxx     //编译程序(终端内适用)
----^^^^^^^^^----^^^^^
输入路径 输出路径

./xxx     //运行程序(终端内适用)
^^^^^
程序路径

ex1:如果运行程序时提示权限不足,请尝试在运行语句前加sudo。

ex2:NOI Linux默认用户为noilinux,密码为123456。

ex3:NOI Linux镜像下载地址

完结撒花。

致萌新与不会用 NOI Linux 的 OIer的更多相关文章

  1. 萌新笔记——C++里创建 Trie字典树(中文词典)(三)(联想)

    萌新做词典第三篇,做得不好,还请指正,谢谢大佬! 今天把词典的联想做好了,也是比较low的,还改了之前的查询.遍历等代码.  Orz 一样地先放上运行结果: test1 ID : char : 件 w ...

  2. 萌新笔记——C++里创建 Trie字典树(中文词典)(二)(插入、查找、导入、导出)

    萌新做词典第二篇,做得不好,还请指正,谢谢大佬! 做好了插入与遍历功能之后,我发现最基本的查找功能没有实现,同时还希望能够把内存的数据存入文件保存下来,并可以从文件中导入词典.此外,数据的路径是存在配 ...

  3. 萌新笔记——C++里创建 Trie字典树(中文词典)(一)(插入、遍历)

    萌新做词典第一篇,做得不好,还请指正,谢谢大佬! 写了一个词典,用到了Trie字典树. 写这个词典的目的,一个是为了压缩一些数据,另一个是为了尝试搜索提示,就像在谷歌搜索的时候,打出某个关键字,会提示 ...

  4. Ingress 记萌新的第一次连多重(xjbl)

    之前为了升七,ArtanisWei学长告诉我可以去紫金园雕塑[这是什么地方啊],顺带靠卖萌骗了一桶key 于是屁颠屁颠的跑去按照群里攻略开始连多重[馒头 by handsomepeach],连了一百年 ...

  5. java萌新尝试搭建WordPress记录

    问题1:安装好PHP环境没找好mysql路径,导致不能调用数据库模块 解决方案:重装一次,参考链接 https://www.cnblogs.com/yangxia-test/p/4174372.htm ...

  6. 萌新关于C#委托一点见解

    开博第一写C#委托(一个简单的委托) 1.关于委托,一直是学习c#的萌新们的噩梦,小生也是.最近在学委托感觉瞬间被虐成狗,但作为C#中极为重要的一个内容,学好了将会及大地减少我们的代码量,而且这也是够 ...

  7. 萌新的IDEA_web开发笔记(未完)

    萌新IDEA_web开发笔记 按兴趣自己搞的网页: http://47.94.140.98:8080/ow_web/my_web/web/ 暂时还没做完. 部署在租的服务器上面,背景视频加载可能有点慢 ...

  8. Unity萌新日记—开发小技巧与冷知识(脚本篇)

    在学习unity的过程中,总会遇到很多零碎的知识点和小技巧,在此把它们记录下来,方便日后查看. 第一篇是关于脚本的一些你可能不知道的小知识. 还是个正在学习的萌新,如果写的不好,请谅解. Unity版 ...

  9. 萌新web前端从零开始(1)——计算机入门

    前言:这是一个萌新从零开始的学习之路,与大家分享自己的看法与见解,还请指出错误与遗漏点方便改正. 1.认识计算机. 计算机语言常见的有C,PHP,Ruby,Java,C#,Basic,JS,C++等, ...

随机推荐

  1. Go-missing return at end of function

    where? Go程序中函数在执行的时候 why? 函数有返回参数,但是函数没有return关键字,报错 way? 添加return返回函数需要返回的参数

  2. 036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构

    036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构 本文知识点:Java中的嵌套if结构 什么是嵌套if结构? 概念: 嵌套if结构 ...

  3. Python中matplotlib.pyplot.imshow画灰度图的多种方法

    转载:https://www.jianshu.com/p/8f96318a153f matplotlib库的教程和使用方法此处就不累赘了,网上有十分多优秀的教程资源.此处直接上代码: def demo ...

  4. python中def用法

    转载:https://blog.csdn.net/qq_21466543/article/details/81604826 一.函数调用的含义 函数是类似于可封装的程序片段.允许你给一块语句一个名字, ...

  5. 微型直流电机控制基本方法 L298N模块

    控制任务 让单个直流电机在L298N模块驱动下,完成制动.自由停车,正反转,加减速等基本动作 芯片模块及电路设计 图1 L298N芯片引脚 图2 L298N驱动模块 表1 L298N驱动模块的控制引脚 ...

  6. Excel-VLOOKUP函数跨表匹配查找①

    问题场景 对表中的员工进行测评总结,从所有员工考核明细表中匹配这些参与测评的员工的得分和相关信息: 场景一 从所有员工明细表中匹配需要参与测评的员工相关信息. 建了两个sheet页,考核员工表和全员考 ...

  7. 几个常用markdown工具的主要优缺点

    几个常用markdown工具的主要优缺点 最近对几个热门的markdown工具做了一个对比表 表格 脚注 图片和图床 平台 移动端 实时预览 收费 操作难度 导出功能 mweb 非常棒 预览正常显示 ...

  8. [学习笔记] Tarjan算法求桥和割点

    在之前的博客中我们已经介绍了如何用Tarjan算法求有向图中的强连通分量,而今天我们要谈的Tarjan求桥.割点,也是和上篇有博客有类似之处的. 关于桥和割点: 桥:在一个有向图中,如果删去一条边,而 ...

  9. springCloud微服务调用失败【CannotGetJdbcConnectionException: Failed to obtain JDBC Connection】

    详情如下: 2019-07-28 10:56:18.229 ERROR 16212 --- [nio-8081-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet ...

  10. golang常用库:字段参数验证库-validator

    背景 在平常开发中,特别是在web应用开发中,为了验证输入字段的合法性,都会做一些验证操作.比如对用户提交的表单字段进行验证,或者对请求的API接口字段进行验证,验证字段的合法性,保证输入字段值的安全 ...