Powershell美化与强化
巨硬一直在推广Powershell以替代cmd,但是Powershell丑陋的界面实在令人难以忍受,尤其是在习惯了Linux美丽的终端界面后。如何美化Powershell?下面介绍一些方法以改善Powershell的使用体验。
scoop|Windows下的强大包管理器
包管理器
包管理器(package manager)是开发人员常用的生产力工具,Ubuntu上的Apt和MacOS上的Homebrew等的使用都让开发环境的搭建变得无比丝滑。这里的包,可以理解成广义上的软件,不仅包含常见的基于图形用户界面(GUI)的软件,还包含基于命令行界面(CLI)的开发工具。简单说,包管理器就是一个软件自动化管理工具。
如今,Windows也有了历经时间考验的包管理器:Chocolatey,Scoop和。其中,Chocolatey整个社区发布的安装脚本有3000多个,而Scoop官方仓库发布的安装脚本有2000多个。
总的来看,上述两者各有长短。Chocolatey操作简单,涵盖大量 GUI 软件,但自定义程度低,适合普通程序员甚至没有编程基础的人使用;相比之下,Scoop自定义程度高,虽然默认涵盖的 GUI 软件少,但扩展性强,可以非常方便的自己定制安装脚本。适合有喜欢折腾的程序员使用。经过一定考量,我选择使用Scoop。
安装
-
保证电脑有PowerShell 3
-
如果你没有打开运行远程签名的脚本文件则会提示你输入下面的指令:
Set-ExecutionPolicy RemoteSigned -scope CurrentUser -
在PowerShell下输入
iex (new-object net.webclient).downloadstring('https://get.scoop.sh') -
等下在下完就可以使用
scoop help来查看命令行操作
常用指令
alias Manage scoop aliases
bucket Manage Scoop buckets
cache Show or clear the download cache
checkup Check for potential problems
cleanup Cleanup apps by removing old versions
config Get or set configuration values
create Create a custom app manifest
depends List dependencies for an app
export Exports (an importable) list of installed apps
help Show help for a command
home Opens the app homepage
install Install apps
list List installed apps
reset Reset an app to resolve conflicts
search Search available apps
status Show status and check for new app versions
uninstall Uninstall an app
update Update apps, or Scoop itself
which Locate a program path
# 设置代理(http),port自行指定
scoop config proxy 127.0.0.1:port
安装软件
scoop安装的程序都在C:\Users\xxx\scoop\apps文件夹下。
-
导出软件列表
scoop.cmd export > C:/Users/***/scoop/ScoopAppList.txt -
版本切换
scoop reset pythonscoop reset python27
Bucket软件源
由于scoop比较小众,软件相比chocolatey较少,不过scoop有一个强大的bucket软件源策略,而且有社区来维护,常用软件基本能够找到。
-
社区地址:
https://github.com/rasa/scoop-directory/blob/master/by-score.md
-
bucket语法:scoop bucket add [软件源名字(随意)] [源地址]
-
bucket源推荐:
官方:
main # 默认bucket,安装scoop会自动添加 extras # 最推荐,绝大多数软件可从本bucket找到 versions nightlies # 不稳定版本,适合开发人员使用 nirsoft php # 比较完整的PHP版本管理 nerd-fonts # Nerd字体包,比较全 nonportable # 安装版本应用,scoop默认是portbale应用 java # 比较完整的Java版本管理 games # 包含部分游戏以及模拟器 jetbrains # 个人推荐通过jetbrains-toolbox安装管理国内常用软件:
- scoopet,国内大佬维护的科研方向软件源
scoop bucket add scoopet https://github.com/integzz/scoopetscoopet 库包含的安装脚本分为如下四类:
- 科研工具:如 miniconda(国内镜像),julia(国内镜像),copytranslator,gephi,geogebra,mendeley,netlogo
- 开发辅助:如 cyberduck,virtualbox,vmware
- 日常办公:如 adobe acrobat,wpsoffice,百度网盘,灵格斯词霸
- 社交休闲:如 you-get,网易云音乐,微信
- dodorz,某种程度算是extra的补充,偏国内应用
scoop bucket add dodorz https://github.com/dodorz/scoop-bucket
Windows包关系体系目前还不算完善,scoop大部分软件属于国外,下载速度并不乐观,所以scoop的学习成本并不低。当然也可以通过安装aira2进行加速,但是对于一些特别的软件还是得通过学习强国完成,因此会需要开/关aria2功能,比较麻烦。如果你爱折腾,相信这是一款使用后就会爱不释手的管理器。
美化Powershell
安装 concfg
lukesampson/concfg 可以用来导入和导出 Windows 控制台的设置。
scoop install concfg
安装 git
scoop install git
此时,git 的环境变量是设置在当前用户下的。如果需要设置在系统下,可以通过以下语句安装。需要使用 sudo 来提升权限。
scoop install sudo
sudo scoop install -g git
更新:现可通过winget安装:
winget install Git
安装 posh-git
posh-git 是 oh-my-posh 的依赖,在 scoop 的 extras 包中。
scoop install posh-git
安装 oh-my-posh
oh-my-posh 在 scoop 的主包中,直接安装即可。这个软件能够让你的 PowerShell 有着接近 Linux 中 Oh-my-zsh 的效果。
scoop install oh-my-posh
模块的另一种安装方式
用管理员运行Powershell:
Install-Module posh-git
Install-Module oh-my-posh
Install-Module -Name PSReadLine -Force -SkipPublisherCheck
Install-Module Get-ChildItemColor -AllowClobber
应用配置
新建一个 1.json 文件,键入如下内容,也可以根据自身需求自行修改。
{
"cursor_size": "small",
"command_history_length": 500,
"num_history_buffers": 4,
"command_history_no_duplication": false,
"quick_edit": true,
"insert_mode": true,
"load_console_IME": true,
"font_face": "DejaVu Sans Mono for Powerline",
"font_true_type": true,
"font_size": "0x18",
"font_weight": 0,
"screen_buffer_size": "120x30000",
"window_size": "120x30",
"fullscreen": false,
"popup_colors": "cyan,white",
"screen_colors": "white,black",
"black": "#1E1E1E",
"dark_blue": "#2472C8",
"dark_green": "#0DBC79",
"dark_cyan": "#11A8CD",
"dark_red": "#CD3131",
"dark_magenta": "#BC3FBC",
"dark_yellow": "#E5E510",
"gray": "#E5E5E5",
"dark_gray": "#666666",
"blue": "#3B8EEA",
"green": "#23D18B",
"cyan": "#29B8DB",
"red": "#F14C4C",
"magenta": "#D670D6",
"yellow": "#F5F543",
"white": "#E5E5E5"
}
在所在文件夹处打开 PowerShell,输入 concfg import 1.json -n 后开启新 PowerShell 窗口可以看到显示效果已经改变。
**注:**使用过程中发现,更新 git 后,字体会出现问题,不知道是什么原因。出现这个问题也不用担心,只需要重新执行一遍上面这个应用配置的过程即可。
启用 oh-my-posh并设置主题
敲 $profile 可以让 PowerShell 告诉我们这个文件的路径是什么。
编辑该文件,如果不存在则手动创建,再其中输入
Set-PSReadlineOption -EditMode Emacs
Import-Module posh-git
Import-Module oh-my-posh
Import-Module Get-ChildItemColor
Import-Module WindowsConsoleFonts
Set-Alias l Get-ChildItemColor -option AllScope
Set-Alias ls Get-ChildItemColorFormatWide -option AllScope
Set-Theme Paradox
安装powerline字体
请在这里下载 PowerLine 字体(下面命令中已有):
# 或者依次执行如下指令即可
git clone https://github.com/powerline/fonts.git
cd .\fonts\
.\install.ps1
cd ..
del .\fonts\ -Recurse -Force
指令执行完后修改终端字体为DejaVu Sans Mono for Powerline。
Cmder|Windows下的强大终端
更新:本栏目可以不用看了,现在已经换到了Windows Terminal。
安裝
Cmder官网http://cmder.net/。作为一个压缩档的存在, 可即压即用。你甚至可以放到USB就可以虽时带着走,连调整过的设定都会放在这个目录下,不会用到系统机码(Registry),所以也很适合放在Dropbox / Google Drive / OneDrive共享于多台电脑。
下载的时候,有两个版本,分别是mini与full版;唯一的差别在于有没有内建msysgit工具,这是Git for Windows的标准配备;全安装版 cmder 自带了 msysgit, 压缩包 23M, 除了 git 本身这个命令之外, 里面可以使用大量的 linux 命令;比如 grep, curl(没有 wget); 像vim, grep, tar, unzip, ssh, ls, bash, perl 对于爱折腾的Coder更是痛点需求。
配置
-
把 cmder 加到环境变量
可以把Cmder.exe存放的目录添加到系统环境变量;加完之后,Win+r一下输入cmder,即可。 -
添加 cmder 到右键菜单
-
在某个文件夹中打开终端, 这个是一个(超级)痛点需求, 实际上上一步的把 cmder 加到环境变量就是为此服务的, 在管理员权限的终端输入以下语句即可:
Cmder.exe /REGISTER ALL -
搭配
autoHotkey为Cmder配置自己喜欢的快捷键(个人用Alt+r):!r:: run, D:\**\cmder\Cmder.exe
常用功能
1, Cmder常用快捷键
跟一般浏览器页签操作习惯一致:
可以利用
Tab,自动路径补全(爽,赞!);
可以利用Ctrl+T建立新页签;
利用Ctrl+W关闭页签;
还可以透过Ctrl+Tab切换页签;
Alt+F4:关闭所有页签
Alt+Shift+1:开启cmd.exe
Alt+Shift+2:开启powershell.exe
Alt+Shift+3:开启powershell.exe (系统管理员权限)
Ctrl+1:快速切换到第1个页签
Ctrl+n:快速切换到第n个页签( n值无上限)
Alt + enter: 切换到全屏状态;
Ctr+r 历史命令搜索;
End, Home, Ctrl : Traversing text with as usual on Windows
2, 可在视窗内搜寻画面上出现过的任意关键字。
3, 新增页签按钮,可透过滑鼠新增页签。
4, 切换页签按钮,可透过滑鼠切换页签。
5, 锁定视窗,让视窗无法再输入。
6, 切换视窗是否提供卷轴功能,启动时可查询之前显示过的内容。
7, 按下滑鼠左键可开启系统选单,滑鼠右键可开启工具选项视窗。 Win+Alt+P :开启工具选项视窗
基本应用安装
MariaDB
虽然WSL能够支持MariaDB,不过因为没有systemd指令在,服务无法启动(除了Ubuntu是用service启动可以支持以外),而且在WSL中mysqld进程一般会消耗100~200M内存,而win下只要10M左右,所以果断选择安装在win下。
scoop install mariadb
安装完成后不像Linux下可以直接指令启动,我们需要切换到.\mariadb\bin目录下:
mysqld --install
mysqld --initialized
之后去服务中开启mysql:
win + R
services.msc
然后就可以愉快地玩耍mariadb了。
Redis
同MariaDB,不用Ubuntu的话没法使用,所以换到win下。
scoop install redis
安装完成后可以使用redis-server运行redis。
如何让redis作为服务开机自启呢?我们去服务那里,是找不到redis-server服务的,所以我们需要切换到reids安装目录:
redis-server --service-install redis.windows-service.conf --loglevel verbose
将redis-server注册到服务里
但是,由于Redis默认以Network Service用户注册服务,所以在访问非程序运行的目录时会提示无权限错误,
所以我们需要到服务中找到redis,把登陆身份换成本地系统登陆,然后手动启动服务。
以下是redis服务的相关指令。
# 启动服务
redis-server --service-start
# 停止服务
redis-server --service-stop
# 卸载服务
redis-server --service-uninstall
更新
不推荐在win下安装MariaDB和redis,实在要用的话就在WSL2中或者Docker For Windows下运行吧。








