0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

命令行软件管理器:chocolatey

Q4MP_gh_c472c21 来源:沉默王二 作者:沉默王二 2022-05-06 15:45 次阅读

小二是公司新来的实习生,之前面试的过程中对答如流,所以我非常看好他。第一天,我给他了一台新电脑,要他先在本地搭建个 Java 开发环境。

二话不说,他就开始马不停蹄地行动了。真没想到,他竟然是通过命令行的方式安装的 JDK,这远远超出了我对他的预期。

我以为,他会使用图形化的方式来安装 JDK 的,就像这样。

e889375e-ccf1-11ec-bce3-dac502259ad0.png

还有这样。

e8975ce4-ccf1-11ec-bce3-dac502259ad0.png

结果他是这样的。

e8ab19a0-ccf1-11ec-bce3-dac502259ad0.png

卧槽!牛逼高大上啊!

看着他熟练地在命令行里安装 JDK 的样子,我的嘴角开始微微上扬,真不错!这次总算招到了一个靠谱的。

于是我就安排他做一个记录。从他嘴里了解到,他用的命令行软件管理器叫 chocolatey,这是一个Windows下的命令行软件管理器,可以方便开发者像在Linux下使用yum命令来安装软件,或者像在macOS下使用brew 命令来安装软件,我感觉非常酷炫。

e8caefd2-ccf1-11ec-bce3-dac502259ad0.png

以下是他的记录,一起来欣赏下。

关于shell

对于一名 Java 后端程序员来说,初学阶段,你可以选择在 IDE 中直接编译运行 Java 代码,但有时候也需要在 Shell 下编译和运行 Java 代码。

Windows 下自带的 Shell 叫命令提示符,或者 cmd 或者 powershell,macOS 下叫终端 terminal。

但当你需要在生产环境下部署 Java项目或者查看日志的话,就必然会用到 Shell,这个阶段,Shell 的使用频率高到可以用一个成语来形容——朝夕相伴。

一些第三方软件会在原生的 Shell 基础上提供更强大的功能,常见的有 tabby、Warp、xhsell、FinalShell、MobaXterm、Aechoterm、WindTerm、termius、iterm2 等等,有些只能在 Windows 上使用,有些只能在 macOS 上使用,有些支持全平台。还有 ohmyzsh 这种超神的 Shell 美化工具。

这里,我们列举一些 Shell 的基本操作命令(Windows 和 macOS/Linux 有些许差异):

  • 切换目录,可以使用 cd 命令切换目录,cd ..返回上级目录。
e8dec25a-ccf1-11ec-bce3-dac502259ad0.png
  • 目录列表,macos/linux 下可以使用 ls 命令列出目录下所有的文件和子目录(Windows 下使用 dir 命令),使用通配符*对展示的内容进行过滤,比如ls *.java列出所有.java后缀的文件,如果想更进一步的话,可以使用ls H*.java列出所有以 H 开头.java后缀的文件。
  • 新建目录,macOS/Linux 下可以使用 mkdir 命令新建一个目录(比如mkdir hello可以新建一个 hello 的目录),Windows 下可以使用 md 命令。
  • 删除文件,macOS/Linux 下可以使用rm命令删除文件(比如rm hello.java删除 hello.java 文件),Windows 下可以使用 del 命令。
  • 删除目录,macOS/Linux 下可以使用rm -r命令删除目录以及它所包含的所有文件(比如说rm -r hello删除 hello 目录)。Windows 下可以使用 deltree 命令。
  • 重复命令,macOS/Linux/Windows 下都可以使用上下箭头来选择以往执行过的命令。
e8f97e9c-ccf1-11ec-bce3-dac502259ad0.png
  • 命令历史,macOS/Linux 下可以使用history命令查看所有使用过的命令。Windows 可以按下 F7 键。
e9151ef4-ccf1-11ec-bce3-dac502259ad0.png
  • 解压文件,后缀名为“.zip”的文件是一个包含了其他文件的压缩包,macOS/Linux 系统自身已经提供了用于解压的 unzip 命令, Windows 的话需要手动安装。

安装JDK

1)Windows

推荐先安装 chocolatey。这是一个Windows下的命令行软件管理器,可以方便开发者像在Linux下使用yum命令来安装软件,或者像在macOS下使用brew 命令来安装软件,非常酷炫。

The biggest challenge is reducing duplication of effort, so users turn to Chocolatey for simplicity

传统的安装方式要么非常耗时,要么非常低效,在命令行安装软件除了简单高效,还能自动帮我们配置环境变量。

  • 官方地址:https://chocolatey.org/
  • 安装文档:https://chocolatey.org/install#individual

安装完成后如下图所示:

e93b833c-ccf1-11ec-bce3-dac502259ad0.png

如果不确定是否安装成功的话,可以通过键入choco命令来确认。

e94c6fa8-ccf1-11ec-bce3-dac502259ad0.png

这里推荐几个非常高效的操作命令:

  • choco search xxx,查找 xxx 安装包
  • choco info xxx,查看 xxx 安装包信息
  • choco install xxx,安装 xxx 软件
  • choco upgrade xxx,升级 xxx 软件
  • choco uninstall xxx, 卸载 xxx 软件

如何知道 chocolatey 仓库中都有哪些安装包可用呢?

可以通过上面提到的命令行的方式,也可以访问官方仓库进行筛选。

https://community.chocolatey.org/packages

比如说我们来查找 Java。

e957b53e-ccf1-11ec-bce3-dac502259ad0.png

好,现在可以直接在shell中键入choco install jdk8来安装 JDK8 了,并且会自动将Java加入到环境变量中,不用再去「我的电脑」「环境变量」中新建 JAVA_HOME 并复制 JDK 安装路径配置 PATH 变量了,是不是非常 nice?

稍等片刻,键入java -version就可以确认Java是否安装成功了。

e97ff5bc-ccf1-11ec-bce3-dac502259ad0.png

不得不承认!非常nice!

2)macOS

首先推荐安装 homebrew,这是macOS下的命令行软件管理器,用来简化 macOS 上软件的安装过程。homebrew 是开源的,在 GitHub 已收获 32k star。

e9a6bba2-ccf1-11ec-bce3-dac502259ad0.png

homebrew 的安装也非常的简单,只需要一行命令即可。

官方网址:https://brew.sh/index_zh-cn

e9b59f1e-ccf1-11ec-bce3-dac502259ad0.png
  • 使用brew install xxx可以安装 macOS 上没有预装的软件
  • 使用brew install --cask yyy可以安装 macOS 其他非开源软件。

这里是 homebrew 常用命令的一个清单,可供参考。

命令 描述
brew update 更新 Homebrew
brew search package 搜索软件包
brew install package 安装软件包
brew uninstall package 卸载软件包
brew upgrade 升级所有软件包
brew upgrade package 升级指定软件包
brew list 列出已安装的软件包列表
brew services command package 管理 brew 安装软件包
brew services list 列出 brew 管理运行的服务
brew info package 查看软件包信息
brew deps package 列出软件包的依赖关系
brew help 查看帮助
brew cleanup 清除过时软件包
brew link package 创建软件包符号链接
brew unlink package 取消软件包符号链接
brew doctor 检查系统是否存在问题

安装完 homebrew 后,建议替换homebrew 的默认源为中科大的,原因就不用我多说了吧?替换方法如下所示:

替换brew.git:
cd"$(brew--repo)"
gitremoteset-urloriginhttps://mirrors.ustc.edu.cn/brew.git

替换homebrew-core.git:
cd"$(brew--repo)/Library/Taps/homebrew/homebrew-core"
gitremoteset-urloriginhttps://mirrors.ustc.edu.cn/homebrew-core.git

如何知道 homebrew 仓库中都有哪些安装包可用呢?

第一种,通过brew search xxx命令搜索,比如说我们要搜索 jdk

e9c7cf22-ccf1-11ec-bce3-dac502259ad0.png

第二种,通过 homebrew 官网搜索,比如说我们要搜索 openjdk。

官方地址:https://formulae.brew.sh

e9ffb676-ccf1-11ec-bce3-dac502259ad0.png

这里有一份不错的 homebrew 帮助文档,可供参考:

https://sspai.com/post/56009

OK,我们来安装JDK,只需要简单的一行命令就可以搞定。

brew install openjdk@8

对比下载安装包,通过图形化界面的方式安装 JDK,是不是感觉在 Shell 下安装 JDK 更炫酷一些?

关键是还省去了环境变量的配置。

记得还没有走出新手村的时候,就经常被环境变量配置烦不胜烦。那下载这种命令行的方式,要比手动在环境变量中配置要省事一百倍,也更不容易出错。

关于编辑器

安装完 Java 之后,你还需要一个编辑器,用来编写 Java 代码。

编辑器多种多样,常见的有集成开发环境(IDE,比如 Intellij IDEA 和 vscode),和简单的文本编辑工具(比如 sublime text)。

我建议这三个工具都要装,日常开发中,我会在这三个编辑器中来回切换。

Intellij IDEA:主要用来编写Java代码,并且最好安装旗舰版,社区版用来学习JavaSE部分是绰绰有余的,但要想拥有更强大的生产力,旗舰版是必须的,因为功能更加强大。

比如说 idea 旗舰版中可以直接通过 Initializr 来创建springboot项目,但社区版就没有此功能。

ea18e254-ccf1-11ec-bce3-dac502259ad0.png

vscode:更加轻量级的 IDE,在编写Java代码上可以和idea媲美,但要想调试Java代码的话,vscode 和idea的差距还是非常明显的。

ea40e25e-ccf1-11ec-bce3-dac502259ad0.png

我会使用 Intellij IDEA 开发编程喵的后端代码,vscode 来开发编程喵的前端代码。

sublime text:功能更强大的文本编辑器,比记事本这种强大一万倍,也更符合21世纪开发者的外观审美。如果只是简单的修改一下代码格式,或者注释,显然更加方便,因为idea还是比较吃内存的,出差旅行的时候,在笔记本上紧急修改一些代码时,更易用。

ea61e42c-ccf1-11ec-bce3-dac502259ad0.png

我会配合 GitHub 桌面版来使用 sublime text,编辑 MD 文档的时候会比较舒服。


有了 chocolatey 和 homebrew,以后再安装任何一款软件,只要仓库里有,只需要一行命令就可以搞定了,还是非常值得给大家安利的。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2964

    浏览量

    104686
  • Shell
    +关注

    关注

    1

    文章

    365

    浏览量

    23350

原文标题:发现一款好用到爆的Shell工具,被惊艳到了!

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    图形用户界面与命令行接口的比较

    界面(GUI) : GUI是一种用户界面,允许用户通过图形图标和视觉指示与电子设备进行交互。 它通常包括窗口、按钮、图标和菜单等元素,用户可以通过鼠标或触摸屏进行操作。 命令行接口(CLI) : CLI是一种用户界面,用户通过输入文本
    的头像 发表于 11-12 14:38 310次阅读

    Mobaxterm 的命令行使用方法

    的远程桌面协议(如RDP和VNC),以及文件传输协议(如FTP和SFTP)。本文将详细介绍如何使用Mobaxterm的命令行功能。 2. 安装 Mobaxterm 在开始之前,确保你已经安装
    的头像 发表于 11-11 09:08 950次阅读

    APM32F411板的python+pyocd命令行操作

    前段时间学习了一下如何使用pyocd配合APM32F411VCTINY板在命令行下给它进行各种骚操作,在使用一段时间后就想着:pyocd是基于python的,那是不是也可以使用python脚本+pyocd使用起来呢?
    的头像 发表于 10-18 16:21 233次阅读
    APM32F411板的python+pyocd<b class='flag-5'>命令行</b>操作

    使用idf4.3在命令行打开menuconfig,如何才能开启lwip配置界面?

    请问使用idf4.3在命令行打开menuconfig,如何才能开启lwip配置界面。
    发表于 06-21 06:08

    请问CY8CKIT-005-A是否支持命令行编程?

    我使用 minipro4 SWD 和 MTB-programmer 5.0 对 MCU 编程,在批量生产中,我们希望使用脚本编程,它是否支持命令行编程?
    发表于 06-03 06:19

    Nvidia Jetson Nano + CYW55573/AWXB327MA-PUR M.2无法使用操作系统内置的网络管理器管理Wi-Fi如何解决?

    %E2%84%A2%20CYW5557.... 我们可以使用命令行指令成功连接互联网。 但是,我们无法使用操作系统内置的网络管理器管理 Wi-Fi。 网络管理器中与 Wi-Fi 相关的
    发表于 05-23 06:47

    鸿蒙ArkUI-X跨平台开发:【命令行工具(ACE Tools)】

    ACE Tools是一套为ArkUI-X项目跨平台应用开发者提供的命令行工具,支持在Windows/Ubuntu/macOS平台运行,用于构建OpenHarmony/HarmonyOS、Android和iOS平台的应用程序,其功能包括开发环境检查,新建项目,编译打包,安装调试等。
    的头像 发表于 05-21 17:39 1724次阅读
    鸿蒙ArkUI-X跨平台开发:【<b class='flag-5'>命令行</b>工具(ACE Tools)】

    高效云端管理的秘诀——华为云命令行工具 KooCLI

    发现了云上命令行工具,我的云端管理效率从此得到了质的飞跃。 我从华为云官方产品帮助文档中了解了 KooCLI 工具,文档中介绍的便捷操作和高效管理让我心动不已,于是,我开启了我的体验。通过简单的
    的头像 发表于 05-10 00:25 697次阅读
    高效云端<b class='flag-5'>管理</b>的秘诀——华为云<b class='flag-5'>命令行</b>工具 KooCLI

    鸿蒙OpenHarmony南向:【Hi3516标准系统入门(命令行方式)】

    除小型系统外,Hi3516DV300开发板还支持标准系统。此章节简要介绍如何使用命令行在Hi3516DV300开发板上进行标准系统的开发。
    的头像 发表于 05-08 09:26 867次阅读
    鸿蒙OpenHarmony南向:【Hi3516标准系统入门(<b class='flag-5'>命令行</b>方式)】

    STM8 flash loader命令行调用错误的原因?

    [td]我目前在用flash loader的命令行,编写自己的上位机软件来升级程序,但是在用命令行调用的时候一直出错,有人能帮忙分析下吗? 我编写的bat文件
    发表于 05-06 07:23

    HarmonyOS开发:【基于命令行(安装库和工具集)】

    使用命令行进行设备开发时,可以通过以下步骤安装编译OpenHarmony需要的库和工具。
    的头像 发表于 04-25 21:03 402次阅读
    HarmonyOS开发:【基于<b class='flag-5'>命令行</b>(安装库和工具集)】

    香港vps的centos如何切换命令行和桌面?

    要在CentOS上切换命令行和桌面环境,您可以通过以下步骤进行: 1、安装桌面环境:如果您的CentOS VPS上还没有安装图形桌面环境,您需要安装一个。一般来说,常用的桌面环境有GNOME、KDE
    的头像 发表于 04-10 17:41 638次阅读

    STM32G070RB使用jlink命令行下载无法识别芯片怎么解决?

    STM32G070RB 使用jlink命令行下载无法识别芯片,想手动添加芯片,请问哪里可以下载驱动.elf文件 或者有什么方法能够实现jlink命令行下载
    发表于 04-02 06:15

    tasking的命令行控制中如何生成makefiles文件?

    tasking的命令行控制中如何生成makefiles文件?
    发表于 02-06 07:56

    在Linux上如何通过命令行来更改日期和时间?

    在Linux上如何通过命令行来更改日期和时间? 在Linux上,我们可以使用命令行工具来更改日期和时间。操作系统中有一个专门的命令被称为“date”命令,它允许我们更改系统的当前日期和
    的头像 发表于 01-16 17:10 2804次阅读