让WSL使用更方便:快速进入Windows目录、自动开启SSH

WSL能够在Windows操作系统上提供原生Linux环境,方便用户进行开发和测试。为了在WSL中更方便地进入Windows目录,我们可以使用一个有趣的技巧——设置别名wcd,将其作为在WSL中进入Windows目录的目录切换命令。使用wcd命令时,只需要在其后面加上Windows路径,就可以快速进入对应的目录。请注意,Windows路径需要使用双引号或单引号括起来。

为了实现wcd别名的功能,我们需要使用towslpath.sh脚本将Windows路径转换成WSL路径,并且为该脚本赋予可执行权限。具体实现过程如下:

alias wcd='wcd(){ p=$(/usr/local/bin/towslpath.sh "$1");cd "$p";}; wcd'

这里将wcd命令设置为调用一个函数wcd,其中p变量用于存储转换后的WSL路径。towslpath.sh脚本将Windows路径转换成WSL路径,并将其存储在p变量中。最后,使用cd命令进入该目录。

towslpath.sh脚本的具体实现如下:

echo '/mnt/'${1,}|sed 's/:*\\/\//g'

这里先使用echo将路径中的首字母C\D等转小写,并且在前面拼接"/mnt/",然后使用sed正则表达式替换,将Windows路径中的":\"和"\"替换成"/",其中"\"和"/"都通过反斜杠转义。

使用上述技巧,我们可以更加便捷地在WSL中进入Windows目录,提高工作效率和便利性。为什么不直接在towslpath.sh中进入目标目录?这个问题留给大家思考。

在WSL中启用ssh服务让我们可以使用自己喜欢的ssh客户端连接到WSL进行操作,但是默认情况下,WSL中的ssh服务是未启用的。可以通过在Windows系统中添加一个vbs脚本实现WSL中ssh服务的自启动。以安装的Linux发行版Ubuntu为例,具体步骤如下:

  1. 创建sshstart.bat文件,并在其中输入以下内容:

    ubuntu -c "service ssh start"

    这个命令在ubuntu中启动ssh服务。

  2. 在Windows系统的启动目录中添加vbs脚本,将以下内容添加到vbs脚本中:

    CreateObject("Wscript.Shell").run "D:\wsl\sshstart.bat",0

    这个命令将在Windows启动时自动运行sshstart.bat文件。

关于在WSL中自动启动ssh服务,这只是其中一个方法。相对于修改子系统中sshd服务的方式,这个操作简单且可复用,不管是重装系统,还是使用多个子系统。

 

 

 

你可能感兴趣的:(Shell,linux,ubuntu)