浅谈命令行使用
导言
命令行是一种强大、快捷的工具。有时候可以比 GUI 操作更加便捷。其另一大优点是可以极其容易的通过 ssh 控制其他机器。
初识命令行
在 Windows 下,常见 shell 有命令提示符(cmd),PowerShell 两种。我们主要阐述 cmd。在 linux 平台上你还会见到 bash。bash 和 cmd 的命令是有一部分重合的。
打开 cmd 的一种方式是按 Windows 键,然后搜索 cmd;另一种方式是 Win+R,再输入 cmd 运行。

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

在提示符(>)后输入命令,然后按回车就可以看到命令的结果。你学过了 ping 和 ipconfig 命令,但让我们从头开始,学习最基本,使用频率最高的命令。
基本命令
基本命令只有两个(好耶),一个切换目录,一个查看当前目录内容。
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 命令。

发生了什么?
要了解这个问题,需要知道两个概念。
- 
重定向 (redirect)
使用
>字符表示重定向输出。>>表示添加内容。
重定向输入使用的是<字符。示例:
dir > result.txt,将当前目录的文件写入result.txt(若不存在则新建) - 
特殊文件
在 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 也会提示你确认)。

重命名
两种方法: move 或 ren。
使用 /? 开关自行学习。
复制
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  |  | 

sys.argv 第 0 项是当前的文件名,后面是获得的参数。
对参数进行处理
除了手工进行处理之外,python 还提供了一个内置库:argparse。可以自行学习。





