首页
友情链接
关于
推荐
工具
Linux
Search
1
欢迎使用 Typecho
21,040 阅读
2
(Windows)以一种访问权限不允许的方式做了一个访问套接字的尝试处理
3,825 阅读
3
Playwright使用记录
3,557 阅读
4
Unity独立安装后添加IL2CPP等编译组件
2,810 阅读
5
Windows上GCC安装
2,528 阅读
全部博文
游戏开发
Unity
Godot Engine
GDScript
编程代码
C#编程
GoLang编程
PowerShell
开发工具
Git
笔记备忘
登录
Search
标签搜索
docker
Godot
GCC
CMS
Proto.Actor
Actor模型
winpty
msys2
Unity
IL2CPP
package
golang
ssh
proxy
proxychains
minikube
k8s
n2n
PowerShell
ChatGPT
玖亖伍
累计撰写
33
篇文章
累计收到
221
条评论
首页
栏目
全部博文
游戏开发
Unity
Godot Engine
GDScript
编程代码
C#编程
GoLang编程
PowerShell
开发工具
Git
笔记备忘
页面
友情链接
关于
推荐
工具
Linux
搜索到
33
篇与
的结果
2023-01-18
PowerShell片段
简单片段查找命令(示例: 包含Module的命令)Get-Command | Out-String -Stream | Select-String -Pattern "Module" -SimpleMatch -CaseSensitive查看帮助(示例: 查看命令Get-InstalledModule的帮助)Get-Help -Name Get-InstalledModule在线查找模块(示例: 搜索模块Pode)Find-Module -Filter Pode信任仓库PSGallery# 查看仓库 Get-PSRepository # 信任仓库 Set-PSRepository -Name 'PSGallery' -InstallationPolicy Trusted安装包(示例: 安装模块Pode)Install-Module -Name Pode -AllowClobber -Force自定义对象(类似于 C# 的 匿名类型)[PSCustomObject]@{ 'Command' = [string]'git' }查看对象成员# 实例化对象 $obj = [PSCustomObject]@{ 'Command' = [string]'git' } # 查看全部对象 $obj | Get-Member # 仅查看属性 $obj | Get-Member -MemberType NoteProperty定义类并使用# 定义类 ClassDemo class ClassDemo { [int]$One [string]$Two ClassDemo() {} ClassDemo([int]$one, [string]$two) { $this.One = $one $this.Two = $two } [string]ToString(){ return ("ClassDemo(One={0},Two={1})" -f $this.One, $this.Two) } } # 3种方式实例化 ClassDemo # 1. 使用 ::new() $object1 = [ClassDemo]::new(1,"2") # 2. 使用 New-Object $object2 = New-Object ClassDemo -Property @{ One = 1; Two = "2" } # 3. 使用类型转换 $object3 = [ClassDemo]@{ One = 1; Two = "2" }功能封装判断命令行命令是否存在function IsCommandExists { <# .SYNOPSIS 判断命令行命令是否存在 .DESCRIPTION 判断命令行命令是否存在 .PARAMETER Command 命令 .EXAMPLE PS> IsCommandExists -Command git .EXAMPLE PS> 'git' | IsCommandExists .EXAMPLE PS> [PSCustomObject]@{ 'Command' = [string]'git' } | IsCommandExists .LINK https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_automatic_variables #> [OutputType([bool])] param( [Parameter(Mandatory=$true, ValueFromPipeline=$True, ValueFromPipelineByPropertyName=$True)] [string] $Command ) Get-Command -ErrorAction SilentlyContinue "$Command" | Out-Null if ($?) { return $True } return $False }外部命令行调用# 命令行调用 pwsh 执行 PowerShell 命令 Get-InstalledModule pwsh -NoLogo -Command "& {Get-InstalledModule}"参考PowerShell 文档The PowerShell Best Practices and Style Guide关于基于注释的帮助Strongly type PS custom object propertiesIncorporating Pipelined Input into PowerShell Functions关于类
2023年01月18日
295 阅读
0 评论
0 点赞
2022-12-08
nvm替代者——fnm
fnm 介绍Schniz/fnmGitHub描述: Fast and simple Node.js version manager, built in Rust自译: Rust实现的,迅捷而简单的Node.js版本管理器。fnm 特性nvm 只支持类 Unix 系统,而 fnm 跨平台支持更好,在 macOS、Windows、Linux 均可使用。可完全替代 nvm, fnm 支持 .node-version 和 .nvmrc 文件。fnm 安装macOS: brew install fnmWindows: scoop install fnm 或 choco install fnmLinux: 在 Releases 页面 下载压缩包,解压后将路径添加到环境变量PATH, 这种方式对 macOS 和 Windows 也适用macOS 和 Linux 还支持脚本安装: curl -fsSL https://fnm.vercel.app/install | bashfnm 使用fnm help 可查看帮助和详细命令Windows上临时使用fnm(持久化不修改环境变量)前往 fnm release 页面下载最新的 fnm-windows.zip解压后得到 fnm.exe (假设解压目录为 D:\portable\fnm)cmd.exe 中执行如下命令, 生成 fnm 设置环境变量的脚本 init.cmdfnm --fnm-dir "D:\portable\fnm" --node-dist-mirror "https://npmmirror.com/mirrors/node/" env --use-on-cd>init.cmd执行 init.cmd 后, 查找 node 版本列表, 安装合适的版本(以 v22.1.0 为例)fnm list-remote fnm install v22.1.0 fnm use v22.1.0至此,fnm 已经安装 好了 node, 接下来设置 npm 加速npm config -g set registry https://registry.npmmirror.com因为安装 pnpmnpm install -g pnpm参考https://npmmirror.com/Shell Setup - Windows Command Prompt aka Batch aka WinCMD
2022年12月08日
1,201 阅读
0 评论
0 点赞
2022-08-13
Ubuntu上nvm和最新版本nodejs(加速)安装
操作-- 下载nvm安装脚本 wget -c -O nvm-install.sh https://ghproxy.com/https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh -- 将nvm-install.sh中的下载链接前添加 https://ghproxy/ 安装nvm bash nvm-install.sh # 重新加载 ~/.bashrc, 使nvm命令可用 source ~/.bashrc # 设置nodejs国内源 export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/ # 安装nodejs nvm install --ltsnvm-install.sh修改Diff@@ -59,14 +59,14 @@ nvm_source() { local NVM_SOURCE_URL NVM_SOURCE_URL="$NVM_SOURCE" if [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then - NVM_SOURCE_URL="https://raw.githubusercontent.com/${NVM_GITHUB_REPO}/${NVM_VERSION}/nvm-exec" + NVM_SOURCE_URL="https://ghproxy.com/https://raw.githubusercontent.com/${NVM_GITHUB_REPO}/${NVM_VERSION}/nvm-exec" elif [ "_$NVM_METHOD" = "_script-nvm-bash-completion" ]; then - NVM_SOURCE_URL="https://raw.githubusercontent.com/${NVM_GITHUB_REPO}/${NVM_VERSION}/bash_completion" + NVM_SOURCE_URL="https://ghproxy.com/https://raw.githubusercontent.com/${NVM_GITHUB_REPO}/${NVM_VERSION}/bash_completion" elif [ -z "$NVM_SOURCE_URL" ]; then if [ "_$NVM_METHOD" = "_script" ]; then - NVM_SOURCE_URL="https://raw.githubusercontent.com/${NVM_GITHUB_REPO}/${NVM_VERSION}/nvm.sh" + NVM_SOURCE_URL="https://ghproxy.com/https://raw.githubusercontent.com/${NVM_GITHUB_REPO}/${NVM_VERSION}/nvm.sh" elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then - NVM_SOURCE_URL="https://github.com/${NVM_GITHUB_REPO}.git" + NVM_SOURCE_URL="https://ghproxy.com/https://github.com/${NVM_GITHUB_REPO}.git" else nvm_echo >&2 "Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD" return 1
2022年08月13日
907 阅读
0 评论
0 点赞
2022-06-29
虚拟组网工具n2n源码编译记录
操作环境: Ubuntu 20.4 LTS系统需要安装的编译相关的工具sudo apt install gcc g++ make git vim autoconf -y# clone源码(使用 https://ghproxy.com/ 加速) git clone https://ghproxy.com/https://github.com/ntop/n2n.git n2n-src # 编译配置 cd n2n-src/ ./autogen.sh ./configure # 编译 make # 安装 sudo make install
2022年06月29日
373 阅读
0 评论
0 点赞
2022-06-02
Ubuntu使用minikube搭建K8S环境
操作记录安装docker# 清理旧的docker(如果安装过的话) sudo apt-get remove docker docker-engine docker.io containerd runc # 安装需要的基础软件(一般都已经存在了) sudo apt-get install ca-certificates curl gnupg lsb-release # 添加GPG curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 添加apt源 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 更新本地apt源信息 sudo apt-get update # 安装 sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y # 将当前用户添加到docker组 sudo usermod -aG docker $USER # 登录到docker组 newgrp docker # 验证 docker run hello-world安装 kubectl# 安装 sudo snap install kubectl --classic # 验证 kubectl version --client安装并启动minikube# 下载 wget -c https://ghproxy.com/https://github.com/kubernetes/minikube/releases/download/v1.25.2/minikube_1.25.2-0_amd64.deb # 安装 sudo dpkg -i minikube_1.25.2-0_amd64.deb rm minikube_1.25.2-0_amd64.deb # 设置使用docker作为驱动 minikube config set driver docker # 启动minikube集群 minikube start --driver=docker --image-mirror-country='cn'配置minikube仪表盘(监听127.0.0.1只能本机访问)以supervisor为例, 如果未安装,请用命令sudo apt install supervisor 安装。minikube dashboard 配置sudo vim /etc/supervisor/conf.d/minikube_dashboard.conf/etc/supervisor/conf.d/minikube_dashboard.conf:[program:minikube_dashboard] user=xxx directory=/home/xxx command=/usr/bin/minikube dashboard --url autostart=true autorestart=true startsecs=5 stopsignal=HUP stopasgroup=true stopwaitsecs=5 stdout_logfile_maxbytes=20MB stdout_logfile=/var/log/supervisor/%(program_name)s-out.log stderr_logfile_maxbytes=20MB stderr_logfile=/var/log/supervisor/%(program_name)s-err.logkubectl proxy 配置(开放端口允许外部访问)sudo vim /etc/supervisor/conf.d/kubectl_proxy.confsudo vim /etc/supervisor/conf.d/kubectl_proxy.conf:[program:kubectl_proxy] user=xxx directory=/home/xxx command=/snap/bin/kubectl proxy --port=8090 --address=0.0.0.0 --accept-hosts='.*' autostart=true autorestart=true startsecs=5 stopsignal=HUP stopasgroup=true stopwaitsecs=5 stdout_logfile_maxbytes=20MB stdout_logfile=/var/log/supervisor/%(program_name)s-out.log stderr_logfile_maxbytes=20MB stderr_logfile=/var/log/supervisor/%(program_name)s-err.log启动dashboard# 进入 supervisor sudo supervisorctlsupervisorctl内操作# 应用配置更新 update # 查看minikube dashboard输出 tail -f minikube_dashboardminikube_dashboard输出如下:supervisor> tail -f minikube_dashboard ==> Press Ctrl-C to exit <== - Using image kubernetesui/metrics-scraper:v1.0.7 - Using image kubernetesui/dashboard:v2.3.1 http://127.0.0.1:42213/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/复制url, 将其中的ip换为机器ip(假设为192.168.1.3), 端口换为代理端口(此处为8090), 即可实现外部访问:http://192.168.1.3:8090/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/参考Install Docker Engine on UbuntuMinikube - Kubernetes本地实验环境minikube startdockerGitHub Proxy 代理加速
2022年06月02日
503 阅读
0 评论
1 点赞
2022-05-24
SSH反向代理的使用
准备工作说明:12.34.56.78 为公网服务器, ssh端口为22192.168.1.2 为内网服务器(未开放访问公网), ssh端口为10022192.168.1.5 为本机, 可访问192.168.1.2和12.34.56.78涉及到的命令# 设置SOCKS5代理 ssh -o StrictHostKeyChecking=no 12.34.56.78 -l user0 -p 22 -D 0.0.0.0:12080 -N -v # 设置反向隧道到代理 ssh -o StrictHostKeyChecking=no 192.168.1.2 -l devops -p 10022 -R 8051:127.0.0.1:12080 -N -v # 本机连接到私域服务器,下面的命令在其上执行 ssh 192.168.1.2 -l devops -p 100221. 修改hosts,绕过DNS解析编辑hosts文件,按需设置: sudo vim /etc/hosts119.84.77.214 mirrors.aliyun.com 140.83.35.89 ghproxy.com 65.52.183.205 packages.microsoft.com2. 安装proxychains获取proxychains源码# 临时设置代理 export ALL_PROXY=socks5://127.0.0.1:8051 # 获取proxychains源码 git clone https://ghproxy.com/https://github.com/rofl0r/proxychains-ng.git proxychains-ng-src # 取消临时代理 unset ALL_PROXYproxychains编译和安装cd proxychains-ng-src/ ./configure make sudo make install sudo make install-config修改proxychains配置添加代理: sudo vim /usr/local/etc/proxychains.conf[ProxyList] socks5 127.0.0.1 80513. 使用示例通过proxychains安装.NET6和Powershellproxychains4 wget -c https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo proxychains4 apt update # 安装常用和必要软件 sudo proxychains4 apt install -y apt-transport-https software-properties-common w3m tree # 安装 .NET6和pwsh sudo proxychains4 apt install -y dotnet-sdk-6.0 powershell # 验证 dotnet --info pwsh --version运行filebrowserproxychains4 wget -c https://ghproxy.com/https://github.com/filebrowser/filebrowser/releases/download/v2.21.1/linux-amd64-filebrowser.tar.gz tar -zxvf linux-amd64-filebrowser.tar.gz mkdir data-store /home/devops/filebrowser/filebrowser --address "0.0.0.0" --port "2554" --root /home/devops/filebrowser/data-store # 本地代理(本地访问: http://127.0.0.1:2554/) ssh -o StrictHostKeyChecking=no 192.168.1.2 -l devops -p 10022 -L 2554:127.0.0.1:2554 -N -v
2022年05月24日
373 阅读
0 评论
0 点赞
2022-05-20
Ubuntu上MySQL8备忘
安装mysql# 服务器 sudo apt install mysql-server -y # 客户端 sudo apt install mysql-client -y设置密码并开启远程连接修改mysql配置vim /etc/mysql/mysql.conf.d/mysqld.cnf主要配置内容[mysqld] # mysql 监听主机 bind-address = 0.0.0.0 # mysql X插件 监听主机(如果启用了的话) mysqlx-bind-address = 0.0.0.0修改mysql内部设置超管方式运行mysql# Ubuntu上全新安装的mysql8没有默认启用密码插件 sudo mysql执行如下sql操作-- 修改默认root@localhost使用密码插件并设置密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your password'; -- 添加root允许远程主机访问(如果有必要,务必确保安全) CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your password'; -- 授予远程访问全部权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; -- 刷新权限 FLUSH PRIVILEGES; exit安装mysql后需要修改忽略表名大小写Windows上,MySQL默认是忽略表名大小写的;Linux上,MySQL默认是区分表名大小写的,且MySQL初始化之后是不允许修改忽略表名大小写配置的,而MySQL安装过程会自动初始化。如下操作参考: How to install MySQL 8.0 with lower_case_table_names=1 on Ubuntu Server 20.04 LTS successfully?如果需要在MySQL安装后修改为忽略表名大小写,则需要删除MySQL数据,重新初始化,所以,如下操作前请备份数据;修改mysql配置vim /etc/mysql/mysql.conf.d/mysqld.cnf主要配置内容[mysqld] lower_case_table_names = 1清理数据(操作前务必备份数据)# 停止服务 sudo service mysql stop # 删除mysql数据文件夹及内部数据 sudo rm -rf /var/lib/mysql # 重新创建mysql数据文件夹并赋予合适的权限 sudo mkdir /var/lib/mysql sudo chown mysql:mysql /var/lib/mysql sudo chmod 700 /var/lib/mysql # 重新初始化mysql sudo mysqld --defaults-file=/etc/mysql/my.cnf --initialize --lower_case_table_names=1 --user=mysql --console # 启动服务 sudo service mysql start # 查看mysql临时密码 sudo grep 'temporary password' /var/log/mysql/error.log # 使用(临时密码)登录mysql sudo mysql -u root -p # 参考前面允许远程配置部分,修改密码可参考的mysql语句-- 查看用户、认证方式、主机等信息 SELECT user,authentication_string,plugin,host FROM mysql.user; -- 是否启用了ssl SHOW VARIABLES LIKE 'have_ssl'; -- 是否忽略大小写 SHOW VARIABLES LIKE 'lower_case_%';
2022年05月20日
527 阅读
0 评论
0 点赞
2022-05-02
克隆PyTorch源码失败替换Git镜像
背景服务器已安装CUDA 11.6, 但是 PyTorch 已公开的包只兼容到 CUDA 11.3, 于是考虑从源码自行编译。但是在clone代码这一步,遇到了大量连接超时问题。过程clone PyTorch 代码:git clone --recursive https://github.com/pytorch/pytorch这一步遇到连接超时问题比较好解决, 直接使用FastGit镜像替换即可:FastGit 仅仅是 GitHub 的代理,所以我们仅需要替换远程地址。于是,将 仓库URL由 https://github.com/pytorch/pytorch 替换为 https://hub.fastgit.xyz/pytorch/pytorch 即可。但是PyTorch使用了大量的第三方库都是以 submodule 方式导入的, 所以需要根据如下描述直接全局替换GitHub源。可以直接修改 git 的配置,使用 FastGit 替换所有指向 GitHub 的链接:git config --global url."https://hub.fastgit.xyz/".insteadOf "https://github.com/" git config protocol.https.allow always重新拉取前面失败的 submodule, 进入源码目录,执行如下操作:git submodule sync git submodule update --init --recursive --jobs 0但是有少量 submodule 却不是在GitHub上:到这里就卡住了,经过一番搜索,从声网的一篇文章得到了启发:WebRTC 镜像源运行以下脚本,替换 git 源git config --global url.http://120.92.49.206:3232/chromiumsrc/linux-syscall-support.git.insteadOf https://chromium.googlesource.com/linux-syscall-support.git与前面替换源思路相同,只需要针对极个别的 submodule 源替换即可, 只是这里时针对具体仓库,而非域名。而且 linux-syscall-support 是在浏览器中科学上网可以正常访问的:首先浏览器尝试访问 http://120.92.49.206:3232/chromiumsrc/linux-syscall-support 发现无法访问。似乎到这里卡住了......稍作思索,想到了曲线救国的方案————利用码云(Gitee)导入 linux-syscall-support 仓库,再将Git地址换为码云的地址:经过尝试,发现不得行,虽然之前实践过,Gitee 可以导入 Github 的仓库,但是此刻发现 googlesource 的仓库它却无能为力。我们通过 FastGit 已经可以畅通无阻地访问 Github 了,那么是否可以利用 Github 导入外部仓库呢? 虽然从没用过 Github 的导入功能, 但是猜测它因该是有这功能的。很快找到了它的导入:稍等几秒就导入完成了:接着就替换地址:git config --global url.https://github.com/gsw945/linux-syscall-support.insteadOf https://chromium.googlesource.com/linux-syscall-support然后重复前面的操作,更新代码git submodule update --init --recursive --jobs 很顺利(下图中将github.com替换为了hub.fastgit.xyz):至此, PyTorch 源码全部 clone 完成。参考PyTorch - Start LocallyFastGit 使用指南
2022年05月02日
887 阅读
0 评论
2 点赞
2022-02-25
GoLang使用本地文件夹包
操作记录# 创建目录 mkdir my-app cd my-app # 初始化go mod【重点1】 go mod init myapp # 创建文件 touch main.go # 【重点2-1】 mkdir demos touch demos/hello.go # 编译 go build -o myapp main.go # 运行 ./myapp文件结构如下./my-app/ ├── demos │ └── hello.go ├── go.mod └── main.go文件内容如下生成的go.modmodule myapp go 1.16demos/hello.go// 【重点2-2】 package demos import ( "fmt" ) func sayHi() { fmt.Println("Hi go mod") } // // 【重点4】 func HelloWorld() { fmt.Println("Hello World") }main.gopackage main // 【重点3】 import "myapp/demos" func main() { demos.HelloWorld() }重点说明【重点1】: 初始化go mod时,指定项目名(示例中为myapp, 与项目所在文件夹名my-app无关)【重点2-1】: 创建文件夹(确定了包名)【重点2-2】: 模块内声明package名(示例中为demos)【重点3】: import使用时, 导入格式为 "<项目名>/<模块名>"(多级包<模块名>按层级嵌套即可)【重点4】: 供包外部使用的成员必须是可导出的(即必须大写字母开头)
2022年02月25日
507 阅读
0 评论
1 点赞
2022-01-21
基于msys2环境编译winpty
操作记录安装msys2 根据msys2官方下载页面 MSYS2-Installation - MSYS2 的链接,打开下载列表页面(不同架构列表页面不同):32位: https://repo.msys2.org/distrib/i686/64位: https://repo.msys2.org/distrib/x86_64/ 在列表页面查找最新的exe文件,一般可从最底部倒序向上找(eg: msys2-x86_64-20220118.exe): 下载后选择路径安装(eg: D:\installed\msys64) 基本不需要太多设置,全部 下一步 即可。安装完成后将msys安装路径和bin目录添加到环境变量PATH: D:\installed\msys64;D:\installed\msys64\usr\bin安装编译需要的组件 打开MSYS2终端 操作如下:# 更新本地-系统包信息 pacman -Suu # 更新本地-安装的额外包信息 pacman -Syu # 安装msys/gcc pacman -S msys/gcc # 安装mingw64 pacman -S mingw64/mingw-w64-x86_64-gcc # 安装make pacman -S make # 临时将mingw64添加到环境变量 export PATH=$PATH:/mingw64/bin/克隆winpty源码到某个目录(eg: E:\github):git clone https://github.com.cnpmjs.org/rprichard/winpty.git则最终winpty完整目录为E:\github\winptyMSYS2终端进入winpty目录并编译# 注意Windows目录转换为MSYS2目录 cd /e/github/winpty # 预生产配置 # ./configure # 编译 make # 测试编译成功 ./build/winpty powershell # 资源管理器打开winpty的目录 explorer .部分截图记录:预生成配置: 开始编译: 编译完成: 测试: winpty目录下的build文件夹中即为编译好的文件
2022年01月21日
602 阅读
0 评论
0 点赞
1
2
3
4