打造windows系统(WSL)完全开发环境系列(第二篇 开发环境基础系统配置)

                                                 第二篇 开发环境基础系统配置

本系列分享在 Windows 10 中打造一个 图形界面与命令行完全结合的开发环境。

接 第一篇 WSL安装,第二篇 开发环境基础系统配置。

本例内容目标:

1 vim 编辑文件时光标字符是 p

2 sshd 服务开启

3 Ubuntu 包管理源替换为阿里,系统更新。

4 系统环境基础配置

5 nodeJS 基础开发环境部署

本例所有命令行默认为 WSL 的命令行,非 Windows 的 CMD 中。

1 vim 编辑文件时光标所在字符是 p

这个原因是Linux终端类型不同导致的。什么是 Linux终端啦?请 google 或 百度不难理解。

解决它需要设置一个系统环境变量,编辑 ~/.bashrc 文件(用户登录终端会自动执行此脚本文件)。

 vim ~/.bashrc 

本例推荐在文件末尾添加如下代码 。

export TERM=rxvt
[ -n "${SSH_TTY}" ] && export TERM=linux

第一行: 配置终端类型为 rxvt 。

第二行: 条件变量 ${SSH_TTY} 为非空字符串时,改设置终端类型为linux,为 ssh 登录配置终端类型。

再用 vim 编辑文件时,光标所在字符不是 p 了。

验证设置是否生效: 关闭WSL 命令行,重新打开输入命令验证。

echo $TERM

2 sshd 服务开启

WSL子系统默认 sshd 不能直接启动的,处于安全考虑吧。Linux 系统没有 ssh 当然很不方便,命令行er 都知道。

要求:sshd 服务配置,必须保证安全,也同时保证 ssh 方便。本例使用常见的秘钥对。

1 编辑   /etc/ssh/sshd_config 文件

vim /etc/ssh/sshd_config

修改配置如下:

主要是为了使用ssh-key安全的远程登录Linux ,禁止使用密码远程登录。

Port 2200                   # 修改默认监听端口
ListenAddress 0.0.0.0       # 监听本机所有IP地址
PermitRootLogin yes         # 允许 root 远程登录
PasswordAuthentication yes  # 禁止通过密码验证远程登录
UseDNS no                   # 禁止主机DNS解析,加快登录。

2 生成登录的秘钥对

1 执行命令 ssh-keygen ,一直回车即可。

ssh-keygen

自动在 ~/.ssh/ 目录生成两个文件 id_rsa(私钥)  id_rsa.pub(公钥)

2 将公钥加入认证文件 authorized_keys 中。

cd ~/.ssh/     # 进入目录 ~/.ssh/
cat id_rsa.pub >> authorized_keys     # 追加 id_rsa.pub 的内容到 authorized_keys
chmod 600 authorized_keys             # 修改文件访问权限为 600,只 root 用户能读取

3 生成 sshd 服务所需要的密钥(默认没有密钥 sshd 不能启动)

dpkg-reconfigure openssh-server

启动 sshd 服务

/etc/init.d/ssh restart

 

打开 windows CMD 命令行查看监听端口 2200

netstat -ay

4 验证 ssh key 登陆,我们设置了监听端口为 2200 -p 指定下。

ssh -p 2200 127.0.0.1

第一次登陆需要输入 yes,然后不需要输入密码成功登陆。 

Last login: Tue Sep 10 10:05:00 2019 from 192.168.0.43,本机内网 IP 192.168.0.43

Ctrl + d 退出登陆 再测试用  192.168.0.43 登陆

ssh -p 2200 192.168.0.43

Last login: Tue Sep 10 10:43:14 2019 from 127.0.0.1 这次是从 127.0.0.1 登陆

笔者习惯 SecureCRT 远程登陆,同时验证前面设置终端类型的代码也生效了。

至此 sshd 服务与 ssh 秘钥对 登陆设置完成。

笔者建议:

   大家看到这里,多半想到可以方便的在家 ssh 远程登录办公了(公司路由做端口映射),笔者不推荐,WSL 不是完备的系统可能有未知BUG,iptables 也是不能用的。

推荐在家远程办公使用 OpenVPN 服务,非常的安全,稳定,可靠。(大家感兴趣可以留言,我找时间分享,关键要实现网络唤醒已经关闭的办公主机,很多公司不关机被罚款的),前提肯定是公司要有固定IP才方便远程办公。

3 Ubuntu 包管理源替换为阿里源

编辑文件  /etc/apt/sources.list ,内容全部替换掉。

vim /etc/apt/sources.list

ubuntu 18.04  配置如下 

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

我们来验证下,更新源。

apt -y update

源替换成功,我们再验证更新系统,更新了一大堆包。

apt -y upgrade

至此源替换与系统更新完成。

4 系统环境基础配置

要方便使用 WSL 的 bash 环境,我们设置一些常用的别名和必要的系统服务自启动。

不推荐将 sshd 服务弄到 windows 的服务里开机自启动。

需要时我们手动启动 WSL 命令行时自动启动 sshd 服务。 

vim ~/.bashrc

文件末尾追加代码 ,判断 sshd 服务启动进程不等于 2 就重启SSHD服务,简单粗暴却有效。

if [ $(ps -ef|grep -c '/usr/sbin/sshd') != 2 ];then
    /etc/init.d/ssh restart
fi

常用命令都用别名配置,以笔者常用命令为例,极大提高效率。

alias vimv='vim /etc/nginx/conf.d/js.conf'
alias cdt='cd /mnt/d/js/'
alias nrs='npm run serve'
alias ns='npm start'
alias nrd='npm run dev'

source ~/.bashrc  生效

命令输入 nrd 就等同于 npm run dev。这个别名较简单,大家自由发挥。

5 nodeks 基础开发环境部署

nodejs 前端同学开发的需求,但对Linux操作系统基本都不熟悉。

笔者也在折腾 nodejs 优先分享它的开发环境部署吧。

我们的 WSL 开发环境 推荐下载 Linux 二进制文件 (x64) 

curl -Os https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz

下载后的文件长这样 `node-v${版本号}-linux-x64.tar.xz`, 解压到 /usr/local/ Linux 用户软件安装目录。

tar xf node-v10.16.0-linux-x64.tar.xz -C /usr/local/
cd /usr/local/
ln -s node-v10.16.0-linux-x64/ node      # 做个软连接方便做系统环境变量,将来替换软连接变更版本

设置 nodejs 的系统环境变量

vim ~/.bashrc

文本末尾添加

export PATH=/usr/local/node/bin:${PATH}

让设置生效

source ~/.bashrc

验证

node -v

第二篇完结。

WSL与 JetBrains系 编辑器,sublime_text3 编辑器的结合放在 《第三篇 WSL与编辑器的结合 》中分享。

有问题请留言,喜欢请转载带上出处。谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值