1. 前言
有几十个文件需要批量重命名,按照以前的做法,郝同学都是把文件上传到linux服务器,然后使用rename
命令进行重命名,然后再拷贝回来。具体参考《批量重命名和批量替换字符串》。
但是,这次需要重命名的文件太大了,上传不方便,所以想到了另外一个思路:在Win10中使用Linux命令。要使用Linux命令,最简单的是使用git bash,但是只有ls、vim等简单命令。cygwin也可以模拟Linux环境,但是命令也有限。记得微软说Win10集成了Linux,所以决定试试,下面进行记录。
参考文档:
2. 安装Ubuntu
1、Win+S,打开搜索,输入“启用或关闭Windows功能”。
2、勾选“适用于 Linux 的 Windows 子系统”,点击确定,然后重启电脑。
3、Shift+右键,打开Powershell,输入bash
,会提示访问Microsoft Store安装Linux。
4、访问Microsoft Store,选择Ubuntu,点击进行安装。
5、安装完成后,在Powershell中再次输入bash
,即可进入ubuntu的shell,第一次进入会提示设置用户名和密码,这里设置用户名为voidking。
至此,ubuntu on windows就安装完成了。使用方法和正常的ubuntu一模一样,nice。当然也有不同的地方,比如c盘对应的目录为/mnt/c/
,d盘对应的目录为/mnt/d/
。
3. 配置SSH
从Powershell进入bash,很难用,比如无法复制粘贴。所以,我们需要配置SSH,以便使用xshell访问。
1、切换root用户并设置密码
1 | sudo -i |
2、安装ssh服务apt-get install openssh-server
3、vim /etc/ssh/sshd_config
,如下修改:
1 | # line 13, uncomment and change |
4、重启sshservice ssh restart
如果报错:
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
处理方法为:
1 | ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key |
5、ubuntu中本地测试ssh voidking@localhost -p 3422
6、windows中xshell连接
新建会话,主机填写127.0.0.1
,端口填写3422
,用户名密码是之前安装ubuntu时设置的。
4. 开机自启动SSH
重启计算机后,发现无法通过ssh连接ubuntu,原来是因为ubuntu on windows默认不会开机自启动ssh服务。所以需要把ssh服务添加到开启自启动。
直接使用systemctl enable ssh
命令,无效,所以需要把ssh服务添加到开机自启动脚本,参考ubuntu18.04配置rc.local。
1、创建rc-local.service链接ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
2、vim /etc/systemd/system/rc-local.service
,添加:
1 | [Install] |
3、创建rc.localvim /etc/rc.local
,添加:
1 | #!/bin/bash |
4、添加执行权限chmod 755 /etc/rc.local
5、重启ubuntu
无法使用reboot
等命令重启ubuntu on windows,所以需要重启win10。
然而,重启后依然无效!看来是ubuntu on windows与纯净的ubuntu还是有些差别,参考在Windows子系统(WSL)中配置开机自启动服务进行处理。
1、win10中进入启动目录
Win+R输入shell:startup
,回车
2、创建wls_rclocal.vbs,内容为:
1 | set ws=wscript.createobject("wscript.shell") |
3、登录ubuntu,创建sudoers文件vim /etc/sudoers.d/rc-local
,内容如下:
1 | voidking * = (root) NOPASSWD: /etc/rc.local |
4、重启win10,使用xshell登录ubuntu,成功。
5. 后记
最终的效果,比预想的还要好。两个系统可以同时使用,这样就集成了windows和linux两者的优点,完美。