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作为单位的。
特别的,在一个终端里的栈空间/虚拟内存似乎只能越开越小,所以如果要改大最好新建终端。
快捷键
- 粘贴快捷键:
ctrl+shift+V
- 复制快捷键:
ctrl+shift+C
- 结束当前进程的快捷键
ctrl+C
比较文件
众所周知,Windows下的文件比较方法为 fc 1.out 2.out
。
Linux下也同样简单:diff 1.out 2.out
。
但是我们有时希望它给出的不是在哪里出错,而是直接在文件中特别地标出不同在哪行,这时我们使用:vimdiff 1.out 2.out
。
测试代码所用时间
time ./name
它会给出三个时间:real
,user
以及 sys
,其中 user
才是你真实的运行时间。
编辑器
接下来介绍三个编辑器的用法:
- VSCode
详见上面的终端使用方法。
值得一提的是,VSCode 可以直接打开文件(Open a Folden),而不用“访问文件夹”中提到的命令。 - Geany
- 它没有给出编译运行的选项,所以就只能先编译(build)再运行(run)。
- 新建一个源文件的快捷键是
ctrl+n
。
- 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;
}
一些误区
- 写代码的文件夹最好用英文命名,不然可能会出现奇奇怪怪的问题。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现