Linux
二进制文件安装
将binary文件copy到/usr/local/bin中或者~/.local/bin中或者/usr/bin中
export PATH="$HOME/.local/bin:$PATH"
eval "$(fnm env)"
export PATH="/usr/local/bin:$PATH"
eval "$(fnm env)"
source ~/.bashrc
常用命令
查找文件
find / -name "example.txt"
查找文件夹
find / -type d -name "example.txt"
查看ip公网
curl ip.sb
监听端口
netstat -nlpt
查看端口占用
lsof -i:xxx
施放端口
kill -9 PID
结束所有python进程
ps -ef | grep python | grep -v grep | awk '{print $2}' | xargs kill -9
N卡监听刷新
watch -n 1 nvidia-smi
递归删除pycache
find . -type d -name '__pycache__' | xargs rm -rf
Ubuntu
检查linux版本
uname -r
编译环境
基础安装
sudo apt install build-essential
ppa
sudo apt install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
gcc & g++
sudo apt install gcc-11 g++-11
Python安装
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.12
aptitude
sudo aptitude install ...
npm与node的安装
sudo apt install npm
sudo apt install nodejs
npm设置淘宝镜像
npm config set registry https://registry.npmmirror.com/
apt切换阿里源
切换目录
cd /etc/apt/
备份
cp ./sources.list ./sources.list.bak
追加镜像信息
sudo vim sources.list
追加内容如下
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
* 注意sources.list需要的是追加,而不是覆写,覆写可导致Linux崩溃
No such file or dir
sudo vim ~/.bashrc
追加路径
source ~/.bashrc
wsl
常用命令
关闭wsl
wsl --shutdown
网络模式
NAT 网络地址转换
WSL 2 默认使用 NAT 网络,即虚拟机(WSL 2 本质是一个轻量级 VM)通过主机的网络接口共享 IP 地址访问外部网络
- 特点:
- WSL 2 实例会分配一个私有 IP(如
172.x.x.x
),主机通过 NAT 规则转发其流量 - 外部设备无法直接访问 WSL 2 中的服务(如 Web 服务器),除非手动配置端口转发(如
netsh interface portproxy
)
- WSL 2 实例会分配一个私有 IP(如
- 适用场景:适合大多数开发场景(如访问互联网或主机服务)
Mirrored 镜像
一种实验性网络模式,通过镜像主机的网络接口到 WSL 2,使 WSL 2 直接使用主机的网络配置(如相同的 IP、DNS 等)
- 特点:
- WSL 2 实例会获得与主机相同的 IP 地址,就像直接运行在主机上
- 解决了 NAT 模式下端口转发和网络隔离的问题,但可能导致 IP 冲突(需谨慎使用)
- 适用场景:需要 WSL 2 与主机完全共享网络环境(如企业内网严格限制 IP 的场景)
virtioProxy 虚拟化代理
WSL 2 使用 virtio 虚拟化技术与主机通信时,virtioProxy
是一个中间层组件,负责处理网络数据包的代理转发
- 背景: WSL 2 基于 Hyper-V,其虚拟网络设备(如
vEthernet (WSL)
)通过virtio
驱动与 Linux 子系统交互。virtioProxy
可能涉及以下功能:- 管理虚拟机与主机之间的网络流量(如 NAT 规则、端口映射)。
- 支持用户态网络堆栈(如
wsl-vpnkit
用于 VPN 兼容性)。
- 适用场景:通常对用户透明,开发者无需直接配置,但某些高级功能(如自定义 DNS 或 VPN 集成)可能依赖它。