提醒

您正在访问搜索引擎投递页面,强烈建议您:回到主站 查看原文 - WSL Ubuntu

memo 编辑 最后修改时间 2023/07/26 18:18

WSL-Linux子系统

win10环境下安装Linux子系统
适用于 Windows 的 Linux 子系统(英语:Windows Subsystem for Linux,简称 WSL )是一个为在 Windows 10 和 Windows Server 2019 上能够原生运行 Linux 二进制可执行文件(ELF 格式)的兼容层.

提醒

Centos 方案请移步 WSL CentOS

安装

打开 Windows 10 应用商店 > 搜索 Linux > 选择 Ubuntu > 安装

WSL

安装完毕后需要启用WSL功能,否则启动会提示失败

#用管理员模式打开 PowerShell,执行命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

重启系统,进入Ubuntu,初次登录会初始化系统
切换默认登录用户, 在此目录下执行命令

PS C:\Windows\System32 Ubuntu config --default-user root
#完毕

配置中文显示

安装中文基础语言包

sudo apt install language-pack-zh-hans

开启中文locale支持,用vim打开locale.gen文件

sudo vim /etc/locale.gen

# 找到# zh_CN.UTF-8 UTF-8,将前面的#和空格删掉,按ESC,输入命令 :wq 保存退出
492 # zh_CN.GBK GBK
493 zh_CN.UTF-8 UTF-8       -- 这行
494 # zh_HK BIG5-HKSCS
495 # zh_HK.UTF-8 UTF-8
...

# 执行下面命令使其生效
sudo locale-gen

修改默认locale为中文

sudo vim /etc/default/locale
# 内容修改为LANG=zh_CN.utf8,保存退出

让vim支持中文

sudo vim /etc/vim/vimrc
# 在最后加入
set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set encoding=prc
# 保存退出 重启一下wsl,vim就可以正确显示中文了。

汉化man手册

# 安装中文手册页(man命令)
sudo apt install manpages-zh
# 安装完成后使用man命令或者--help参数就可以显示汉语帮助了。

问题

WSL Ubuntu nginx访永远等待php问题

#此配置适用于Ubuntu WSL
#请添加此配置: fastcgi_buffering off;
示例: 
//--------------------------------  begin
location ~ \.php$ {
        proxy_set_header X-Forwarded-Proto $scheme;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_buffering off; # This must be here for WSL as of 11/28/2018
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PHP_VALUE "upload_max_filesize = 20M \n post_max_size=21M";
        include /etc/nginx/fastcgi.conf;
}
//--------------------------------  end

一段shell脚本,放到Ubuntu上报错误: /bin/sh: 1: Syntax error: "(" unexpected

一段shell脚本,放到Ubuntu上报下面这个错误
/bin/sh: 1: Syntax error: "(" unexpected
 
原因:
兼容性问题,因为linux将sh默认指向了dash,而不是bash
 
解决:
#执行下面命令, 选择 <No>
dpkg-reconfigure dash
Removing 'diversion of /bin/sh to /bin/sh.distrib by dash'
Adding 'diversion of /bin/sh to /bin/sh.distrib by bash'
Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash'
Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by bash'
2 条评论
未登录用户
支持 Markdown 语法
@sxin0
sxin0发表于将近 2 年前

six six six

@acane77
acane77发表于超过 1 年前

打卡