Windows Powershell 01 后台任务

Windows Powershell 01 后台任务

[!summary]+
有一些希望能在后台运行的任务,例如 nohup,tmux,screen 可实现的一些功能,简单介绍以下 powershell 中的类似用法和功能。

To run a Command Prompt (cmd.exe) command in the background from PowerShell and retrieve it later, similar to sessions in tmux, you can use PowerShell Jobs. PowerShell Jobs allow you to start a command or script in the background and then retrieve the results later. Here’s how you can do it:

从 PowerShell 在后台运行命令提示符 (cmd.exe) 命令并稍后检索它(与 tmux 中的会话类似),可以使用 PowerShell Jobs。 PowerShell Jobs 允许在后台启动命令或脚本,然后稍后检索结果。

具体的一些操作如下:

Start a Job in the background

使用 Start-Job 和 ScriptBlock 参数执行选定的命令

1
$job = Start-Job -ScriptBlock { pwsh.exe /c "your_command_here" }

这里将 your_command_here 改为自己需要执行的命令,例如启动局域网内可访问的 Stable-Diffusion Webui:

1
$job = Start-Job -ScriptBlock { pwsh.exe /c ".\webui.bat --xformers --listen" }

如果需要同时执行多条命令(例如执行 python 命令之前需要切换环境,默认为 base 环境)可以使用 &&

1
$job = Start-Job -ScriptBlock { pwsh.exe /c "conda activate flask && python .\app.py" }

Windows端口异常占用

Windows端口异常占用

Windows11基于 WSL2启动 docker 后报错如下(需要注意有时候使用启动命令会报错,但是 restart 命令 docker 可以运行,对应服务无法访问)

Bind: An attempt was made to access a socket in a way forbidden by its access permissions.

观察错误发现占用的信息为2345,从 windows 和 wsl 中分别查看端口是否被占用:

1
netstat -aon|findstr "2345"
1
netstat -tunlp | grep 2345

均显示没有被占用,这可能是由于协议 tcp 使用的动态端口问题导致,可以使用管理员权限在 powershell 或者 cmd 中执行下列命令查看端口是否在动态范围中:

动态范围可能是由于 hyper-v 的原因修改过起始端口,所以可能会发现关闭 hyper-v 后没有占用的情况的现

1
netsh int ipv4 show dynamicport tcp

如在,修改动态范围,之后使用的时候避开这些端口即可。

1
netsh int ipv4 set dynamicport tcp start=49152 num=16384

重启电脑即可生效。


Clash局域网代理共享

Clash局域网代理共享

本文介绍基于 Windows Clash Desktop 的代理服务器设置,可以为局域网内的设备提供代理服务,该方案可以解决一定的科学上网需求,但是没办法覆盖所有的场景,例如 PS5 的 Netflix ,其不走代理服务器,因此无法通过该方案解决,(软路由可破)

本篇的设置内容主要会从两个方面出发:一个是服务器的开启和防火墙的设置、另一个是客户端如何设置使用对应的代理服务器。

Clash开启代理服务器

Clash 作为局域网代理服务器开启的方式十分简单,主要是以下几步。

开启局域网访问 -> 设置端口,查看 ip -> 防火墙允许通行

配置代理服务器

开启局域网访问: Allow LAN 打钩即可。
端口:设置好想要的 mixport 即可。

image.png

防火墙允许通行: 防火墙-> 高级设置,找到 Clash 所有项,允许其在专用网络上通行。

image.png
查看 ip:命令行输入 ipconfig/ all 里面的 WLAN 模块,可以找到自己的局域网 ip

image.png


Windows App01 Potplayer & Alist

Windows App01 Potplayer & Alist

本篇主要介绍一下播放器 PotPlayer 的设置以及结合 Alist&小雅 alist 的使用,这样就可以直接在播放器访问本地网盘上的内容,便于使用和观看。

Alist Deploy

Alist 作为一个网盘管理中心,可以将各大网盘中的资源进行统一管理,同时支持视频的 webdav 播放,这里推荐的安装方式是使用 Docker-Compose 进行安装,根据自己的情况来选择对应的挂载和安装目录。

由于官方的文档已经事无巨细,这里就不在赘述如何安装和配置 alist 的各个网盘挂载,详情参见:Home | AList Docs (nn.ci)

安装完并启动 Alist 服务即可,记住自己的端口和设置的账号密码

Aria2离线下载支持

该部分介绍如何通过 docker 为 Alist 添加 Aria2 作为离线下载服务,以及一些常见的问题解决方法。

参考资料:aria2-pro | aira2-pro-github | aria2认证失败

这里介绍使用 docker-compose 安装 aria2的方法,并将 docker 版本的 aria2和 alist 结合起来使用,在基于 docker 安装之前,我们先准备几个文件夹:

1
2
cd <your-path-2-aria2> && mkdir aria2-config && chmod 777 aria2-config
mkdir aria2-downloads && chmod 777 aria2-downloads

其中 downloads 目录是我们用来下载文件的目录,我们也可以使用挂载的目录或者共享的目录来存储下载的文件;然后我们准备一下 alist 中用于离线下载的目录,该目录需要在 alist 的 docker 和 aria2的 docker 中都将该 volume 挂载到同一个地方

本文将 aria2的队名目录挂载到 alist 的对应目录中,对应的 alist 的 compose 文件有

image.png

而 aria2的 compose 文件则有:

image.png

再将该目录的权限改成777,chmod 777 <this-dir> 之后即可再 alist 中离线下载成功,而且该下载文件会在指定的网盘中上传,当上传完成时会删除临时文件,不占用本地磁盘空间。

完整的 Compose 文件可以参考 Aria2-Pro-Docker/docker-compose.yml at master · P3TERX/Aria2-Pro-Docker · GitHub 官方的配置进行安装,我个人的 compose 文件则会上传到AikenH/aikenh-DockerComposeYML (github.com)中。

Aria2Ng 界面认证失败的问题,是因为我们再 compose 中设置了密码之后,要在该界面的设置中设置密码后才能正常认证。

image.png

密码需要到如下地方设置:

image.png

设置完成后应该就不会有认证失败的提示了。

alist 设置 Aria2失败,由于使用的 docker 部署的 aria2,这里不能使用 localhost,要使用对应的 ip 来设置该服务,如下图所示

image.png

完成这些设置后应该就可以正常使用了,但是由于现在都是网盘场景更多,所以离线下载的可能使用场景也有限,而且通过测试发现,如果完全装在树莓派上的话,可能会对系统的性能造成一定的负担。

Xiaoya Deploy

Xiaoya 是基于 Alist 做改版的个人资源站,里面涵盖了大量的影视资源,并在不断的更新,通过在本地挂载 xiaoya 我们也可以用来通过 webdav 在播放器中直接选择视频进行播放,大多数情况下都免去了找资源的痛苦。

官方网站:主页 | 小雅的分类 Alist (xiaoya.pro)

拥有了 Docker 环境后,就可以基于 xiaoya 提供的脚本实现一键拉取镜像和启动 Docker,默认的端口是 5678,安装指令如下:

1
sudo bash -c "$(curl -s http://docker.xiaoya.pro/update_new.sh)"

安装过程中会需要填入如下内容:token、open_token、转存目录的 folder id,具体和后续更新参考配置页,(跟随安装引导界面进行安装即可。)


Windows Configuration05 CUDA & Cudnn

Windows Configuration05 CUDA & Cudnn

在 Windows 和 WSL2 中安装 Cuda 和 Cudnn ,是配置 GPU 开发环境中重要的一步,其支撑了 AI 模型进行 Training 和 Interface 。本篇介绍安装 CUDA 和 Cudnn 的步骤和一些踩过的坑。

参考资料如下:版本查看 | Win 安装 Cuda 和cuDNN | WSL 2 安装 CUDA 和cuDNN

Win 11 安装 CUDA 和 cuDNN

CUDA

首先在 Nvidia 的控制面板:帮助-系统信息的如下位置,查看 GPU 最大支持的 CUDA 版本:

image.png

也可以使用 Nvidia-smi 命令在 Powershell 或者 CMD 中查看:

image.png

确定了版本之后到 Nvidia CUDA下载页面 下载指定版本的 CUDA 进行安装(根据安装指引进行)即可,安装位置等默认即可,其中有一些安装选项即是 Nvidia GeForce Experience 安装的内容。

安装完成后在 CMD 或者 PowerShell 确认是否安装完成(需要重启终端):

1
nvcc -V

image.png


Windows Powershell 00 Install and Config

Windows Powershell 00 Install and Config

Update:@20230214

shift+右键: 在此处打开 powershell.

PowerShell ,这里的 PowerShell 和 windows 的已经不是同一个东西了,可能要更先进一些,通过 msi 进行安装,安装完后重启 terminal 就会自动的添加配置,后续的配置在这个 new shell 中进行会更好一些

Basic Setting

Setting & Cancel Proxy

设置代理如下:

1
2
3
netsh winhttp set proxy 127.0.0.1:8890
# 查看代理设置情况
netsh winhttp show proxy

取消代理设置使用:

1
netsh winhttp reset proxy

Windows Configuration04 Dual-System-Ubuntu

Windows Configuration04 Dual-System-Ubuntu

该文介绍基于 Windows11 系统的双系统安装和删除,安装的双系统选择 Ubuntu(开发还是比较推荐使用 WSL2 即可)

Install Dual System

参考资料:全面解决各种问题 双系统安装 Windows+Ubuntu20.04双系统安装教程

1. 安装 u 盘制作

这里推荐 ventoy 来做启动盘,ventoy 可以同时将很多系统的镜像放到一个 u 盘中,最最重要的是:干净简洁,可以参考其官方文档来制作盘,制作后将镜像文件放到指定目录即可。

2. 硬盘分区

win+s 搜索创建并格式化分区,找一块空闲空间较大的硬盘,右键压缩卷,设定好预留给 Linux 的空间即可(记住该大小,方便后续辨认,可以将各个盘的大小拍照记录下来,安装的时候别把 windows 覆盖了)。

image.png

image.png

该预留的未分配空间,建议至少 30G 以上,如果需要开发和机器学习啥的话可以 50G、100G 以上。


Windows Configuration03 LAN sharing
Windows Configuration02 Terminal

Windows Configuration02 Terminal

Config Windows Terminal in Win11

Install 安装

windows terminal 在 win11 已经自带,无需安装,如果需要安装的话在 Microsoft Store 下载即可,默认的 terminal 在中文环境中可能要搜索 windows 终端。

Baisc 基础设置

新版的 Windows Terminal 有了图形化配置界面,因此配置简单和直观了不少,该部分就简要的介绍一下基础的设置。通过 Ctrl+, 或者下拉菜单可以打开设置页面。

完成每一部分的修改后记得保存


Windows Configuration01 WSL2

Windows Configuration01 WSL2

WSL(Windows Subsystem Linux) 将 Linux 环境部署在 Windows 中,Linux 环境在补全了 Windows 开发上的不足之外(Bash 等),还有以下的几个特性极大的便利开发和日常使用,因此强烈推荐启用并安装。

  • win11 中 wsl2 已经支持相应主机的 cuda,便利了机器学习的开发;
  • 子系统中通过/mnt 挂载了 windows 的磁盘,可以通过子系统访问和管理 windows 环境;
  • windows 资源管理器可访问和管理子系统中的文件
  • 支持 windows 打开子系统中的 GUI 应用

无论是将 windows 和 linux 分别作为日常和开发的环境来隔离,还是两个协同去做开发和日常,都是一个比较不错的选择,下面就介绍一下如何安装和使用 WSL2。

  • 开始之前可以参考 windows terminal 安装一下这个官方的终端模拟器,在 windows 上的表现是比较优秀的
  • 如果是考虑在 windows 环境开发的话,也可以参考这个[windows],里面有我个人推荐的一些应用。

启用并安装 WSL2

安装和启用 WSL2 需要在 windows 的服务中勾选 Hyper-V 和 Windows Subsystem Linux 支持两个选项,具体操作如下:

  1. Win + S 搜索 “功能”,打开启用或关闭 windows 功能
  2. 启用对应功能,功能安装完毕后即可
    image.png
    image.png
  3. 安装 linux 发行版可以在 windows store 安装,也可以通过如下的命令进行安装:
1
2
3
4
5
6
7
# 列出对应的发行版
wsl -l -o
# 选择相应的发行版进行安装
wsl --install -d <Distribution Name>
# 如果当前的WSL是1版本,更新到2
wsl -l -v
wsl --set-default-version 2

Windows Configuration00 系统初始配置

Windows Configuration00 系统初始配置

@AikenHong 2020

本文介绍个人的 windows 开发环境搭建(包括一些环境安装、功能启用)以及一些使用的小 tips。

软件推荐

Windows 的账号同步功能善用,减少在环境迁移的时候对浏览器插件和 Vscode 插件的繁琐同步步骤。

同时对 Onedrive 和外接硬盘的应用可以很好的减轻备份的负担,在网络环境对 Onedrive 友好的时候还是推荐使用,在 Mac 和 Windows 上都有一个比较好的体验。

一些基础的软件

Software Type Free? & source
Powertorys system enhance y & github
Translucent beautify y & Microsoft Store
Snipaste system enhance y & offical site
Clash for windows proxy y & github
everything search-file y & offical site
Potplayer Player y & offical site
Twinkle Tray screen control y & offical site
7 zip system enhanc y & offical site
Zerotier NAT y & offical site
Nerd Font Font y & offical site
Wallpaper Engine beautify n & steam
MyDockerFinder beautify n & steam
IDM Download n & offical site

开发工具

Software Type Free? & source
Windows Terminal Terminal Simulator y & Microsoft Store
Powershell 7 Shell y & Github
VsCode Editor y & Offical Site
Visual Studio IDE y & Offical Site
Interllij IDEA IDE n & Offical Site
Git - -
Nodejs - -
Anaconda - -

文档编写

Software Type Free & Source
Obsidian Markdown Editor y & offical-site
Typora Markdown Editor n & offical-site
Picgo Image Upload y & offical-site
CopyTranslate Translate y & offical-site
Mathpix Snipping Tool Latex Formulate - & offical-site

Daily

Software Free & Source
Office n & offical-site
Tim y & offical-site
WeChat y & offical-site
OneDrive y & offical-site
Steam - & offical-site
Epic - & offical-site
yy y & offical-site
uu n & offical-site
网易云 y & offical-site

开发环境配置