powershell(一)

有关powershell的一些问题

shell简介

shell

shell操作系统中“为用户提供用户界面”的软件,通常指命令行界面的解释器。例如Windows NT系统以cmdpowershell作为解释器,而Linuxbash(Bourne Again shell)作为命令行解释器。(根据wiki的解释,分为GUI图形界面和CLI命令行界面,通常我们见到的交互终端都是命令行界面)
而在编写C语言程序时相信应该很多人都会在编译运行生成可执行文件后弹出一个cmd的终端进行交互,而实际上,shell的功能不止这些,MIT则专门开了一门课讲授这些很少在日常学习中正式讲的东西,但恰恰又很常用。所以我准备简单记录一下学习历程。
先贴一下MIT,B站还有前几期的中字视频

powershellcmd

简单理解,powershellcmd超集,都可以做命令行交互,但是powershell牛逼一点,它是在.NET Framework公共语言运行时(CLR)和.NET Framework的基础上构建的,它接受和返回.NET Framework对象。环境中的这一根本更改带来了管理和配置Windows的全新工具和方法。
PowerShell引入了cmdlet(读作“command-let”)的概念,这是内置到shell中的一个简单的单一功能命令行工具。可以分别使用每个cmdlet,但是组合使用这些简单的工具执行复杂任务时才发挥其作用。PowerShell包括一百多个基本的核心cmdlet,可以编写自己的cmdlet并与其他用户共享它们。

前言

而这次我并不是介绍如何使用powershell,而是我对丑陋的cmdPS界面受不鸟了😤。恰好半夜耍手机看到Tom发视频介绍zsh(bash的美化插件),然后就勾起了我折腾的兴趣www,所以我搜索了关于powershell美化的教程,现在记录一下我途中遇到的坑(多得我头皮发麻,只能说老笨蛋了)

powershell美化

安装Windows Terminal

一般windows系统都会安装有cmdpowershell,快捷键按win+R然后输入名称就可以调用出来,emmm,丑陋不堪。就像Tom所说,如果做后端开发,做服务器的,一天到晚看这个确实感觉老难受了。这个字体也一言难尽。首先可以在Microsoft store里直接下载Windows Terminal

注意不要下一个带preview的版本,那是先行版❗️

下好后win+R输入wt即可打开,是以标签页的形式显示的,字体也变了,大概长下面这样:

安装oh-my-poshposh-git

这里是oh-my-posh官方文档,然后我们可以先安装Nerd Fonts字体,推荐<DejaVuSansMono Nerd Font>\lt DejaVuSansMono\ Nerd\ Font\gt<Cousine Nerd Font>\lt Cousine\ Nerd\ Font\gt这两种字体,下载好后解压,然后Ctrl+A全部右键安装。
之后以管理员方式打开Windows Terminal输入以下命令:

  • 绕过power shell执行策略,使其可以执行脚本文件
1
Set-ExecutionPolicy Bypass
  • 引入插件oh-my-posh提供主题
1
Install-Module oh-my-posh -Scope CurrentUser
  • 引入插件posh-git将git信息添加到提示中
1
Install-Module posh-git -Scope CurrentUser

中途出现询问,输入y即可

编辑配置相关文件

Windows Terminal中输入如下命令:

  • 启动编辑power shell配置文件的引擎
1
if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }
  • 使用记事本打开配置文件
1
notepad $PROFILE

然后在打开的记事本中输入以下语句(脚本文件):

1
2
3
Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt -Theme JanDeDobbeleer

前两条应该都看得懂,就是导入插件,最后一句是oh-my-posh3的设置JanDeDobbeleer主题的语句。
我就是只打了上面三行
到这里本该下一步了但是我在官网看到了说的是用下面代码作为init的一行(原谅我没读懂):

1
oh-my-posh init pwsh --config ~/.jandedobbeleer.omp.json | Invoke-Expression

可以看出来是用的本地json文件(在C:\Users\Username\AppData\Local\oh-my-posh\themes目录里,要打开隐藏文件显示),也可以远程仓库里的:

1
oh-my-posh init pwsh --config 'https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/jandedobbeleer.omp.json'

然后重启Windows Terminal或者输入.$PROFILE可更新配置。
有关主题的选取,可在官网themes里看,也可以输入Get-PoshThemes来查看。

大坑(改用户名)

在我老老实实按照知乎教程做完后,它抽风了,说无法识别为cmdlet命令啥的,然后我发现我的用户名(也就是计算机用户),然后出现了乱码情况,于是猜测是乱码导致路径读取错误。然后开始思考怎么将用户名改成英文(手贱是吧非要起中文名,苦头来了😣)

首先在以管理员打开cmd,然后输入:

1
net user administrator /active:yes

然后右键点击“开始”,或者按Win+X,选择注销:
注销

然后再点击Administrator账户登录,然后点进C盘选你要修改的中文用户名文件夹,右键重命名即可。

这里遇到了另一个坑,就是它提示“操作无法完成,因为其中的文件夹已在另一程序中打开,请关闭该文件或文件夹,然后重试。”这种情况我又查了一下,这样做:

  1. 打开任务管理器
  2. 点击上方的第二个选项卡性能
  3. 在窗口的右下角打开资源监视器
  4. 在窗口上方选择第二个选项卡CPU
  5. 在窗口中部找到关联的句柄,输入搜索你要处理的文件夹名,然后右键结束进程即可。
    关联的句柄
    然后就可以改文件名了。
    改完过后需要修改注册表,即按Win+R然后输入regedit进入注册表编辑器,然后定位到:
1
2
3
4
5
6
--HKEY_LOCAL_MACHINE
--SOFTWARE
--Microsoft
--Windows NT
--CurrentVersion
--Profilelist

找到有几个S-1-5开头的子项,如下:
Profilelist
然后挨个看里面的ProfileImagePath项,找到那个之前的中文名的一项,改成你现在改后的英文名(一样):
ProfileImagePath
这样过后注销Administrator账户,再换回原来的账户就OK了。

总结

真是忙乎了大半天,无语😞
有关shell的具体使用就放在之后更新啦,又是摆烂的一天捏
但是看到了用的还是很开心!(不许吐槽小爱心和独角兽!)
嘿嘿嘿


powershell(一)
https://zongjy.github.io/2022/04/14/f11d54c14894/
作者
zongjy
发布于
2022年4月14日
许可协议