WSL初步


适用于 Linux 的 Windows 子系统 (WSL) 可让开发人员直接在 Windows 上按原样运行 GNU/Linux 环境(包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。

WSL安装

官方文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Ubuntu 已安装。
正在启动 Ubuntu...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: xinbinsun
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 5.15.153.1-microsoft-standard-WSL2 x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro

System information as of Sat Oct 19 09:41:20 CST 2024

System load: 0.0 Processes: 43
Usage of /: 0.1% of 1006.85GB Users logged in: 0
Memory usage: 5% IPv4 address for eth0: 172.26.125.23
Swap usage: 0%


This message is shown once a day. To disable it please create the
/home/xinbinsun/.hushlogin file.
1
2
3
4
wsl --version #查看wsl版本
wsl --status #查看wsl状态
wsl --shutdown #关闭wsl
wsl --unregister <要卸载的发行版> #卸载某个发行版

建议自定义盘符安装

Linux常用命令

1. 文件和目录操作

  • ls:列出目录内容

    1
    2
    3
    4
    ls                # 列出当前目录内容
    ls -l # 列出详细信息(文件权限、大小等)
    ls -a # 列出所有文件,包括隐藏文件
    ls -R # 递归列出所有子目录的文件
  • cd:改变当前工作目录

    1
    2
    3
    cd /path/to/directory    # 切换到指定目录
    cd ~ # 切换到当前用户的主目录
    cd .. # 返回上一级目录
  • pwd:打印当前工作目录

    1
    pwd    # 显示当前所在的目录路径
  • mkdir:创建新目录

    1
    mkdir new_folder     # 创建一个名为 new_folder 的目录
  • rmdir:删除空目录

    1
    rmdir empty_folder   # 删除一个空目录
  • rm:删除文件或目录

    1
    2
    3
    rm file.txt             # 删除文件
    rm -r folder # 递归删除目录及其所有内容
    rm -rf folder # 强制删除目录及其内容,不提示确认
  • cp:复制文件或目录

    1
    2
    cp file.txt /path/to/destination         # 复制文件
    cp -r folder /path/to/destination # 递归复制目录及其内容
  • mv:移动或重命名文件/目录

    1
    2
    mv file.txt /path/to/destination    # 移动文件到目标目录
    mv oldname.txt newname.txt # 重命名文件
  • touch:创建空文件或更新文件时间戳

    1
    touch newfile.txt      # 创建一个名为 newfile.txt 的空文件

2. 文件查看

  • cat:查看文件内容

    1
    cat file.txt    # 显示文件的内容
  • less:分页查看文件内容

    1
    less file.txt   # 分页查看文件内容,按 `q` 退出
  • head:查看文件的开头几行

    1
    2
    head file.txt    # 显示文件的前10行
    head -n 20 file.txt # 显示文件的前20行
  • tail:查看文件的结尾几行

    1
    2
    tail file.txt    # 显示文件的最后10行
    tail -n 20 file.txt # 显示文件的最后20行
  • grep:搜索文件中的文本

    1
    2
    grep 'search_text' file.txt    # 在文件中查找包含 'search_text' 的行
    grep -r 'search_text' /path # 递归搜索目录中的文件

3. 系统信息和管理

  • tophtop:查看系统运行的进程和资源使用情况

    1
    2
    top     # 实时显示系统进程信息
    htop # 功能更强大的 `top` 替代(需要单独安装)
  • ps:显示当前运行的进程

    1
    2
    ps      # 显示当前终端的进程
    ps aux # 显示所有用户的所有进程
  • kill:终止进程

    1
    2
    kill <process_id>       # 终止指定进程ID的进程
    kill -9 <process_id> # 强制终止进程
  • df:显示磁盘空间使用情况

    1
    df -h    # 以人类可读的方式显示磁盘使用情况
  • du:查看文件或目录的磁盘使用量

    1
    2
    du -h folder      # 显示目录的大小
    du -sh folder # 显示目录的总大小

4. 文件权限

  • chmod:修改文件权限

    1
    2
    chmod 755 file.txt    # 设置文件权限为 755(rwxr-xr-x)
    chmod u+x file.txt # 给文件所有者添加执行权限
  • chown:更改文件所有者

    1
    sudo chown user:usergroup file.txt   # 更改文件所有者和所属用户组

5. 网络操作

  • ping:测试与某个地址的网络连接

    1
    ping google.com    # 测试与 google.com 的连接
  • wget:下载文件

    1
    wget http://example.com/file.zip    # 从指定 URL 下载文件
  • curl:从 URL 获取数据

    1
    2
    curl http://example.com      # 从指定 URL 获取数据
    curl -O http://example.com/file.zip # 下载文件

6. 压缩和解压缩

  • tar:打包与解压 tar 文件

    1
    2
    3
    4
    tar -cvf archive.tar folder/    # 将目录打包成 .tar 文件
    tar -xvf archive.tar # 解压 .tar 文件
    tar -czvf archive.tar.gz folder/ # 创建 gzip 压缩包
    tar -xzvf archive.tar.gz # 解压 gzip 压缩包
  • zip / unzip:压缩和解压 zip 文件

    1
    2
    zip archive.zip file1 file2    # 压缩多个文件为 zip 包
    unzip archive.zip # 解压 zip 文件

7. 权限提升

  • sudo:以超级用户权限执行命令

    1
    2
    sudo command    # 以超级用户权限执行某个命令
    sudo su # 切换到超级用户模式

8. 搜索和查找

  • find:查找文件或目录

    1
    find /path -name filename    # 查找目录中名为 filename 的文件
  • locate:快速查找文件

    1
    locate filename    # 查找文件路径(需要先安装 `mlocate` 并更新数据库:`sudo updatedb`)

9. 系统更新

  • apt:用于 Ubuntu 等基于 Debian 的发行版

    1
    2
    3
    4
    sudo apt update        # 更新软件包列表
    sudo apt upgrade # 升级已安装的软件包
    sudo apt install <package> # 安装指定软件包
    sudo apt remove <package> # 卸载指定软件包

10. 移动windows上的项目至WSL

1
mv /mnt/c/Users/86184/Downloads/xxx.tar.gz  /home/bio_kang/software/  #移动

Linux部署Python项目

在Linux环境下,用conda管理python环境是较优选择。

1.安装 Miniconda 或 Anaconda

下载 Miniconda 安装脚本:

1
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

运行安装脚本:

1
bash Miniconda3-latest-Linux-x86_64.sh

按照提示完成安装。

重新加载 .bashrc 以使 conda 命令生效:

1
source ~/.bashrc

验证 conda 是否安装成功:

1
conda --version

2.创建虚拟环境

创建一个新的虚拟环境:

1
conda create --name myenv python=3.8

在这里,myenv 是虚拟环境的名称,python=3.8 是你想使用的 Python 版本(可以根据需要选择其他版本)。

激活虚拟环境:

1
conda activate myenv

激活后,你的终端前面应该会显示 (myenv),表示当前正在该虚拟环境下工作。

安装依赖包:

1
conda install numpy pandas

3.常用操作

要查看当前系统中的所有 conda 虚拟环境,可以使用以下命令:

1
conda env list

如果你不再需要某个虚拟环境,可以将其删除:

1
conda remove --name myenv --all

当你完成工作时,可以通过以下命令退出虚拟环境:

1
conda deactivate

7. 更新和管理环境

  1. 更新 conda 自身:

    1
    conda update conda
  2. 更新环境中的所有包:

    1
    conda update --all

8. 导出和导入环境

导出环境可以用于分享或者在另一台机器上重现该环境。

  1. 导出当前环境:

    1
    conda env export > environment.yml
  2. 使用 yml 文件创建环境:

    1
    conda env create -f environment.yml