导言

命令行是一种强大快捷的工具。有时候可以比 GUI 操作更加便捷。其另一大优点是可以极其容易的通过 ssh 控制其他机器。

初识命令行

在 Windows 下,常见 shell 有命令提示符(cmd),PowerShell 两种。我们主要阐述 cmd。在 linux 平台上你还会见到 bash。bash 和 cmd 的命令是有一部分重合的。

打开 cmd 的一种方式是按 Windows 键,然后搜索 cmd;另一种方式是 Win+R,再输入 cmd 运行。

打开 cmd 后,你会见到这样的界面(因为我安装了 Windows Terminal,与你的电脑外观略有不同,但是内容是一样的)。

在提示符(>)后输入命令,然后按回车就可以看到命令的结果。你学过了 pingipconfig 命令,但让我们从头开始,学习最基本,使用频率最高的命令。

基本命令

基本命令只有两个(好耶),一个切换目录,一个查看当前目录内容。

cd

cd = Chang Directory = 改变目录

用来改变当前的工作目录。在 cmd 中,使用 Tab 可以补全路径使用 ↑ 键可以找到历史命令(这两个键极其有用、好用,一定要掌握)。

路径分为绝对路径相对路径

绝对路径:从根目录开始的路径。例如:C:\llx\0-work
相对路径:从当前目录相对的路径。例如:工作目录为 C:\llx,则此时 0-work 就代表 C:\llx\0-work

同时有两个特殊路径,. 代表当前工作目录,.. 代表上级父目录。

在 Windows 环境下,你应该使用反斜杠(\)来表示路径分隔符。但在 linux 环境下,你需要使用正斜杠(/),这是因为某些历史原因导致的,需注意。

改变驱动器

你可能想要换到 D 盘。你输入了 cd D:\,然而什么都没有发生。这也是一个历史遗留问题。如果要切换驱动器,需要加入 /D 开关,或者输入 <盘符名>: 切换到新的盘符。

开关:开关是用来控制程序行为的一些参数。
在 Windows 平台下,开关输入形式一般为 /X,在 linux 平台下,格式一般为 -x, --option
一般来说 /? 开关是用来获取帮助的开关。(linux 下使用 --help)

dir

dir = list directory = 列出当前工作目录下的所有文件和目录。

dir 命令也有一些开关,可自行探索。

在 linux 平台下使用 ls = list directory 命令。

文件操作命令

有时候你会想要 查看/建立/删除/重命名一些文件/目录。(增删查改)

查看文件

在 Windows 下使用 type 命令。

在 linux 平台下使用 cat 命令。

建立空文件

使用 type NUL > [文件名]

在 linux 平台下使用 touch 命令。

发生了什么?

要了解这个问题,需要知道两个概念。

  1. 重定向 (redirect)

    使用 > 字符表示重定向输出。>> 表示添加内容。
    重定向输入使用的是 < 字符。

    示例:dir > result.txt,将当前目录的文件写入 result.txt (若不存在则新建)

  2. 特殊文件

    在 Windows 系统中,有一些特殊文件。一个常用的是 NUL (linux 下使用 /dev/null),这相当于一个空文件,重定向输出到他可以让程序的输出直接销毁。

建立目录

使用 mkdir [目录名]

mkdir = make directory。

删除文件

使用 del 命令。del 命令可以指定一个目录或文件。指定文件则删除此文件,指定目录则删除这个目录下所有内容(不包括目录)。

可以使用通配符 *,相当于正则的 .* ,匹配零个或多个任意字符。通配符 ? 表示一个字符。(看到卡西欧电子词典了吗?)

在 linux 平台下使用 rm 命令。

在删除文件的时候,一定要看清楚!!!
在删除文件的时候,一定要看清楚!!!
在删除文件的时候,一定要看清楚!!!

老梗: rm -rf /,删除整个电脑的文件,打了之后就只能重装。(linux 用)
这些命令删除的东西不会进入回收站,没了就是没了,找回来就要硬盘恢复。cmd 很强大,所以一定看清楚再执行所有危险命令

删除目录

你可能想要删除一个目录,但是 del 命令并做不到这个。你需要 rmdir 命令。

rmdir = remove directory。

rmdir 要求目录是空的。否则需要打开 /S 开关,表示把这个目录的内容也一起删掉(只要打开 /S 开关,就要小心,Windows 也会提示你确认)。

重命名

两种方法: moveren

使用 /? 开关自行学习。

复制

copy 命令。

最简单用法 copy [SOURCE] [DESTINATION]

在 linux 平台下使用 cp 命令。

其余常用命令

  • cls:清屏
  • ssh:ssh 连接
  • sftp:sftp 连接
  • echo:输出
  • tree:列树状图

使用命令行执行程序

python

使用 python 文件名 可以执行 python 文件。

发生了什么?
python 并不是一个内置的命令,但为什么打出 python 就可以执行程序呢?

这是因为 python 被加入到了环境变量 PATH 中。打出 python 就调用了已经安装好的 python.exe。而 python.exe 就可以对获得的这些参数进行响应。

使用 python 进入交互式解释器。(这个有用!)

(C++)

g++ file.cpp -Wall -Wextra -Wshadow -std=c++14 -g -o file.exe

程序获得参数

既然我们知道 python.exe 可以对我们获得的参数进行处理,那么用 python 如何获得这些参数呢?

事实上,python 的内置库 sys 中有对此的支持。

1
2
import sys
print(sys.argv)

sys.argv 第 0 项是当前的文件名,后面是获得的参数。

对参数进行处理

除了手工进行处理之外,python 还提供了一个内置库:argparse。可以自行学习。