菜鸟公园
  • 编程技能
    • PHP
    • CPP
    • Golang
    • MySQL
    • 工具分享
  • 英语学习
  • 信文随笔
  • 关于本站
sign in/up

标签归档:terminal

2020-11-11 作者:菜鸟DJ 0
工具分享, 编程技能

如何在Windows中体验极致的Linux开发环境

1. 背景

相当长的一段时间,我的工作平台都是MAC,清爽干净的界面,没有广告烦扰,方便的快捷键,好用的触摸板等等。但是换了工作之后,公司配备的是一台Windows台式机,虽然可以带自己的笔记本工作,但是总有些不便。于是一直在折腾Windows下的Linux开发环境。

之前一直是用 vm 搭建,也没有觉得不方便的地方。但是最近一直被安利 wsl2 。于是就安装试用了一番。发现在我的开发环境下完全可以抛弃 vm 了。那么对比 vm 有哪些优势劣势呢。

优势

  • 不用每次点击启动vm,然后点开机或者恢复。直接在终端中选择打开。
  • 不用配置网络,实际上wsl2 你也没有机会配置。wsl2深度融合Windows环境,在wsl启动的服务,在Windows 可以直接 localhost:port 访问
  • 挂载了本地磁盘,虽然vm也可以共享,但是没有这个方便。

劣势

  • 只有Ubuntu可以选择
  • 没有systemd,需要自己些reload脚本
  • 启用hyper v之后,影响vm和模拟器运行

2. 安装WSL2

  1. 从启用或关闭 Windows 功能里勾选适用于 Linux 的 Windows 子系统和虚拟机平台,重启电脑
  2. 以管理员身份启动 powershell ,输入下面指令

    wsl --set-default-version 2

  3. 如果提示要升级内核,按照提示走
  4. 从 Microsoft Store 下载最新 Linux 分发版, 下载完后点击启动,安装
  5. [ 可选 ] 换源,使用阿里Ubuntu镜像。 换完之后执行sudo apt update
  6. [ 可选 ] 从 Microsoft Store 安装 Windows Terminal

3. 搭建开发环境

nginx,php,fpm,mariadb,redis,golang,openssh 等软件均可以通过 apt install 来安装。
通过 service xxx start|restart|stop 来控制状态

  • 特别说明
    mariadb安装完后需要配置root账号密码,参考文章
# 第一次设置密码
sudo mysql_secure_installation

# 控制台登录, 如果有报错,记得使用sudo
sudo mysql -u root -p

# 修改mysqld 绑定IP
sudo vim /etc/mysql/my.cnf
# 注释下面的语句
bind-address  = 127.0.0.1

# php连mysql需要安装扩展
sudo apt install php-mysql

# fastcgi listen字段,需要跟nginx.conf 对应
sudo vim /etc/php/7.4/fpm/pool.d/www.conf
  • Ubuntu20.04 apt install 的服务配置文件目录整理
服务 默认路径 默认配置文件名
nginx /etc/nginx/nginx.conf nginx.conf
maraiadb /etc/mysql/mariadb.conf.d/50-server.cnf my.conf
redis /etc/redis/redis.conf redis.conf
php-fpm /etc/php/7.4/fpm/php-fpm.conf
/etc/php/7.4/fpm/pool.d/www.conf
php-fpm.conf
php /etc/php/7.4/cli/php.ini php.ini
sshd /etc/ssh/ssh_config ssh_config

4. 总结唠嗑

关于wsl2的使用说明,建议阅读官方文档
在 windows 宿主机使用 localhost 就能登录wsl2,不要被国内博客误导!!! 前提是重新安装 openssh 服务。

最后两个安装步骤虽然是可选,但是强烈建议做完,能很大程度的提升使用体验。
换源的好处自然是加快包安装速度
使用 windows Terminal 时让我有点在 MAC 下工作的感觉。总结下有几点:
– 支持多标签页
– 能快捷进入wsl,下拉菜单中点选进入
– 界面重新设计,很清爽,有 Linux 终端的味道,离 MAC 还差点
– 支持 Ctrl C 复制,Ctrl V 粘贴,我很喜欢这个设定。并且 Ctrl C原本的中断功能不受影响

wsl 不支持 systemd ,所以不用折腾开机启动了。需要的服务建议通过 sudo service 服务启动,或者写一个 shell 脚本。

wsl把 windows 磁盘挂载在 /mnt/ 目录下,可以对该目录下文件进行读写操作。

配合 VS CODE 敲代码,只需要安装一个Remote - WSL插件。在 远程资源管理器里选择 WSL Targets 一键连接。 本地开发,即在服务器上开发。NICE

测试过 php 项目 和 golang 的 web 项目,目前没有发现任何功能上的问题。

5. 目前遇到的?坑?

由于我装 ohmyzsh 了,它在git的目录会有额外的操作,所以进入到挂载在 /mnt/ 下面的目录时,会有一段时间读取过程,耗时较长。不用 ohmyzsh 不会有问题。

linux macos terminal ubuntu vm windows wsl

1/1

天气

分类目录

热门文章

记一次和流氓软件战斗的过程0 comments
手机app https抓包步骤一揽0 comments
记一下RabblitMQ的安装和RPC的工作模式0 comments
聊一聊快排算法0 comments
MAC & WIN 平台效率工具清单0 comments
你真的会用MySQL里的max函数吗?0 comments
MySQL 分组之后如何取Top(N)?0 comments
B站代码解读 — LRUCache0 comments
解搜索二维矩阵题0 comments
解一道字符串变化题0 comments

微信公众号:菜鸟公园

微信公众号
微信公众号:菜鸟公园
隐私政策