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

文章介绍了如何在WindowsSubsystemforLinux(WSL)中设置别名wcd,以简化从Linux环境进入Windows目录的操作,同时通过创建vbs脚本实现了WSL中ssh服务的自启动,提高了开发和管理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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文件,并在其中输入以下

### 如何在 WSL2 中配置并启动 SSH 服务 #### 安装 OpenSSH Server 为了在 WSL2 的 Ubuntu 环境中启用 SSH 服务,首先需要确认系统已安装 `openssh-server` 软件包。如果没有安装,则可以通过以下命令完成安装: ```bash sudo apt-get update && sudo apt-get install openssh-server -y ``` 此命令会新软件源列表并安装 OpenSSH 服务器[^2]。 --- #### 修改 SSH 配置文件 默认情况下,OpenSSH 使用 `/etc/ssh/sshd_config` 文件作为其主要配置文件。建议根据需求调整该文件中的设置。例如: - **允许 Root 登录**:如果希望使用 root 用户登录,请将 `PermitRootLogin` 设置为 `yes` 或 `prohibit-password`(推荐后者以增强安全性)。 - **禁用密码认证**:出于安全考虑,可关闭基于密码的身份验证并将 `PasswordAuthentication` 设为 `no`,转而依赖密钥认证。 编辑配置文件的命令如下: ```bash sudo nano /etc/ssh/sshd_config ``` 保存改后重启 SSH 服务以应用新配置: ```bash sudo service ssh restart ``` --- #### 启动与管理 SSH 服务 一旦安装完毕,可通过以下方式控制 SSH 服务的状态: - **启动 SSH 服务** ```bash sudo service ssh start ``` - **停止 SSH 服务** ```bash sudo service ssh stop ``` - **查看状态** ```bash sudo service ssh status ``` 注意,在每次重新启动 WindowsWSL2 实例时,默认不会自动启动 SSH 服务。因此需额外配置自启功能[^3]。 --- #### 配置 SSH 自启动 为了让 SSH 服务随 WSL2 启动而运行,可以创建一个脚本用于初始化环境。以下是具体步骤: 1. **创建 init 脚本** 在终端中执行以下命令来新建 `/etc/init.wsl` 文件,并写入必要的启动逻辑: ```bash echo '#!/bin/sh' | sudo tee /etc/init.wsl echo '/etc/init.d/ssh $1' | sudo tee -a /etc/init.wsl ``` 2. **赋予脚本执行权限** 执行以下命令使上述脚本具有可执行属性: ```bash sudo chmod +x /etc/init.wsl ``` 3. **测试自启动效果** 关闭当前 WSL2 并重新打开它,随后检查 SSH 是否正常工作: ```bash ps aux | grep sshd ``` 如果有任何异常情况发生,可能需要进一步排查日志或修复错误。 --- #### 测试远程连接 当本地 SSH 服务成功部署之后,可以从其他客户端尝试建立连接。假设目标机器 IP 地址为 `localhost`,端口号保持默认值 (即 22),则完整的指令形式应类似于这样: ```bash ssh username@localhost -p 22 ``` 当然也可以替换实际使用的域名或者动态分配地址以及指定不同的监听端口[^1]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

创意程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值