WSL 是 Windows Subsystem for Linux 的简称, 可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生虚拟机开销。

0 重要命令

vim 使用简单教程链接

  1. 全选(高亮显示):按esc后,然后ggvG或者ggVG
  2. 全部复制:按esc后,然后ggyG
  3. 全部删除:按esc后,然后dG

vim保存退出 冒号+wq 不保存退出q!
WSL系统更换国内源+DNS设置 (Failed to fetch)

  1. 第一步:打开/etc/resolv.conf
  2. sudo vi /etc/resolv.conf
  3. 这时可以看到有一个nameserver xxx
  4. 我的是nameserver 127.0.0.53
  5. 第二步:更改dns
  6. nameserver 8.8.8.8
  7. nameserver 8.8.4.4
  8. 第三步:
  9. sudo apt-get update

切换用户su - lan; 切换rootsudo -i

Xshell完美连接WSL

1 常用命令

win + R 运行 \\wsl$ 打开 WSL文件目录
wsl --shutdown 立即终止所有正在运行的发行版和 WSL 2 轻量级实用工具虚拟机。 在需要重启 WSL 2 虚拟机环境的情形下,例如更改内存使用限制或更改 .wslconfig 文件,可能必须使用此命令。
wsl --help 查看 WSL 中可用的选项和命令列表。
<DistributionName> config --default-user <Username> 更改发行版的默认用户。

  • 例如:ubuntu config —default-user johndoe 会将 Ubuntu 发行版的默认用户更改为“johndoe”。
  • 如果在确定发行版名称时遇到问题,请使用命令 wsl -l

wsl ~在用户的主目录中启动WSL。
cd ~ 在 WSL 命令提示符中从任何目录跳回到主目录。
wsl --list --verbose 列出已经安装的WSL
wsl --unregister Ubuntu 卸载指定的wsl
wsl --distribution <Distribution Name> --user <User Name> 运行特点版本WSL。

2 WSL 基本命令

许多命令在 Windows 和 Linux 之间都具有互操作性。 下面有几个示例:

  • 从 Windows 命令行运行 Linux 工具:打开 PowerShell,通过输入以下内容使用 Linux ls -la 命令显示 C:\temp> 的目录内容:wsl ls -la
  • 混合 Linux 和 Windows 命令:在此示例中,使用 Linux 命令 ls -la 列出目录中的文件,然后使用 PowerShell 命令 findstr 筛选包含“git”的单词的结果:wsl ls -la | findstr “git”。 这还可以通过混合使用 Windows dir 命令和 Linux grep 命令来实现:dir | wsl grep git。
  • 直接从 WSL 命令行运行 Windows 工具.exe。例如,若要打开 .bashrc 文件(启动 Linux 命令行时运行的 shell 脚本),请输入:notepad.exe .bashrc
  • 使用 Linux Grep 工具运行 Windows ipconfig.exe 工具:ipconfig.exe | grep IPv4 | cut -d: -f2。此示例演示了 Windows 文件系统上的 ipconfig 工具,该工具用于显示当前 TCP/IP 网络配置值,然后通过 Linux 工具 grep 被筛选为仅 IPv4 结果。

    1 安装WSL 参考

    2.卸载WSL

    2 配置开发环境 参考

    5.服务自启动配置

    由于 WSL 并没有 Linux 内核的支持,仅在用户层实现了系统调用的翻译。因此诸如 systemd、cgroup 是无法工作的。 只能使用 start-stop-daemon 或其他进程守护工具实现服务管理

  • 编辑 vim /etc/init.wsl 文件添加如下内容

    1. #! /bin/sh
    2. # Filename: /etc/init.wsl
    3. service nginx start
  • 开始 -> 运行 中输入 regedit 回车打开注册表编辑器

定位到 计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 后新建一个 REG_SZ 类型的值,名称随意,数值数据填写以下内容
mshta vbscript:CreateObject(“WScript.Shell”).Run(“wsl -d Ubuntu-20.04 -u root bash /etc/init.wsl”,0,TRUE)(window.close)
以后就可以向 /etc/init.wsl 追加服务,实现开启自启动了。

配置开发环境

Linux 环境搞好,下面就开始根据自己需要配置相应的开发环境

1.PHP Nignx MySQL 环境搭建

得益于 Wordpress 等平台的流行,PHP 仍是目前使用广泛 Web 开发语言,LNMP 环境

  1. sudo apt-get install -y nginx php-fpm php-mysql php-curl mysql-server
  2. # 开放端口
  3. sudo sed -i 's/bind-address/#bind-address/' /etc/mysql/mysql.conf.d/mysqld.cnf
  4. # 启动 MySQL
  5. service mysql start
  6. # 启动 fpm
  7. service php-fpm start
  8. # 启动 nginx
  9. service nginx start
  • 解决 nginx 超时的问题

在 /etc/nginx/nginx.conf 中的 http block 中加入
**fastcgi_buffering** off;
配置添加如下内容

  1. server {
  2. listen 80;
  3. server_name domain.com;
  4. location ~ \.php$ {
  5. include snippets/fastcgi-php.conf;
  6. # 设置监听端口
  7. fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  8. }
  9. # 用于伪静态
  10. if (!-e $request_filename) {
  11. rewrite ^/(.*) /index.php?r=$1 last;
  12. }
  13. }
  • 配置 MySQL 密码

运行 sudo mysql -u root 进入命令行模式。

  1. -- 重设密码
  2. UPDATE mysql.user SET host = '%', authentication_string = PASSWORD('123456') WHERE user = 'root';
  3. FLUSH privileges;
  4. -- 用户创建与授权
  5. CREATE USER 'username'@'%' IDENTIFIED BY 'password';
  6. CREATE DATABASE `database` CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';

Composer 是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。

  1. # 安装 Composer
  2. php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
  3. sudo php composer-setup.php --install-dir=/usr/bin --filename=composer
  4. php -r "unlink('composer-setup.php');"
  5. # 配置 国内镜像
  6. composer config -g repo.packagist composer https://packagist.phpcomposer.com
  • PHP 扩展安装

除了 apt 中自带的 PHP 扩展,很多扩展需要通过 pecl 命令安装。 这里通过配置 php_ini 实现 php.ini 的自动配置。

  1. sudo apt install -y php-pear php-dev
  2. sudo touch /etc/php/7.4/mods-available/pear.ini
  3. sudo ln -s /etc/php/7.4/mods-available/pear.ini /etc/php/7.4/fpm/conf.d/20-pear.ini
  4. sudo ln -s /etc/php/7.4/mods-available/pear.ini /etc/php/7.4/cli/conf.d/20-pear.ini
  5. sudo pear config-set php_ini /etc/php/7.4/mods-available/pear.ini
  6. pecl install yaf

Linux 安装GCC/G++

参考
默认的 Ubuntu 软件源包含了一个软件包组,名称为 “build-essential”,它包含了 GNU 编辑器集合,GNU 调试器,和其他编译软件所必需的开发库和工具。
想要安装开发工具软件包,以 拥有 sudo 权限用户身份或者 root 身份运行下面的命令:
sudo apt update
sudo apt install build-essential
这个命令将会安装一系列软件包,包括gcc,g++,和make
MPI 安装