音乐播放器
Thinker's Space
 
文章 标签
8

Powered by Gridea | Theme: Fog
载入天数...
载入时分秒...

Powershell美化与强化

巨硬一直在推广Powershell以替代cmd,但是Powershell丑陋的界面实在令人难以忍受,尤其是在习惯了Linux美丽的终端界面后。如何美化Powershell?下面介绍一些方法以改善Powershell的使用体验。


scoop|Windows下的强大包管理器

包管理器

包管理器(package manager)是开发人员常用的生产力工具,Ubuntu上的Apt和MacOS上的Homebrew等的使用都让开发环境的搭建变得无比丝滑。这里的包,可以理解成广义上的软件,不仅包含常见的基于图形用户界面(GUI)的软件,还包含基于命令行界面(CLI)的开发工具。简单说,包管理器就是一个软件自动化管理工具。

如今,Windows也有了历经时间考验的包管理器:ChocolateyScoop和。其中,Chocolatey整个社区发布的安装脚本有3000多个,而Scoop官方仓库发布的安装脚本有2000多个。

总的来看,上述两者各有长短。Chocolatey操作简单,涵盖大量 GUI 软件,但自定义程度低,适合普通程序员甚至没有编程基础的人使用;相比之下,Scoop自定义程度高,虽然默认涵盖的 GUI 软件少,但扩展性强,可以非常方便的自己定制安装脚本。适合有喜欢折腾的程序员使用。经过一定考量,我选择使用Scoop

安装

  1. 保证电脑有PowerShell 3

  2. 如果你没有打开运行远程签名的脚本文件则会提示你输入下面的指令:

    Set-ExecutionPolicy RemoteSigned -scope CurrentUser
    
  3. 在PowerShell下输入

    iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
    
  4. 等下在下完就可以使用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 python
    
    scoop 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安装管理
    

    国内常用软件:

    1. scoopet,国内大佬维护的科研方向软件源
    scoop bucket add scoopet https://github.com/integzz/scoopet
    

    scoopet 库包含的安装脚本分为如下四类:

    • 科研工具:如 miniconda(国内镜像),julia(国内镜像),copytranslator,gephi,geogebra,mendeley,netlogo
    • 开发辅助:如 cyberduck,virtualbox,vmware
    • 日常办公:如 adobe acrobat,wpsoffice,百度网盘,灵格斯词霸
    • 社交休闲:如 you-get,网易云音乐,微信
    1. 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-gitoh-my-posh 的依赖,在 scoopextras 包中。

scoop install posh-git

安装 oh-my-posh

oh-my-poshscoop 的主包中,直接安装即可。这个软件能够让你的 PowerShell 有着接近 LinuxOh-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更是痛点需求。


配置

  1. cmder 加到环境变量
    可以把Cmder.exe存放的目录添加到系统环境变量;加完之后,Win+r一下输入cmder,即可。

  2. 添加 cmder 到右键菜单

  3. 在某个文件夹中打开终端, 这个是一个(超级)痛点需求, 实际上上一步的把 cmder 加到环境变量就是为此服务的, 在管理员权限的终端输入以下语句即可:

    Cmder.exe /REGISTER ALL
    
  4. 搭配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下安装MariaDBredis,实在要用的话就在WSL2中或者Docker For Windows下运行吧。