NOI Linux 系统使用的笔记

我为什么现在才会用啊。

不知道是谁去年THUSC时不会用,导致用代码没法编译运行

终端的指令

访问文件夹

首先,几个常用的编译指令,在终端(Terminal)里使用。

  • 编译指令 ls(list),会列出当前所在文件夹的所有子文件夹。
  • cd name,访问子文件夹
    特别的,返回到上级目录夹用以下指令:
    • cd ..

编译代码

新建一个终端,然后在新建的终端中打开文件所处的文件夹。
然后输入以下语句:
g++ name.cpp -o name
如果有其他编译指令,加在最后就行。我常用的编译指令:
-Wall -Wextra -std=c++14 -Ofast -fsanitize=address,leak,undefined

  • 最后那个东西是查UB的,Windows下不能用。

开虚拟内存内存/栈空间

开虚拟内存:ulimit -v 524288
开栈空间:ulimit -s 524288
后面那个数字是以KB作为单位的。

特别的,在一个终端里的栈空间/虚拟内存似乎只能越开越小,所以如果要改大最好新建终端。

快捷键

  1. 粘贴快捷键:ctrl+shift+V
  2. 复制快捷键:ctrl+shift+C
  3. 结束当前进程的快捷键 ctrl+C

比较文件

众所周知,Windows下的文件比较方法为 fc 1.out 2.out
Linux下也同样简单:diff 1.out 2.out
但是我们有时希望它给出的不是在哪里出错,而是直接在文件中特别地标出不同在哪行,这时我们使用:vimdiff 1.out 2.out

测试代码所用时间

time ./name
它会给出三个时间:realuser 以及 sys,其中 user 才是你真实的运行时间。

编辑器

接下来介绍三个编辑器的用法:

  1. VSCode
    详见上面的终端使用方法。
    值得一提的是,VSCode 可以直接打开文件(Open a Folden),而不用“访问文件夹”中提到的命令。
  2. Geany
    • 它没有给出编译运行的选项,所以就只能先编译(build)再运行(run)。
    • 新建一个源文件的快捷键是 ctrl+n
  3. Code::Blocks
    • 写好代码直接编译+—运行(build + run)。
    • 新建一个源文件的快捷键是 ctrl+shift+n

对拍

点击查看代码
#include <bits/stdc++.h>
using namespace std;
int cnt;
int main(){
	do{
		printf("%d\n", ++cnt);
		system("./make > 1.in");
		system("./my < 1.in > my.out");
		system("./force < 1.in > force.out");
	} while(!system("diff my.out force.out"));
	return 0;
}

一些误区

  1. 写代码的文件夹最好用英文命名,不然可能会出现奇奇怪怪的问题。
posted @   徐子洋  阅读(175)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示