powershell(一)
有关powershell的一些问题
shell
简介
shell
shell
指操作系统中“为用户提供用户界面”的软件,通常指命令行界面的解释器。例如Windows NT
系统以cmd
和powershell
作为解释器,而Linux
以bash
(Bourne Again shell)作为命令行解释器。(根据wiki的解释,分为GUI
图形界面和CLI
命令行界面,通常我们见到的交互终端都是命令行界面)
而在编写C语言程序时相信应该很多人都会在编译运行生成可执行文件后弹出一个cmd的终端进行交互,而实际上,shell
的功能不止这些,MIT则专门开了一门课讲授这些很少在日常学习中正式讲的东西,但恰恰又很常用。所以我准备简单记录一下学习历程。
先贴一下MIT,B站还有前几期的中字视频。
powershell
和cmd
简单理解,powershell
是cmd
的超集,都可以做命令行交互,但是powershell
牛逼一点,它是在.NET Framework
公共语言运行时(CLR)和.NET Framework
的基础上构建的,它接受和返回.NET Framework
对象。环境中的这一根本更改带来了管理和配置Windows的全新工具和方法。
PowerShell
引入了cmdlet
(读作“command-let”)的概念,这是内置到shell
中的一个简单的单一功能命令行工具。可以分别使用每个cmdlet
,但是组合使用这些简单的工具执行复杂任务时才发挥其作用。PowerShell
包括一百多个基本的核心cmdlet
,可以编写自己的cmdlet
并与其他用户共享它们。
前言
而这次我并不是介绍如何使用powershell
,而是我对丑陋的cmd
和PS
界面受不鸟了😤。恰好半夜耍手机看到Tom发视频介绍zsh
(bash
的美化插件),然后就勾起了我折腾的兴趣www,所以我搜索了关于powershell
美化的教程,现在记录一下我途中遇到的坑(多得我头皮发麻,只能说老笨蛋了)
powershell
美化
安装Windows Terminal
一般windows系统都会安装有cmd
和powershell
,快捷键按win
+R
然后输入名称就可以调用出来,emmm,丑陋不堪。就像Tom所说,如果做后端开发,做服务器的,一天到晚看这个确实感觉老难受了。这个字体也一言难尽。首先可以在Microsoft store里直接下载Windows Terminal
注意不要下一个带preview的版本,那是先行版❗️
下好后win
+R
输入wt
即可打开,是以标签页的形式显示的,字体也变了,大概长下面这样:
安装oh-my-posh
和posh-git
这里是oh-my-posh官方文档,然后我们可以先安装Nerd Fonts字体,推荐或这两种字体,下载好后解压,然后Ctrl
+A
全部右键安装。
之后以管理员方式打开Windows Terminal
输入以下命令:
- 绕过power shell执行策略,使其可以执行脚本文件
1 |
|
- 引入插件oh-my-posh提供主题
1 |
|
- 引入插件posh-git将git信息添加到提示中
1 |
|
中途出现询问,输入y即可
编辑配置相关文件
在Windows Terminal
中输入如下命令:
- 启动编辑power shell配置文件的引擎
1 |
|
- 使用记事本打开配置文件
1 |
|
然后在打开的记事本中输入以下语句(脚本文件):
1 |
|
前两条应该都看得懂,就是导入插件,最后一句是oh-my-posh3
的设置JanDeDobbeleer
主题的语句。
到这里本该下一步了但是我在官网看到了说的是用下面代码作为init
的一行(原谅我没读懂):
1 |
|
可以看出来是用的本地json
文件(在C:\Users\Username\AppData\Local\oh-my-posh\themes
目录里,要打开隐藏文件显示),也可以远程仓库里的:
1 |
|
然后重启Windows Terminal
或者输入.$PROFILE
可更新配置。
有关主题的选取,可在官网themes里看,也可以输入Get-PoshThemes
来查看。
大坑(改用户名)
在我老老实实按照知乎教程做完后,它抽风了,说无法识别为cmdlet
命令啥的,然后我发现我的用户名(也就是计算机用户),然后出现了乱码情况,于是猜测是乱码导致路径读取错误。然后开始思考怎么将用户名改成英文(手贱是吧非要起中文名,苦头来了😣)
首先在以管理员打开cmd
,然后输入:
1 |
|
然后右键点击“开始”,或者按Win
+X
,选择注销:
然后再点击Administrator
账户登录,然后点进C盘选你要修改的中文用户名文件夹,右键重命名即可。
这里遇到了另一个坑,就是它提示“操作无法完成,因为其中的文件夹已在另一程序中打开,请关闭该文件或文件夹,然后重试。”这种情况我又查了一下,这样做:
- 打开任务管理器
- 点击上方的第二个选项卡性能
- 在窗口的右下角打开资源监视器
- 在窗口上方选择第二个选项卡CPU
- 在窗口中部找到关联的句柄,输入搜索你要处理的文件夹名,然后右键结束进程即可。
然后就可以改文件名了。
改完过后需要修改注册表,即按Win
+R
然后输入regedit
进入注册表编辑器,然后定位到:
1 |
|
找到有几个S-1-5开头的子项,如下:
然后挨个看里面的ProfileImagePath项,找到那个之前的中文名的一项,改成你现在改后的英文名(一样):
这样过后注销Administrator
账户,再换回原来的账户就OK了。
总结
真是忙乎了大半天,无语😞
有关shell的具体使用就放在之后更新啦,又是摆烂的一天捏
但是看到了用的还是很开心!(不许吐槽小爱心和独角兽!)