2024年,提升Windows开发和使用体验实践 - 终端&命令行篇
前言
经过前面的铺垫,终于继续更新了,这个大概率是本系列近期的最后一篇了。
同时之前有些内容更新,我也补充到这一篇里面。
关于 scoop 管理器的补充
scoop 常用命令
scoop help # 查看帮助
scoop help < 某个命令 > # 具体查看某个命令的帮助
scoop info <app> # 查看 APP 信息
scoop install <app> # 安装 APP
scoop uinstall <app> # 卸载 APP
scoop reset [app]@[version] # 切换版本
scoop list # 列出已安装的 APP
scoop search # 搜索 APP
scoop status # 检查哪些软件有更新
scoop update # 更新 Scoop 自身
scoop update appName1 appName2 # 更新某些 app
scoop update * # 更新所有 app (前提是需要在 apps 目录下操作)
scoop bucket known # 通过此命令列出已知所有 bucket(软件源)
scoop bucket add bucketName # 添加某个 bucket
scoop cache rm <app> # 移除某个 app 的缓存
scoop cache rm * # 移除所有缓存
scoop cleanup <app> # 删除旧版本
scoop 常见问题
安装软件时出现 hash 检查错误
- 多次安装后仍出现错误,找到其 JSON 文件,下载到本地更改其 hash 值,上传到自己的 bucket 中,进行更新。
- 使用
scoop install -s选项以忽略其 hash 检查,具体使用方法请用scoop help install
更新软件时如何删除旧版本软件
使用 scoop cleanup 命令,具体用法查看 scoop help cleanup
终端
OK,来到 Windows 开发体验的重灾区了
命令行一直以来都是 Windows 的弱势,现在有了一些 Rust 工具链,可以慢慢改善这一现状。
Nerd Fonts
想要美化终端界面,请先安装一个 nerd 字体
这时候包管理器的作用再次体现,使用 scoop 就能安装。
先添加个 bucket
scoop bucket add nerd-fonts
项目地址: https://github.com/matthewjberger/scoop-nerd-fonts
然后选择一个喜欢的字体进行安装
scoop install FiraCode-NF
另外,这个 bucket 里面的字体很多,现在已经不仅仅是 nerd font 了,也可以安装一些普通的字体,比如
scoop install SarasaGothic-SC # 安装更纱黑体(简体中文)
scoop install Wenquanyi-Microhei # 安装文泉驿微米黑
scoop install Wenquanyi-Zenhei # 安装文泉驿正黑
参考资料
内置 Powershell
先说结论:内置的 PowerShell 是垃圾
不推荐使用 oh-my-posh ,启动速度太慢了,本身 PowerShell 的启动速度就慢,加上 oh-my-posh 就更慢了。
终端美化使用 Starship 就行了,接下来会介绍。
编辑配置的方法: nano $PROFILE
这是我的配置
# oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/amro.omp.json" | Invoke-Expression
Import-Module gsudoModule
set-alias -name ll -value ls
set-alias -name ef -value dotnet-ef
# starship
Invoke-Expression (&starship init powershell)
$ENV:STARSHIP_CONFIG = "$HOME\.config\starship\plain-text-symbols.toml"
Powershell 7
这是微软新出的开源跨平台终端,比内置的 PowerShell 的功能强了一丢丢,性能更好。(从项目仓库来看,是使用 C# 开发的,所以跨平台做得不错)
项目地址: https://github.com/PowerShell/PowerShell
下载个安装包安装就完事了
我的 $PROFILE 配置
Set-PSReadLineOption -PredictionSource HistoryAndPlugin
Set-PSReadLineKeyHandler -Chord Tab -Function MenuComplete
Set-PSReadLineKeyHandler -Key UpArrow -ScriptBlock {
[Microsoft.PowerShell.PSConsoleReadLine]::HistorySearchBackward()
[Microsoft.PowerShell.PSConsoleReadLine]::EndOfLine()
}
Set-PSReadLineKeyHandler -Key DownArrow -ScriptBlock {
[Microsoft.PowerShell.PSConsoleReadLine]::HistorySearchForward()
[Microsoft.PowerShell.PSConsoleReadLine]::EndOfLine()
}
Set-PSReadLineOption -PredictionViewStyle ListView
set-alias -name ll -value ls
# starship
Invoke-Expression (&starship init powershell)
$ENV:STARSHIP_CONFIG = "$HOME\.config\starship\gruvbox-rainbow.toml"
Starship
NuShell
https://www.nushell.sh/zh-CN/book/
参考资料
- 使用 starship 统一 cmd, powershell, git bash 等样式 - https://zhuanlan.zhihu.com/p/674148271
- 逐步搭建现代大一统终端(Alacritty +Zellij -> WezTerm) - https://zhuanlan.zhihu.com/p/436024560
命令行工具
WinSW
进程管理工具,类似 Linux 下的 supervisor ,可以将要运行的程序安装成服务,设置自动运行。
安装
scoop install winsw
使用方式
与 supervisor 类似,写配置文件,然后安装服务,可以启动和停止啥的。
我的目录结构
这里我设置了两个服务,vnc 和 frpc
WinSW
├─ config
│ ├─ vnc.xml
│ ├─ vnc.wrapper.log
│ ├─ vnc.out.log.old
│ ├─ vnc.out.log
│ ├─ vnc.err.log.old
│ ├─ vnc.err.log
│ ├─ frpc.xml
│ ├─ frpc.wrapper.log
│ ├─ frpc.out.log.old
│ ├─ frpc.out.log
│ ├─ frpc.err.log.old
│ └─ frpc.err.log
└─ WinSW.exe
配置文件内容
以 frpc.xml 为例
<service>
<id>frpc</id>
<name>frpc</name>
<description>frp自动启动</description>
<executable>D:\softwares\frp\frpc-a.exe</executable>
<arguments>-c D:\softwares\frp\frpc.ini</arguments>
<log mode="roll"></log>
<startmode>Automatic</startmode>
</service>
安装服务和启动
敲命令
# 安装服务
winsw install ./config/frpc.xml
# 启动
winsw start ./config/frpc.xml
就这样
在找到更好的工具之前,暂时先用这个。
已知问题
我在使用这个工具的时候,经常遇到开机不会自启的问题,即使查看服务管理,确认已经安装的服务是自动启动并且启用的状态,开机后还是不会自启。
不知道是啥问题,我正在寻找这个 WinSW 的代替品。
scoop-search
由于 scoop 是使用 PowerShell 脚本写的,当添加了比较多的 bucket 之后,search 速度会比较慢。
有大佬写了个新的搜索工具,比原版的快多了,使用的语言是我没听过的 Zig 语言。
项目地址: https://github.com/shilangyu/scoop-search
安装方式
scoop install scoop-search
如果想将原来的 search 替换为 scoop-search,可以在 $profile 中添加配置
Invoke-Expression (&scoop-search --hook)
和原版的对比
> scoop search curl
Results from local buckets...
Name Version Source Binaries
---- ------- ------ --------
curl 8.6.0_2 main
curlie 1.7.2 main
gnupg1 1.4.23 main gpgkeys_curl.exe
gow 0.8.0 main curl.exe
grpcurl 1.8.9 main
scoop-search
x scoop-search curl
'main' bucket:
curl (8.6.0_2)
curlie (1.7.2)
gnupg1 (1.4.23) --> includes 'gpgkeys_curl.exe'
gow (0.8.0) --> includes 'curl.exe'
grpcurl (1.8.9)
gow
在 Windows 补齐 Unix 工具链
项目地址: https://github.com/bmatzelle/gow
Gow (Gnu On Windows) is the lightweight alternative to Cygwin. It uses a convenient Windows installer that installs about 130 extremely useful open source UNIX applications compiled as native win32 binaries. It is designed to be as small as possible, about 10 MB, as opposed to Cygwin which can run well over 100 MB depending upon options.
里面有一百多个 Unix 系的小工具,比如我常用的 nano
具体的工具列表在这: https://github.com/bmatzelle/gow/wiki/executables_list
安装很简单,使用 scoop
scoop install gow
gsudo
Windows 下的 sudo 工具
在 Linux 下要以管理员权限执行命令只需要在最前面加上 sudo 即可,Windows 却很麻烦,需要专门打开一个管理员模式的 PowerShell 窗口。
这个小工具可以解决这个问题,使用方法和 Linux 的 sudo 命令一样。
PS:好消息是微软打算在 Windows 11 里加入原生的
sudo命令
安装
scoop install gsudo
proxychains
命令行代理工具
也是 Linux 下常用的,没想到 Windows 也能用,(但似乎有点奇怪的问题)
安装
scoop install proxychains
erdtree
使用 rust 开发的文件树展示工具
写文章的时候用来展示目录结构很方便,没必要目录结构都截图。
安装
scoop install erdtree
我常用的参数
erd -L 3 --dir-order last -y inverted --suppress-size -.
参数说明:
-L 3: 遍历3级目录--dir-order last: 目录显示在前面-y inverted:-y是设置 layout ,可选项为regular, inverted, flat, iflat--suppress-size: 隐藏文件大小-.: 显示隐藏文件
blessed-contrib
这是一个命令行的仪表盘组件库,基于 Nodejs ,实际作用似乎没有,不过就是好玩,众所周知 Linux 下有很多好玩的命令行工具,但 Windows 这边就少了很多,这个是用 Nodejs 开发的,所以是跨平台的,Windows 也可以用。
项目地址: https://github.com/yaronn/blessed-contrib
使用方法
git clone https://github.com/yaronn/blessed-contrib.git
cd blessed-contrib
npm install
node ./examples/dashboard.js
需要安装 Nodejs 环境,稍微麻烦一点,如果有用 go 或者 rust 开发的类似工具就好了。
加入到 $profile 方便后续使用,打开配置文件
nano $profile
添加一个 PowerShell 函数
function dashboard {
node "C:\path\to\blessed-contrib\examples\dashboard.js"
}
后续只要输入 dashboard 命令就可以了
2024年,提升Windows开发和使用体验实践 - 终端&命令行篇的更多相关文章
- Windows 编程,程序编译使用的命令行工具。
Windows 编程,程序编译使用的命令行工具. 1.cl.exe文件是Visual C\C++的编译器,它将程序源代码文件编译为obj文件. 2.rc.exe文件是资源编译器.工程项目中的.rc文件 ...
- 在windows如何操控一些屌炸天的linux命令[利刃篇]
作为开发者,也许你会说,不会linux简直弱爆了.是的,但是,倒底有多少人是真正在用linux进行开发工作呢,也许是我孤陋寡闻,但我相信,windows操作很多东西是真方便,不愿意使用linux直接开 ...
- Expo大作战(六)--expo开发模式,expo中exp命令行工具,expo中如何查看日志log,expo中的调试方式
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,将全部来与官网 我猜去全部机翻+个人 ...
- windows上,任务管理器中,进程命令行太长怎么办
一.前言 在windows上,有时候需要查看进程命令行,但是有的进程的命令行太长了,很难看全 此时,可以使用下面的方法解决(红框改为自己要查看的进程即可): C:\Users\Gaoyu>wmi ...
- Windows终端命令行工具Cmder
在IT这一行,大部分情况下都是推荐大家使用Linux或者类Unix操作系统去编程,Linux作为一代优秀的操作系统,已经人尽皆知,在IT行业已经成为核心.有条件的大佬都选择了使用mac编程,最优秀的莫 ...
- 体验.NET Core 命令行应用程序-CommandLineUtils
前言 在我们开发中可能需要设计一次性应用程序,这些实用程序可以利用接近原始源代码的优势,但可以在与主Web应用程序完全独立的安全性上下文中启动.具体在 [管理过程](https://12factor. ...
- MAC与windows下打开当前文件路径的命令行(终端)
MAC 下文件夹与终端: 1.打开当前路径的终端窗口方法: ①直接拖动要打开的文件夹到终端 ②打开finder的服务偏好设置, 勾选"新建位于文件夹位置的终端"选项, 以后可以在文 ...
- windows在远程桌面连接中使用命令行参数
在此版本的 Windows 中,可以从搜索框("运行"对话框或命令行)启动远程桌面连接,而不是从「开始」菜单启动它. 从"运行"对话框启动远程桌面的步骤 依次单 ...
- 【前端】Vue和Vux开发WebApp日志四、增加命令行参数
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_4.html 项目github地址:https://github.com/shamoyuu/vue- ...
- 如何在Windows中通过Cygwin来使用Linux命令行
PowerShell的出现让Windows的命令行工具有了很大的改进.但是多年以来,Linux一直拥有很多有用的终端.在这里通过Cygwin你可以同时拥有上面两种命令行工具,Cygwin是一个可以在W ...
随机推荐
- 如何将数据库中的树结构表导出EXCEL
我们常常会遇到这样的需求,将数据库中父子结构的表数据导出作为表头 我们实现的开发中就遇到这样的需求:将所有用户的权限表导出,权限作为表头 思路:sql求出每一条权限数据应该跨的行数,在代码中填充这些数 ...
- Windows 堆管理机制 [2] Windows 2000 – Windows XP SP1版本
2.Windows 2000 – Windows XP SP1 2.1 环境准备 环境 环境准备 虚拟机 32位Windows 2000 SP4 调试器 OllyDbg.WinDbg 编译器 VC6. ...
- Jmeter报错权限不够
Jmeter报错权限不够 解决办法: chmod +x jmeter
- 环境调试bug【二】无法加载源“<string>”: Source unavailable
1.无法加载源"<string>": Source unavailable. 网上解决方法: 总结来说就两种: debugStdLib: true 添加到 launch ...
- ::v-deep样式穿透
//如果不加样式穿透,vue永远会在input后面加唯一样式字段data-v-1d9b105c //::v-deep拼在哪个位置,哪个位置就有唯一标识data-v-1d9b105c .divBox : ...
- 【二叉树】二叉树的深度优先遍历DFS(前中后序遍历)和广度优先遍历BFS(层序遍历)详解【力扣144,94,145,102】【超详细的保姆级别教学】
[二叉树]二叉树的深度优先遍历(前中后序遍历)和广度优先遍历(层序遍历)详解[超详细的保姆级别教学] 先赞后看好习惯 打字不容易,这都是很用心做的,希望得到支持你 大家的点赞和支持对于我来说是一种非常 ...
- 当我们在谈 .NET Core 跨平台时,我们在谈些什么?--学习笔记
摘要 .NET Framework在过去十多年在跨平台上的尝试. .NET Core跨平台的实现有何不同? 基于 .NET Standard的平台兼容性是如何实现的? 讲师介绍 历史枷锁 .NET F ...
- MYSQL 1 DAY
目录 MySQL 1.sql.DB.DBMS分别是什么,他们之间的关系? 2.什么是表? 3.学习MySQL主要还是学习通用的SQL语句,那么SQL语句包括增删改查,SQL语句怎么分类呢? 4.导入数 ...
- 使用python 打包成exe文件
python 打包exe 起因:闲的蛋疼 过程:扯的蛋疼 结果:不疼了 1.起因(闲的蛋疼) 突然的emo,不想干活,于是乎找遍微信好友,群发了十年八辈子不联系的一群人(此办法学习 ...
- JS leetcode 两个数组的交集I II 合集题解分析
壹 ❀ 引 前些日子,在与博客园用户MrSmileZhu闲聊中,我问到了他先前在字节跳动面试中遇到了哪些算法题(又戳到了他的伤心处),因为当时面试的高度紧张,原题描述已经无法重现了,但大概与数组合并. ...