Skip to content

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
  • 适用场景:适合大多数开发场景(如访问互联网或主机服务)

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 集成)可能依赖它。