Fre*_*sia 2 linux bash ubuntu conemu windows-subsystem-for-linux
我已经在 Windows 10 上安装了 WSL2,并成功下载并设置了 Ubuntu。
我已经安装并设置了 ConEmu 终端以成功运行 Ubuntu。
但是ConEmu在C:\Users\MyUsers中打开Ubuntu
我想在 Linux (Ubuntu) Home\MyUsers\MyProjectFolder 目录中启动
我尝试在 ConEmu - 设置 - 任务 - 6- Bash(或 7- Ubuntu)中使用这些命令,但没有一个起作用:
%windir%\system32\wsl.exe -cur_console:pm:/mnt --distribution Ubuntu -c "cd"
%windir%\system32\wsl.exe -cur_console:p -c "cd"
%windir%\system32\wsl.exe -cur_console:p -c "cd /home"
%windir%\system32\wsl.exe -cur_console:pm:/mnt --distribution Ubuntu -c "~"
set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -cur_console:pm:/mnt -C "~"
wsl.exe -cur_console:pm:/mnt -C "~"
Run Code Online (Sandbox Code Playgroud)
使用以下任一方法设置 ConEmu 任务:
%windir%\system32\wsl.exe -cur_console:pm:/mnt --cd \\wsl$\Ubuntu\home\MyUser\MyProjectFolder-new_console:d:\\wsl$\Ubuntu\home\MyUser\MyProjectFolder %windir%\system32\wsl.exe -cur_console:pm:/mnt为了完整起见,我将重复之前为初学者删除的答案中的信息。即使它没有直接回答您的(更新的)问题,这里作为参考仍然很好。
有多种技术可用于指定 WSL 实例的起始目录:
wsl ~快捷方式直接启动到 WSL 用户的主目录。wsl --cd <WindowsDirectory>。请注意,这采用 Windows 样式的目录路径,而不是 Linux 路径。例如,wsl --cd C:\。要使用 WSL 实例内部的路径,您可以使用 Windows 的\\wsl$\<distroname>\path. 所以你/home/myuser/myproject会变成wsl --cd \\wsl$\Ubuntu\home\myuser\myproject(假设你的发行版/实例名称是“Ubuntu”)。PS> Set-Location C:\ # a.k.a. "cd C:\"
PS> wsl
/mnt/c$ # Now inside WSL shell
Run Code Online (Sandbox Code Playgroud)
ConEmu 显然使用 Windows%userprofile%作为新任务的起始目录,这就是默认情况下您最终会进入的原因C:\Users\MyUser。这也是为什么上面的第二个选项(要求 ConEmu 设置起始目录)有效的原因。cd到 shell 启动配置中的目录(例如.bashrc)。不推荐,因为如果您想在不同的目录中启动,它会删除使用任何其他选项的能力。前两种技术要灵活得多。cd,然后执行一个新的“内部”子 shell(或者甚至用exec'd shell 替换自身)。例如:
%windir%\system32\wsl.exe -cur_console:pm:/mnt --exec sh -c "cd /home/myuser/myproject; exec bash"
Run Code Online (Sandbox Code Playgroud)
这不一定是一个坏方法。只是有时候启动两个 shell 感觉有点浪费。上面的前两种技术更好。但这个版本可以有它的用处。例如,我经常在 Windows 终端中以这种方式启动 WSL 实例,以便在sh启动 into 之前设置一些环境变量tmux,然后fish在每个窗口中启动 shell。| 归档时间: |
|
| 查看次数: |
5644 次 |
| 最近记录: |