|
| 1 | +--- |
| 2 | +category: |
| 3 | + - Java企业级开发 |
| 4 | +tag: |
| 5 | + - 辅助工具/轮子 |
| 6 | +title: chocolatey:一款 GitHub 星标 8.2k+的Windows命令行软件管理器 |
| 7 | + |
| 8 | +--- |
| 9 | + |
| 10 | +小二是公司新来的实习生,之前面试的过程中对答如流,所以我非常看好他。第一天,我给他了一台新电脑,要他先在本地搭建个 Java 开发环境。 |
| 11 | + |
| 12 | +二话不说,他就开始马不停蹄地行动了。**真没想到,他竟然是通过命令行的方式安装的 JDK,一行命令就搞定了!连环境变量都不用配置,这远远超出了我对他的预期**。 |
| 13 | + |
| 14 | +我以为,他会傻乎乎地下一步下一步来安装 JDK,就像这样。 |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | +然后这样配置环境变量。 |
| 19 | + |
| 20 | + |
| 21 | + |
| 22 | +结果他是这样的,就一行命令,环境变量也不用配置! |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | +卧槽!牛逼高大上啊! |
| 27 | + |
| 28 | +看着他熟练地在命令行里安装 JDK 的样子,我的嘴角开始微微上扬,真不错!这次总算招到了一个靠谱的。 |
| 29 | + |
| 30 | +于是我就安排他做一个记录,打算发表在我的小破站《Java 程序员进阶之路》上。从他嘴里了解到,他用的命令行软件管理器叫 chocolatey,这是一个Windows下的命令行软件管理器,在 GitHub 上已经收获 8.2k+的星标,可以方便开发者像在Linux下使用yum命令来安装软件,或者像在macOS下使用brew 命令来安装软件,非常酷炫。 |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | +以下是他的记录,一起来欣赏下。 |
| 37 | + |
| 38 | +### 先来了解 shell |
| 39 | + |
| 40 | +对于一名 Java 后端程序员来说,初学阶段,你可以选择在 IDE 中直接编译运行 Java 代码,但有时候也需要在 Shell 下编译和运行 Java 代码。 |
| 41 | + |
| 42 | +>Windows 下自带的 Shell 叫命令提示符,或者 cmd 或者 powershell,macOS 下叫终端 terminal。 |
| 43 | +
|
| 44 | +但当你需要在生产环境下部署 Java项目或者查看日志的话,就必然会用到 Shell,这个阶段,Shell 的使用频率高到可以用一个成语来形容——朝夕相伴。 |
| 45 | + |
| 46 | +一些第三方软件会在原生的 Shell 基础上提供更强大的功能,常见的有 tabby、Warp、xhsell、FinalShell、MobaXterm、Aechoterm、WindTerm、termius、iterm2 等等,有些只能在 Windows 上使用,有些只能在 macOS 上使用,有些支持全平台。还有 ohmyzsh 这种超神的 Shell 美化工具。 |
| 47 | + |
| 48 | +这里,我们列举一些 Shell 的基本操作命令(Windows 和 macOS/Linux 有些许差异): |
| 49 | + |
| 50 | +- 切换目录,可以使用 cd 命令切换目录,`cd ..` 返回上级目录。 |
| 51 | + |
| 52 | + |
| 53 | + |
| 54 | + |
| 55 | +- 目录列表,macos/linux 下可以使用 ls 命令列出目录下所有的文件和子目录(Windows 下使用 dir 命令),使用通配符 `*` 对展示的内容进行过滤,比如 `ls *.java` 列出所有 `.java`后缀的文件,如果想更进一步的话,可以使用 `ls H*.java` 列出所有以 H 开头 `.java` 后缀的文件。 |
| 56 | +- 新建目录,macOS/Linux 下可以使用 mkdir 命令新建一个目录(比如 `mkdir hello` 可以新建一个 hello 的目录),Windows 下可以使用 md 命令。 |
| 57 | +- 删除文件,macOS/Linux 下可以使用 `rm` 命令删除文件(比如 `rm hello.java` 删除 hello.java 文件),Windows 下可以使用 del 命令。 |
| 58 | +- 删除目录,macOS/Linux 下可以使用 `rm -r` 命令删除目录以及它所包含的所有文件(比如说 `rm -r hello` 删除 hello 目录)。Windows 下可以使用 deltree 命令。 |
| 59 | +- 重复命令,macOS/Linux/Windows 下都可以使用上下箭头来选择以往执行过的命令。 |
| 60 | + |
| 61 | + |
| 62 | + |
| 63 | +- 命令历史,macOS/Linux 下可以使用 `history` 命令查看所有使用过的命令。Windows 可以按下 F7 键。 |
| 64 | + |
| 65 | + |
| 66 | + |
| 67 | + |
| 68 | +- 解压文件,后缀名为“.zip”的文件是一个包含了其他文件的压缩包,macOS/Linux 系统自身已经提供了用于解压的 unzip 命令, Windows 的话需要手动安装。 |
| 69 | + |
| 70 | +### 再来了解chocolatey |
| 71 | + |
| 72 | +先安装 chocolatey。这是一个Windows下的命令行软件管理器,可以方便开发者像在Linux下使用yum命令来安装软件,或者像在macOS下使用brew 命令来安装软件,非常酷炫。 |
| 73 | + |
| 74 | +>The biggest challenge is reducing duplication of effort, so users turn to Chocolatey for simplicity |
| 75 | +
|
| 76 | +传统的安装方式要么非常耗时,要么非常低效,在命令行安装软件除了简单高效,还能自动帮我们配置环境变量。 |
| 77 | + |
| 78 | +>- 官方地址:[https://chocolatey.org/](https://chocolatey.org/) |
| 79 | +>- 安装文档:[https://chocolatey.org/install#individual](https://chocolatey.org/install#individual) |
| 80 | +
|
| 81 | +第一步,以管理员的身份打开 cmd 命令行。 |
| 82 | + |
| 83 | + |
| 84 | + |
| 85 | + |
| 86 | +第二步,执行以下命令: |
| 87 | + |
| 88 | +``` |
| 89 | +Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) |
| 90 | +``` |
| 91 | + |
| 92 | +稍等片刻,就完成安装了。 |
| 93 | + |
| 94 | +安装完成后如下图所示: |
| 95 | + |
| 96 | + |
| 97 | + |
| 98 | +如果不确定是否安装成功的话,可以通过键入 `choco` 命令来确认。 |
| 99 | + |
| 100 | + |
| 101 | + |
| 102 | +这里推荐几个非常高效的操作命令: |
| 103 | + |
| 104 | +- choco search xxx,查找 xxx 安装包 |
| 105 | +- choco info xxx,查看 xxx 安装包信息 |
| 106 | +- choco install xxx,安装 xxx 软件 |
| 107 | +- choco upgrade xxx,升级 xxx 软件 |
| 108 | +- choco uninstall xxx, 卸载 xxx 软件 |
| 109 | + |
| 110 | +如何知道 chocolatey 仓库中都有哪些安装包可用呢? |
| 111 | + |
| 112 | +可以通过上面提到的命令行的方式,也可以访问官方仓库进行筛选。 |
| 113 | + |
| 114 | +>[https://community.chocolatey.org/packages](https://community.chocolatey.org/packages) |
| 115 | +
|
| 116 | +比如说我们来查找 Java。 |
| 117 | + |
| 118 | + |
| 119 | + |
| 120 | +好,现在可以直接在shell中键入 `choco install jdk8` 来安装 JDK8 了,并且会自动将Java加入到环境变量中,不用再去「我的电脑」「环境变量」中新建 JAVA_HOME 并复制 JDK 安装路径配置 PATH 变量了,是不是非常 nice? |
| 121 | + |
| 122 | +稍等片刻,键入 `java -version` 就可以确认Java是否安装成功了。 |
| 123 | + |
| 124 | + |
| 125 | + |
| 126 | + |
| 127 | +不得不承认!非常nice! |
| 128 | + |
| 129 | +再比如说安装 Redis,只需要找到 Redis 的安装命令在 Choco 下执行一下就 OK 了。 |
| 130 | + |
| 131 | + |
| 132 | + |
| 133 | + |
| 134 | +安装 Git: |
| 135 | + |
| 136 | +``` |
| 137 | +choco install git.install |
| 138 | +``` |
| 139 | + |
| 140 | +安装 node.js |
| 141 | + |
| 142 | +``` |
| 143 | +choco install nodejs.install |
| 144 | +``` |
| 145 | + |
| 146 | +安装 7zip |
| 147 | + |
| 148 | +``` |
| 149 | +choco install 7zip |
| 150 | +``` |
| 151 | + |
| 152 | +安装 **Filezilla** |
| 153 | + |
| 154 | +``` |
| 155 | +choco install filezilla |
| 156 | +``` |
| 157 | + |
| 158 | +Choco 上的软件包也非常的多,基本上软件开发中常见的安装包都有。 |
| 159 | + |
| 160 | + |
| 161 | + |
| 162 | + |
| 163 | +### 小结 |
| 164 | + |
| 165 | +通过小二的实战笔记,我们可以了解到。 |
| 166 | + |
| 167 | +对比下载安装包,通过图形化界面的方式安装 JDK,然后下一步,下一步是不是感觉在 Shell 下安装 JDK 更炫酷一些? |
| 168 | + |
| 169 | +关键是还省去了环境变量的配置。 |
| 170 | + |
| 171 | +记得还没有走出新手村的时候,就经常被环境变量配置烦不胜烦。那下载这种命令行的方式,要比手动在环境变量中配置要省事一百倍,也更不容易出错。 |
| 172 | + |
| 173 | +通过 Choco 可以集中安装、管理、更新各种各样的软件。特别适合管理一些轻量级的开源软件,一条命令搞定,升级的时候也方便,不用再重新去下载新的安装包,可以有效治愈更新强迫症患者的症状。 |
| 174 | + |
| 175 | +如果不想特殊设置的话,Chocolatey 整体的操作与使用还是比较亲民的。就连刚接触软件开发的小白也可以直接使用,而且路人看着会觉得你特别厉害。 |
| 176 | + |
| 177 | + |
| 178 | + |
| 179 | + |
0 commit comments