首页游戏资讯让电脑充满消费力,10000+ 字帮你拆解 Windows「高效」的奥秘

让电脑充满消费力,10000+ 字帮你拆解 Windows「高效」的奥秘

misa2 04-21 4次浏览 0条评论

编注:「万字解析」是体验少数派付费栏目内容的更佳体例。我们期看用一万字的篇幅,系统、深度地分享有价值的内容,让少数派读者能够享受获得新知的愉悦。

本期「万字解析」内容选自《消费力超频:Windows 号令行适用手册》,做者 @Mirtle介绍了人人学得会、事事用得上的号令行东西,期看让新手进门,高手进阶,掌握强大的号令行东西,成为让 14 亿 Windows 用户羡慕的效率高手。

📍 小提醒:本文内容较长,章节数较多,定见共同目次找到本身感兴致的章节阅读。

本文目次

什么是号令行:利用利用的别的一种体例

为什么我们要利用号令行:功用强大、组合乖巧

根据模版创建 Word 文档

下载 B 站视频

安拆和治理号令行东西

运行号令行东西和号令的「末端」到底是什么?

区非分特别部号令与 shell 号令

理解号令行的语法

号令名

动做

参数

三类差别的号令风气

Unix sh 风气

Windows cmd 风气

PowerShell 风气

绝大大都的读者利用 Windows 的过程中,不免会碰着个别问题需要乞助于收集,譬如阅读器突然打不开百度首页时,此时某条材料会定见:

搜刮「号令提醒符」,双击翻开,在弹出的窗口输进 ping baidu.com,看看能不克不及 ping 通。

搜刮「号令提醒符」,双击翻开,在弹出的窗口输进 ping baidu.com,看看能不克不及 ping 通。

有些读者在更新到 Windows 11 后,不习惯新右键菜单,找不到换回旧菜单的选项,此时会在网上的材料中发现如许的办法:

展开全文

以治理员权限运行 cmd.exe,输进

reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve

然后重启资本治理器或者重启电脑即可。

翻开一个黑黝黝的窗口,输进一串似乎有规则可循的文字,最初完成使命。它显著区别于我们日常所习惯的键鼠交互形式,也是本系列文章的配角: 号令行界面(Command Line Interface,缩写 CLI),本文简称其为号令行。

部门读者可能对号令行有着敬而远之的心理,那不难理解。在无数的科幻片子中,黑客们对着老式主机猛敲键盘,顷刻之间改动时局,倾覆世界。

可惜,我无法教授给各人如许的本领,那些影视片段大都是唬人的。但是从另一方面考虑,号令行不是战斗机,也不是坦克,它只是家里仓库里停放许久的一辆皮卡,日常平凡或许不会想到它,需要的时候仍然皮实耐用。

然而片子里的有一幕镜头非常贴切:《黑客帝国》中 Mouse 小哥指着黑底绿字的屏幕说:「一个红衣女郎」,初来乍到的 Neo 一愣,食惊于 Mouse 竟然能看懂屏幕上看似没有任何层次的文字。

期看看完那篇文章后,你也能初步领会看似深邃、实则简洁高效的号令行东西。

图片来自 Wikipedia

▍什么是号令行:利用利用的别的一种体例

在许多 Windows 用户的眼中,号令行是神异的,它似乎和日常用到的各类软件利用毫无联系关系。但恰好相反,号令行十分通俗,它仅仅是 利用利用的别的一种体例罢了。

无妨用一个最常见的场景来举例:在 Windows 上翻开 Word。绝大大都人城市找到桌面的灵敏体例,或者在起头菜单中搜刮利用名「Word」,然后双击,轻松完成使命。

还有少部门人会晓得一串灵敏键: Win + Ctrl + Shift + Alt + W,按下后系统会间接翻开 Word,所有润色键一路按下被称为 Office 键,再按下差别的字母会间接翻开差别的 Office 套件。

当然,同时按下那么多键会让你手抽筋,更有效的做法是 右键灵敏体例 属性 灵敏键,为那个灵敏体例设定一套按键组合。此时,当焦点位于桌面时,按下设定好的按键,也能启动利用。

然而在 1990 年,Windows 开机后其实不会进进桌面,用户也没有起头菜单能够点击,只要一个界面上清洁敏捷的 MS-DOS系统期待着你的输进。

此时,键进 Word,按回车,便能启动 Word 利用:

图片来自:winworldpc.com

Windows 上保留了一个类似于 MS-DOS 的利用——号令提醒符(cmd.exe)。我们暂且不管它到底是什么,先来体验若何用号令行翻开 Word。在 Windows 上搜刮「cmd」并翻开该利用。

起首要做的是导航到 Word 利用所在的文件夹。那就像利用一些绿色软件时,因为它们安拆时不会创建灵敏体例,用户必需先用文件资本治理器找到 exe 文件所在的目次。只不外那一次我们用的是号令:cd,你能够将它理解为英文 change directory 的缩写,cd 后跟上空格以及 Word 所在的目次(不要忘了两边的引号)回车确认施行:

cd "C:\Program Files\Microsoft Office\root\Office16"

然后再输进 Word 的利用名: winword.exe,回车后 Word 便启动了:

回忆我们上面提到的三种翻开 Word 的办法:

第一种利用的是 Windows 供给的图形用户界面( Graphical User Interface,GUI,/ˈɡuːi/),我们看到的是各类按钮,用鼠标辅以键盘来和那些控件交互;

灵敏键往往是对 GUI 的辅助,它之所以会存在,最重要的原因就是用鼠标点太费事了,特殊是关于 Photoshop 那类功用繁多的的利用而言;

孔乙己曾向世人卖弄道:「回字有四样写法」,差别的写法现实上表达的都是统一种字。号令行、灵敏键、键鼠操做其实也是同样的事理,它没有什么神异和特殊的处所。故宫有许多门,每一个门都能进进宫殿内;利用有许多种利用的办法,鼠标辅以键盘、灵敏键、号令行都是和利用交互的一种路子,仅此罢了。

▍为什么我们要利用号令行:功用强大、组合乖巧

既然都是操做利用的一种体例,那么我们为什么还放着简单灵敏的图形界面不消,「返璞回实」地用号令行呢?那就要提到号令行的两大优势:功用强大、组合乖巧。

根据模版创建 Word 文档

仍以 Word 举例,假设我们需要 Word 不展现启动界面,且用现成的模板新建文件呢?

例如我的 D 盘上有一份荣誉证书模板 d:\honor.dotx,我需要以此模板为根底,造造二十份差别学员的证书:

注:模板来自 office 官网

图形界面确实能够实现:为了不展现启动界面,我们需要在 Word 的选项中认真搜觅一番对应的设置;从模板新建文档需要双击图标启动 Word,找到 D 盘中的模板,最初在新建菜单中双击模板。二十份的话反复二十次即可。

在号令行中,我们仍然需要打字:同样是翻开 cmd 并导航到 Word 目次,此次输进的是 winword.exe /q /td:\honor.dotx,细心的读者估量已经能猜出 winword.exe后的两个小尾巴的意思: q天然是指 quiet, t后面既然是模板的途径,那可能代表着 template,整句话就像在发号出令:

「很酷,可惜打那么多字也没简单几。」你可能如许想。但号令行神异之处就在于:看似它只能用在黑漆漆的号令提醒符里,现实上却无处不在。

我们右键 Word 的灵敏体例抉择属性,此中有一个「目标」栏写着 Word 的利用途径。给它后面添加上我们刚刚写的两个小尾巴,目标栏此时的值应该是

"C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE" /q /td:\honor.dotx ‍

利用后,再双击,如今那个灵敏体例就能完美地达成我们的需求了:

下载 B 站视频

从 Word 示例中能够看出,常用的软件同样供给了号令挪用的体例,而且能够让日常办公生活便利一点点。其实,还有许多号令行东西供给了许多图形软件所不具备的功用。

好比说我们在 Bilibili 上看到一个视频,十分喜好,想要下载收躲,或者想要用在本身的做品中。目前大部门视频网站都不再供给下载为通用格局的功用。下面我们用到的是视频下载东西 yt-dlp。

和文章一开头提到的 reg.exe 差别,它并不是系统内置利用,需要预先下载到当地,就像我们要玩游戏起首得下载安拆一样。

我定见各人把我们后续下载的小东西全数放到 C:\tools或者 D:\tools目次下。下载到当地若双击系统弹出警告,需要先 右键文件 属性 去除锁定。

下载此中的 yt-dlp.exe

假设你测验考试双击此利用,会间接「闪退」。那是一般现象,它没有图形界面,需要在号令提醒符中利用。那类利用其实有个特殊的名字,喊做 掌握台利用(Console App Terminal App)。

如今我们从起头菜单搜刮并翻开 cmd.exe,那一次,我们不消 cd 导航到法式所在的文件夹,而是间接写出利用的全名,也就是它的完全途径。

获取利用途径的办法有两个,其一是右键文件(Windows 10 需要按住 Shift 再右键),抉择「复造文件地址」,最初在 cmd.exe 窗口上 右键点击以粘贴。

重视,在 cmd 中,点击鼠标右键不会唤出一套图形化菜单, Ctrl+V 也不起感化。 选中文本按右键是复造功用,不选中文本按右键是粘贴功用,那是以后会经常用到的身手。

我愈加选举第二种办法:间接把文件挈动到号令提醒符窗口上:

我们以少数派的视频为例,复造视频的地址(在 Chrome 中,能够按住 Ctrl,依次按 L,C 键),最初在号令提醒符窗口把链接粘贴到 yt-dlp 的全名后面,最末号令是:

D:\Tools\yt-dlp.exe

回车,施行,不外一会儿视频就会下载完毕:

整个过程很简单对吧?我们以至没有打过一个字母。

不外,视频下到哪往了?默认情状下,yt-dlp 会在视频存在当前的目次下,也就是我们每次输进号令前都展现的阿谁目次,在上面就截图中,就是 C:\User\Kepa,C:\User 下面的那个以用户名定名的子目次又被称为 Windows 的 用户目次,之后我们还会提到。

我不太称心默认下载的位置,想着间接下载到 D 盘的 Videos 文件夹多好。别的我还想存一份视频的封面图。就像 Word 示例一样。

此时我们需要给号令加小尾巴,那个小尾巴的正式名称多种多样,好比说参数(parameters,arguments)、标识(flags)、开关(switches)、选项(options)等等,本系列文章同一利用 参数指代,它的感化就是 规定利用详细应该若何完成我们给的指令,类似于语法中的润色成分,好比说本例:

D:\Tools\yt-dlp.exe

相较于前面的号令上面那行长了很多,但同样不难理解。前面仍是号令加链接,只不外后面多了两个参数,-- 号的感化和第一个例子中的 / 是一样的,表达「那后面的是参数」,整行号令翻译成天然语言:

yt-dlp.exe 听令:你往下载 ;

将视频输出到 D:\Videos\sspai_test.mp4;

不外不能不认可,图形界面完成不了的需求仍是少数,似乎绝大大都情状下图形界面简单曲看。特殊在 Windows 如许一个图形界面做得十分完美的系统下,没需要给本身找费事。但微软仍然没有放弃看似传统落后的号令行,能让微软留住开发资本的原因,是号令行那 无与伦比的乖巧性和自在组合的才能。

而号令行能轻松地批量处置各类使命,实现的体例之一就是脚本。

▍安拆和治理号令行东西

截至目前,本文已经向各人介绍了几个通过号令行形式利用的利用,每一次我城市让各人从官方网站下载,解压,然后挪动到 tools文件夹,再将利用所在目次添加到情况变量的 Path 中,用起来比通俗的 GUI 还要更费事一点。有没有办法能够省心省力一点,把那些流程主动化呢?

连系上一章中对脚本的论述,读者可能立即就会想到:把那些过程编写成脚本不就行了?那其实就是 Windows 下的 包治理器了。在 GitHub 上搜刮 Windows 平台三大包治理器 的软件库,不难发现它们供给的并不是安拆包,而是脚本。

包治理器是关于通俗人来说最为适用的号令行东西。它们能够搀扶帮助你 批量安拆、卸载、晋级 PC 中的利用,无需再往官网获得安拆包。关于前面的例子中,需要手动添加进情况变量的利用,包治理器也会主动帮你处置好。

Windows 平台支流的三个包治理器中,

winget 由微软开发,它能够间接安拆 Microsoft Store 中的利用;

Scoop 有社区自觉庇护,意愿者多,含有许多的小寡利用资本;

Chocolatey 由贸易公司庇护,库中利用最多,CLI 功用也最丰富。

winget 由微软开发,它能够间接安拆 Microsoft Store 中的利用;

Scoop 有社区自觉庇护,意愿者多,含有许多的小寡利用资本;

值得一提的是,除了 Scoop 有社区庇护的国内镜像,其他平台的包治理城市用到办事器位于大陆之外的收集资本,因而默认情状下载速度不太抱负。那一末节会以 Chocolatey 为例介绍包治理器的各类用法。

根据官网的教程,在包管收集畅达的情状下,搜刮 PowerShell,并以 治理员权限翻开。我们会在后面几章中详尽介绍 PowerShell,目前读者能够讲它理解为类似于 cmd 的利用,它们就像做统一个营业的两个差别的人员,固然都能运行号令,但干事办法和风气大不不异。我们在 PowerShell 中逐条粘贴并运行下面两条号令:

Set-ExecutionPolicy Bypass -Scope Process -Force

iex ( irm '' )

期待进度条走完,此时 Chocolatey 已经安拆完毕,试着输进 choco -? 会有以下输出:

下面需要用 choco 来搜刮一下我们之前用到过的几个小东西。搜刮 ytp-dl 的号令是:

choco search ytp-dl

你可能觉得那个搜刮成果不那么准确,别的成果里面有太多不相关的内容,此时就能够用上参数。-r 参数会让输出不展现无关内容,而 -e 参数代表仅展现完全婚配的条目:

一些读者可能十分在意空格问题。空格只是其分隔感化,无论有几都无所谓。例如说,我想查看 youtube-dl 的详细信息,施行 CHOCO info YOUTUBE-DL 也是完全没问题的。

安拆的号令是 choco install,卸载是 choco uninstall,晋级为 choco upgrade。我们还能用 choco export 将所有安拆的利用导出为列表,再用 choco import 导进重拆:

choco install youtube-dl -y # 安拆一个利用:youtube-dl,不加 -y 参数会要求确认

choco install adb youtube-dl typora -y # 安拆三个利用

choco uninstall adb -y # 卸载 adb

choco upgrade adb # 晋级 adb

choco upgrade all # 晋级全数软件

choco export D:\chocolist.config # 导出所有利用列表为 chocolist.txt

choco import D:\chocolist.config # 安拆 chocolist.txt 中的所有利用

此外,我们能够利用 config 号令设置 http 代办署理:

choco config set proxy

choco config unset proxy # 取缔设置代办署理

读者务必熟悉 Chocolatey 和 scoop 包治理器的根本操做,因为接下来假设利用到其他号令行利用,我不会再像本文一样详尽地给出安拆下载的体例,各人需要用 CLI 的体例安拆它们。

Chocolatey 其实供给了 GUI 版本( choco install ChocolateyGUI -y),读者能够测验考试一番,但想必不外多久就会用回号令行,事实 CLI 的资本占用和顺畅度必然会比封拆后的 GUI 好上很多。

▍运行号令行东西和号令的「末端」到底是什么?

前文中我们介绍了许多号令行东西,但在利用那些东西之前,我们都要翻开 cmd 或 PowerShell,它们到底是什么?

之前我们提到了 Windows 的前身,MS-DOS,那是一个只能通过号令行操做的古老系统。而所谓系统,素质上也是一个软件,但凡是的软件是系统和用户的中介,例如我们没办法不开机就利用 Office 办公套件,用 Word 编纂一个文档必需先让 Windows 启动。

但系统中的某些部门纷歧样,它间接和硬件打交道,用户和软件都通过系统那个中介来利用硬件资本完成使命。在系统,软件,用户那三个角色中,系统中负责调度硬件的那一部门别核心比来,地位最核心,因而有了一个形象的名字: 内核(Kernel)。

类似于一个坚果,有内核一定有外壳。最早人们既然用号令行的体例和系统交互,那么能运行号令的工具也天然就成了 壳(shell)。

Windows 上的 cmd、PowerShell 是 shell 的一种。此外,Linux 和 macOS 上有各类各样以 sh 结尾的利用,例如 bash、zsh、fish 以及 csh,此中的 sh 就是 shell 的缩写。所以那些单词会有三种读法:

第一种是字母本音 +[ʃ],例如 zsh 能够读成 [ziːʃ];

第二种是把 sh 发成 shell,例如 csh [siʃel];

shell 还有一个愈加形象的名字:号令行阐明器。我们已经碰着过一些号令:cd 会进进某个目次、del 能删除文件。那些号令很大水平上从天然语言精简而来,显然,操做系统其实不能理解人类的语言,而 shell 把 cd、del 等号令翻译成计算机能读懂的语言,它在用户和系统间充任了翻译官的角色。

因而也能够想见,差别的 shell 是差别的语言之间翻译官。一条号令能够在 PowerShell 中施行胜利,但 cmd 却可能会报错。例如,在 PowerShell 中施行 ls(list 的简称)能够列出当前目次下的所有条目,但 cmd 却不熟悉那个号令:

bash、zsh 等 Unix-like 系统上的 shell 和 PowerShell 更是有天地之别,固然有少部门常识是相通的,但 Windows 上进修了 PowerShell 后,仍然需要再系统地学一遍其他平台的 shell 操做,反之亦然。

不外固然那么说,认真看察不难发现,cmd 和 PowerShell 的窗口实是太像了,假设没有菜单栏的图标,你几乎看不出它们的区别。

之所以会如许,是因为我们看到的不是 shell 本体,而是喊做 Windows 掌握台(conhost.exe)的利用,它的背后躲着实正的 shell.

Windows 掌握台们有着另一个名字: 末端仿实器(terminal emulator),简称末端。

无妨做一个类比:微软推出的 Edge 阅读器和 Google 的 Chrome 阅读器基于统一个开源项目:Chromium。我们在地址栏上输进统一个网址后,两个阅读器城市展现同样的网页,那是因为两个阅读器负责衬着网页的核心是一样的。但 Edge 和 Chrome 的右键款式、设置页面、各类按钮等外在却完全差别。

两个阅读器中翻开的网页一样,但是 UI 控件差别

末端和 shell 的关系也十分类似。shell 是号令行阐明器,而末端负责供给输进的界面,展现号令的输出。一个 shell 能够毗连到各类末端。Windows 默认摘用的 Windows 掌握台、Windows 11 预拆的 Windows 末端、简洁而功用强大的 cmder、摘用的 Fluent Design 的 Fluent Terminal等利用都是末端,都能和 cmd 通信。

拓展:*NIX 系统确实如斯,但 Windows 的末端、shell 设想有所差别,Windows 掌握台承担着愈加复杂的使命,所有第三方末端都要通过 Windows 掌握台供给的 API 和 shell 通信。

差别的末端都运行着 cmd

各类末端不只 UI 上有所区别,在功用也有所差别。例如,上一篇文章我们提到:在 Windows 掌握台中需要选中文本,然后右键才能够复造所选文本。但在 Windows 末端中,用户能够设置选中文本间接复造,无需右键:

下面的演示中,我会不断利用那个愈加现代美看的 Windows 末端。没有安拆的读者,能够从 Microsoft Store 中搜刮下载。之后,在 Windows 设置 隐私和平安性 开发者选项中,将其设置为默认末端:

综上所述,shell 和末端的定义和区别在于:shell 将用户的输进阐明成计算机可以理解的语言,是运行各类号令的处所,差别的 shell 语法差别;而末端是 shell 的可视化界面,掌管着输进和输出,我们能够用 Windows 末端来替代 Windows 掌握台以获取更好的体验。

▍区非分特别部号令与 shell 号令

搞清晰了差别末端间的区别,我们再来认真看下末端中运行的差别号令间的区别。

在 Windows 上 cmd 和 PowerShell 是两个完全差别的翻译官,一条号令能够在 PowerShell 中施行胜利,但 cmd 却可能会报错。

一些读者可能有疑问:那为什么良多东西既能够在 cmd 上运行,也能在 PowerShell 上运行,而且用法完全一致呢?

事实上,那些东西不但在 Windows 平台语法不异,在 Linux 和 macOS 的 shell 中也是一样的。它们 不依靠于 shell 而存在,被称为外部号令,与之对应的,是 shell 自带的号令,被称为 shell 号令。

此外还有一部门跨平台的号令行东西既非外部号令,也非 shell 号令,它们其实是脚本。开发者为差别的 shell 写了差别的脚本文件来包管利用体验一致。

回忆一下第一篇中我们提到的一些例子。ping、Word、yt-dlp、adb、notepad 等等号令,其时我们是在 cmd 中运行的,你能够测验考试用 PowerShell 来施行那些号令,能够发现语法、功用都完全一致。

原理很简单。打个例如,Windows 和 macOS 是两个系统操做逻辑大相庭径,但两个系统上的 Chrome 阅读器按钮、菜单、功用大致是一样的。同样的事理,yt-dlp 等外部号令是以可施行法式(exe 文件)形式存在的,号令的参数和功用已经由第三方开发人员预先设想好,无论是什么 shell 都不会影响它们的用法。

我们能够用 where.exe法式证明上面的说法,它会返回一个外部号令的实在途径。例如,在 cmd 或者 PowerShell 输进 where.exe ping,末端会呈现 ping.exe 的途径:

那若何理解 shell 号令呢?外部号令之间没有什么联络,就像 Notepad 和 Word 之间没有关系一样;但 shell 号令类似于 Word 那个利用中的一个个小功用,它们是由统一个开发商为了一个大的目标,用一套规整的逻辑设想出来的。例如,cmd 自带的所有号令的参数都用 / 标识表记标帜,而 PowerShell 号令的参数则是由 - 标识表记标帜的。还记得之前用 adb 禁用利用的号令吗?

adb shell pm disable-user com.tencent.mm

有没有想过为什么它那么长?原因在于那行代码做了两件事, adb shell负责进进 adb 供给的 shell; pm disable-user才是禁用利用的号令,adb 供给的 shell 中,其他的号令长得都和 pm disbale-user差不多:

▍理解号令行的语法

搞清晰了外部号令和 shell 号令,就该好勤学习下号令行的语法。

认真揣摩的话,「进修利用号令行」那个话题似乎有些希罕。因为号令行利用也是利用法式,类比来看,经常利用手机的用户很少会问「若何利用淘宝」、「若何利用微信」等问题。

可号令行偏偏差别,假设我不在第一篇文章中告诉各人 Word 能够加 /t 参数,你可能历来没想过 Word 能够那么用。因而有一种看点认为,CLI 更大的缺陷就是「可发现性」差。

但事实并不是完全如斯。之所以许多人会觉得号令行难,是因为他们习惯了别的一种逻辑。还记得第一篇文章中我若何论述 CLI 感化的吗?

利用有许多种利用的办法,鼠标辅以键盘、灵敏键、号令行都是和利用交互的一种路子。

利用有许多种利用的办法,鼠标辅以键盘、灵敏键、号令行都是和利用交互的一种路子。

以手机 App 为例,所有手机利用都在一套同一的交互逻辑的框架下:

点击操做意味着确认、进进;

按住操做意味着菜单、更多;

滑动操做意味着滚动内容,挪动焦点。

点击操做意味着确认、进进;

按住操做意味着菜单、更多;

只要理解了 点、按、滑那三个根本操做,不消任何人教我们也能掌握一个新 APP 的根本用法。桌面端的利用交互也有类似的逻辑,鼠标左键、右键、中键不恰是对应着确认、更多和滑动吗?反过来说,你会觉得各类灵敏键记起来很费事,背后的原因是不是灵敏键背后贫乏一套同一的设想逻辑呢?

那就是第一篇所说的「和利用交互的路子」的素质。掌握了点按滑就会利用手机的各类利用,那学会了什么样的逻辑,就学会了所有的号令行利用呢?

和 GUI 差别,号令行中,我们就像写文章一样是通过输进字符来完成使命的,因而利用号令行的逻辑表示为语法(Syntax)。就像所有手机 App 都能点、按、滑一样,无论是 PowerShell、cmd 仍是 Bash,所有运行在 CLI 上的号令都遵守着一些配合的语律例范。

我们无妨把之前用过的几个号令写在一路:

yt-dlp

choco search youtube-dl -r -e

VirtualDesktop11 /w /right

powershell -nologo -file D:\tools\init.ps1

虽然它们功用、用法大相径庭,但号令的构成却出奇地一致: 号令名,动做,参数,它们之间以空格分隔。号令行的语法能够总结为:

号令名 动做 参数1 参数2 参数3 ……

shell 情况下各类号令都能笼统为上面的构造,只不外它们在某些字符的写法和挨次上有所差别,一些号令可能没有后两个部门。我们暂且把号令间的区别放一边,先逐个部门阐明此中的共性。

号令名

第一部门是 号令名。无论利用什么号令,都必需先喊出它的名字。就像分配使命时,必需先指定负责人一样。关于外部号令而言, 号令名就是外部利用的文件名。

在前面的进修中,我们既看到过简短如 notepad、choco 的利用名称,也熟悉到:假设利用所在途径没有加进情况变量,就必需写出利用的完全途径,不然 shell 就会报错:

该输进什么号令名,取决于利用开发者给他的利用起了什么名字,我们能用 where.exe 看到外部号令的详细途径。不外那些自行下载到当地的利用,我们完全能够把它们改成本身喜好的名字,下图中我就把之前用到过的 yt-dlp.exe 重定名为 yt.exe,施行起来也没有任何问题:

和类 Unix 系统差别,Windows 文件系统不区分大小写,因而利用名也不区分大小写。ping、PING甚至 piNG 都是统一个利用:

假设一个利用的完全途径含有空格,必需加双引号。因为一行号令的差别部门之间就是用空格分隔的,假设不加引号,shell 就会把它当做几份别离解析。此外务必记住,和 cmd 差别,PowerShell 在施行加引号的号令时,前面必需加 (见下图第三条命了),背后的原因我们之后会学到:

动做

第二部门是 动做。假设说号令名对应着一句话的主语的话,那么动做部门就相当于谓语和宾语。差别的号令的动做部门可能是类似的,例如 scoop install yt-dlp和 choco install yt-dlp都是安拆 yt-dlp 的意思。要想理解一行号令的功用,第一和第二部门是关键,例如 Chocolatey 复原代办署理的号令:

choco config unset proxy

号令名是 choco,后面都是动做部门,读起来像是一句精炼过的句子:

choco 设置装备摆设 取缔设置 代办署理

一些利用自己功用单一,号令名自己的意指就十分明白了,那么它就不需要第二部门。譬如第二篇文章中提到的 Chrome,用号令行的体例挪用它的时候,Chrome 独一的感化就是翻开阅读器。

参数

实正的难点在于第三部门参数,它的感化是详尽 规定一个动做要若何完成。良多情状下,进修号令行东西就是在学参数。一个号令能够有几十个参数,它们看似复杂,现实也有法例可循。

参数部门由特殊符号开头。本节一起头列出的四个号令,它们的参数前面是 -(减号)、--(两个减号)或 /(斜杠)那三种特殊符号,后面则是相对切近天然语言的字母或者单词: virtualdesktop /w /right的感化切换到右侧的桌面,参数 right指向右,参数 w是 Wrap的缩写,表达当切换到最右侧的桌面时,绕回第一个桌面。

鄙人面那行号令中:

powershell.exe -nologo -file D:\tools\init.ps1

我们还能发现两类差别参数: -file D:\tools\init.ps1是常规参数,其构造是「参数名 参数值」,也就是说 D:\tools\init.ps1是 file的详细值。关于常规参数而言,一旦我们写了参数名,往往需要为它指定一个适宜的数值:

参数名和参数值的毗连体例因利用而异。大大都号令用的是空格,不外也有用 = 或者 : 的案例。譬如用 choco 锁定利用(不停止更新)的号令:

choco pin add -name=利用名

那里用的就是 = 号。

常规参数之外, -nologo被称为开关参数(switch parameter)。那类参数只要是和否两种形态。假设我们不写 -nologo,那么 PowerShell 就会展现版权信息,反之则会隐往相关信息。 choco号令中的 r 和 e 也是类似的事理。

参数的大小写和号令名差别,是由利用开发者掌握的。-f 和 -F 极有可能是两个差别的参数,因而在输进参数的时候务必小心。

领会完号令的三大次要成分,在键进号令时你应该会更有自信心了。但理解了号令行的语法其实不足以搀扶帮助我们掌握目生的号令,我们还需要明白地晓得一个号令能够加哪些动做,有哪些参数。

▍三类差别的号令风气

而在我们接触了那么多号令行东西之后,不难发现,在 号令名 动做 参数 那个组合中,外部号令的前两部门都大同小异,但参数部门则各有特征。根据那些特征,我们能够将外部号令分为三类。领会完那三种「模具」,你便能更快地掌握新的外部号令。

Unix sh 风气

计算机开展过程中,在 Unix 时代几个最为时髦的 shell —— sh(bin/sh)、Bash(/bin/bash)影响下,号令行的最后标准逐渐确立,之所以 Linux、macOS 等 Unix-like 系统上的各类 shell 号令根本一致,即是因为它们或多或少都遵照着那些的习惯。

现代的开发者们在设想本身的利用时,经常倾向于和类 Unix 系统上的 shell 号令风气连结一致。因而,Unix sh 风气的外部号令非经常见。好比说我们刚刚用到的 cURL,通过文档看察其语法和参数:

号令的特征是:

参数大多由 - 或者 -- 开头;

- 后接短参数,即一个字母,-- 后接长参数,即完全的单词,多个单词由 - 毗连。前者往往是后者的简写形式;

参数名和参数值之间往往由空格或者 = 毗连;

参数区分大小写;

参数大多由 - 或者 -- 开头;

- 后接短参数,即一个字母,-- 后接长参数,即完全的单词,多个单词由 - 毗连。前者往往是后者的简写形式;

参数名和参数值之间往往由空格或者 = 毗连;

以上四点是所有 Unix sh 风气号令的共有特征,假设碰着了那类号令,利用 command --help可能率能调出其文档。

不但是 cURL,我们用过的 npm、yt-dlp 等大部门利用属于此类风气,好比说当初我们用 yt-dlp 下载视频的号令是:

yt-dlp url --output D:\Videos\sspai_test.mp4 --write-thumbnail

号令的文档告诉我们参数 --output 有一个简写形式 -o,因而,它和下面的号令是等价的:

yt-dlp url -o D:\Videos\sspai_test.mp4 --write-thumbnail

又因为 Unix-like 风气的号令区分大小写,所以万万不要写成了 yt-dlp url -O ……。

不外有时候你会看到那类号令的短横线后跟了不但一个字母,好比说 curl -fsSL、 git -am,那并没有和 Unix sh 风气抵触, 而是同时指定多个短参数的简单写法: curl -fsSL等同于 curl -f -s -S -L。

Windows cmd 风气

从各类意义上,Windows 都不遵照许多类 Unix 系统奉为圭臬的种种习惯。cmd 是微软从 MS-DOS 根底上拓展而来的 shell,那也培养了 Unix sh 风气之外的 Windows cmd 风气,它的典型例子就是 cmd 自己了:

其特征是:

参数开头是 / 符号,其后既能够是字母,也能够是单词;

参数名不区分大小写;

参数名和参数值之间由空格或者 : 毗连。

参数开头是 / 符号,其后既能够是字母,也能够是单词;

参数名不区分大小写;

调出它们的文档的办法是 command /?。除了 cmd,之前我们用过的 Word、VirtualDesktop 都属于此类。现实上,大部门 Windows 预置的外部号令,以及专门为 Windows 写的利用一般都遵照那类风气,例如 Windows 自带的电源治理小东西,powercfg.exe:用它来生成一份电池利用陈述的号令是: powercfg.exe /BATTERYREPORT,将参数小写也是没问题的:

相较于一板一眼的 Unix sh 风气,那类的号令设想得十分宽松,一些号令撑持省略参数前的 /符号,或者用 - 取代,那也是为什么各人能在收集上看到统一个号令的各类写法。我仍然定见各人同一地利用 /,因为并不是所有利用都撑持此特征。

PowerShell 风气

第三种风气的号令更好理解,其特征是:

参数由 - 开头,- 后能够是单词或字母;

参数不区分大小写;

参数名和参数值之间一般用空格分隔。

参数由 - 开头,- 后能够是单词或字母;

参数不区分大小写;

查阅那类号令文档的办法一般是 command -help,能够缩写为 -h,少数跨平台的利用倾向于利用那种风气,前文展现过的 PowerShell、magick 都属于此类:

那是最简单的一类号令,我们只要记住它的参数是由 - 引导的即可。但它们的缺点是号令写起来往往很长。

原文链接:

做者:数字东西组

责编:数字东西组 ‍

/ 更多热门文章 /

机战w下载
怎么把wma文件转换成mp3格局,4个妙招快速处置 2022年万亿GDP城市整体房价收进比下降,长沙、泉州等地购房压力相对小
相关内容
发表评论

游客 回复需填写必要信息