浅谈命令行使用
导言
命令行是一种强大、快捷的工具。有时候可以比 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
。可以自行学习。