新一代 OIer 的快速入门命令行教程

新一代 OIer 的快速入门命令行教程前言 为啥写这篇教程 几位家长 欸 wwh 你比赛时用啥写程序啊 我 gedit 命令行编译 一番解释之后 几位家长 哦哦哦我明白了 那命令行是啥啊 然而当时我很饿 于是说回来写篇 blog 介绍一下

大家好,我是讯享网,很高兴认识大家。

前言:为啥写这篇教程

几位家长:“欸wwh,你比赛时用啥写程序啊?”
我:“gedit + 命令行编译。”
(一番解释之后)
几位家长:“哦哦哦我明白了,那命令行是啥啊?”
然而当时我很饿,于是说回来写篇 blog 介绍一下 …

一个方面是为了遵守诺言,另外一个方面是我发现的确现在许多 OIer 习惯于使用 IDE 编程,然而这对于竞赛时并不是很友好,故专门写一篇教程介绍一下,权当是抛砖引玉了。

本文不保证语言描述完全正确,但可以保证命令语句及其用法解释无误。

前前言:这篇教程日后可能会继续更新。对于普及组和提高组阶段的 OIer 而言,本文目前足矣。


前言2 : 关于命令行:其实从未接触过命令行的 OIer 并不需要详细了解其具体含义,因此可以简单理解为“可以执行某个操作的一条语句”。

Part 1 终端

命令行命令通常在终端中执行。在 Windows 下,常用终端有 cmd(基本没人用),PowerShell,以及微软最新的 Windows Terminal 等;Linux 下我一般用默认 Shell,对其它终端并不了解,不做介绍。

为了最大程度接近 OI 赛事考试环境,建议在 Windows 中使用 WSL 或 babun 以模拟 NOI Linux 的环境,若想作为一个 OIer 在 Windows 中获得**的编程体验,建议在上述(WSL 和 babun)仿真 Linux 终端中使用 zsh + Oh My zsh。

Part 2 Linux 命令

由于 Windows 大有逐步怀抱 Linux 的趋势(WSL 2.0 和 PowerShell 最新版本中接受 Linux 命令行语法均是证明),因此这里仅介绍 Linux 下的命令。

由于笔者是重度 Oh My zsh 患者,因此这里的所有命令均在 zsh 下执行。对于其他(如 bash、cmd)除了显示方式不同外并无过多查一(但是 Windows 自带的 cmd 对许多命令不兼容,因此建议在 PowerShell 实现)。

首先,我们可以使用 pwd 命令打印当前目录:


讯享网

➜ Desktop pwd /cygdrive/d/Desktop 

讯享网

这里必须做出解释,由于笔者的 Oh My zsh 主题的原因, 后面的第一个字符串是当前目录;由于笔者是在 babun 中的 zsh 下执行,因此 /cygdrive 可以感性理解为 此电脑。因此上述打印的目录相当于各位熟悉的 Windows 下的目录 :D:\Desktop

我们可以用 ls 命令打印当前目录下的所有文件:
order_ls
我们可以使用 cd {...} 命令进入一个目录:
order_cd

那么如何编译一个 C++ 源程序并运行呢?
一般来说,我们的做法是(以上图的 maker.cpp 为例)

讯享网编译:g++ [FILENAME].cpp -o [EXENAME] 运行:./[EXENAME] 

➜ Desktop g++ maker.cpp -o maker ➜ Desktop ./maker  1 2 4 0 4 4 3 3 2 4 % 

(恶臭数字请忽略,以及最后那个 % 是 zsh 的人性化设计:程序没有换行时会自动换行并在最后打上一个 %)。

至此,命令行萌新 OIer 目前可以用到的命令行知识就这些了。接下来,来看一些常用的命令。

Part 3 竞赛中的常用命令

这部分的命令,有一些可能只会在 Linux/仿真 Linux 终端下适用。

  1. 快速分解质因数 factor [NUMBER]
    例如:
讯享网➜ Desktop factor  : 2 31 1847 
  1. 判断一个程序的运行时间 time ./[EXENAME]
    例如:
➜ Desktop time ./maker {输出} ./maker 0.00s user 0.05s system 58% cpu 0.078 total 

该命令可以有效检验程序是否超时。
3. 判断两个文件的差异 diff [FILE1] [FILE2]
用于对拍。

目前笔者(可以想到的)入门的命令行相关知识、操作就这么多了,祝阅读本文的命令行萌新 OIer 可以灵活运用,尽快掌握命令行这一对于 OIer 而言几乎必不可缺的知识。

(可能会有更新)。

小讯
上一篇 2025-03-11 23:31
下一篇 2025-01-19 17:35

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/19429.html