新一代 OIer 的快速入门命令行教程
前言:为啥写这篇教程
几位家长:“欸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
命令打印当前目录下的所有文件:
我们可以使用 cd {...}
命令进入一个目录:
那么如何编译一个 C++ 源程序并运行呢?
一般来说,我们的做法是(以上图的 maker.cpp
为例)
编译:g++ [FILENAME].cpp -o [EXENAME]
运行:./[EXENAME]
如
➜ Desktop g++ maker.cpp -o maker
➜ Desktop ./maker
114514
1 2 4 0 4 4 3 3 2 4 %
(恶臭数字请忽略,以及最后那个 %
是 zsh 的人性化设计:程序没有换行时会自动换行并在最后打上一个 %
)。
至此,命令行萌新 OIer 目前可以用到的命令行知识就这些了。接下来,来看一些常用的命令。
Part 3 竞赛中的常用命令
这部分的命令,有一些可能只会在 Linux/仿真 Linux 终端下适用。
- 快速分解质因数
factor [NUMBER]
例如:
➜ Desktop factor 114514
114514: 2 31 1847
- 判断一个程序的运行时间
time ./[EXENAME]
例如:
➜ Desktop time ./maker
{输出}
./maker 0.00s user 0.05s system 58% cpu 0.078 total
该命令可以有效检验程序是否超时。
3. 判断两个文件的差异 diff [FILE1] [FILE2]
用于对拍。
目前笔者(可以想到的)入门的命令行相关知识、操作就这么多了,祝阅读本文的命令行萌新 OIer 可以灵活运用,尽快掌握命令行这一对于 OIer 而言几乎必不可缺的知识。
(可能会有更新)。
新一代 OIer 的快速入门命令行教程相关推荐
- 零基础快速入门SpringBoot2.0教程 (三)
一.SpringBoot Starter讲解 简介:介绍什么是SpringBoot Starter和主要作用 1.官网地址:https://docs.spring.io/spring-boot/doc ...
- Go 通过 cobra 快速构建命令行应用
这里填写标题 1. Go 通过 cobra 快速构建命令行应用 1.1. cobra 能帮我们做啥? 1.2. cobra 基础使用 1.3. 概念 1.4. Commands 1.5. Flags ...
- 视频教程-快速入门Python基础教程_Python基础知识大全-Python
快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...
- 命令行教程,第一部分 — 导航目录
命令行教程,第一部分 - 导航目录 如果你已经在 Mac 上打开了 Terminal 应用程序,或者在 Windows 上打开了 Git Bash 应用程序,那么你可以开始执行此命令行教程. 教程概述 ...
- PS的快速入门与使用教程
PS的快速入门与使用教程 网盘PhotoShop CC的破解版安装包地址:http://pan.baidu.com/s/1gfOQR31 网盘视频学习地址:http://pan.baidu.com/s ...
- 制作iOS越狱deb插件+dpkg命令行教程
iOS越狱deb插件的制作 dpkg命令行教程 deb安装包的制作 介绍 Cydia Sileo都是基于Debian开发的, 所以插件都是打包成.deb格式 deb包是Debian软件包格式,文件扩 ...
- 视频教程-快速入门Python基础教程_Python基础进阶视频-Python
快速入门Python基础教程_Python基础进阶视频 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥199.00 立 ...
- mysql命令行安装教程_MySQL命令行教程
mysql命令行安装教程 1. MySQL简介 在之前的教程中 ,我讨论了有关MySQL服务器的安装以及MySQL数据库使用入门的问题. 在本文中,我们将详细讨论如何使用MySQL命令行执行各种操作, ...
- mac退出linux命令行,mac/Linux日常入门命令行使用
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Linux/mac 命令行操作简单介绍 linux/mac 日常入门命令行使用--文件以及文件夹操作 日常文件夹以及文件 ...
最新文章
- Python环境的安装(Anaconda+Jupyter notebook+Pycharm)
- linux 查看java最大内存配置,Linux和Windows下的内存设置
- php将字符变为数字,数字字符怎么转化为数字 php 怎么将字符转成数字
- arduino openmv 显示图像_6 个芯片打造复古经典计算机:215 色显示,能编程能玩小游戏...
- ORACLE数据库的备份和还原。
- Android 报错:error: too many padding sections on bottom border
- 小米平板位置服务器,小米平板 2
- android 使用GridView实现Gallery的效果,并且从最左边开始
- 使用fiddler4和夜神模拟器进行app抓包
- Linux查看服务器自动关机,Linux系统自动关机的命令详解
- 技嘉主板BIOS修改风扇转速设置详细教程
- mfc控件设置颜色(超全)
- 计算机组成原理_选择
- iOS 普陀大学堂APP隐私政策
- garch dcc用matlab,MRS DCC GARCH 模型的MATLAB 程序修改
- 全栈工程师眼中的HTTP
- 适配器模式设计插头标准
- 来自联想维修站的内部发行资料
- java字典初始化_在Java中用一组特定的数据初始化字典
- 多边形扫描转换算法中的边表(Edge Table, ET)
热门文章
- 清华计算机考研报考人数,2020部分院校考研报考人数统计
- sqldbx mysql 乱码_使用PLSQL Developer和DbVisualizer、SQLDBx查询oracle数据库时出现乱码...
- office服务器草稿位置,精确定位图片在Word文档中的位置的操作方法
- AutoCAD快捷键大全
- cad修改快捷键_CAD入门学习技巧:CAD软件中的CAD快捷键的分类
- 什么是软路由和硬路由,两者的区别有什么?
- 计算机excel 考试操作,计算机考试操作考点列表
- 乐高无限自己地图无法服务器,乐高无限地图制作攻略 建造的小细节不要错过...
- java 3D学习笔记
- Snug(舒适) as a Bug(小虫) in a Rug(小地毯)(2019/1/2)