在某个目录打开 Linux 子系统(Windows 上的 Ubuntu 上的 Bash)

在某个目录打开 Linux 子系统(Windows 上的 Ubuntu 上的 Bash)

是否有可用的参数,以便 bash 不会从主目录启动,而是从另一个目录启动?

谢谢

答案1

  • 首先在 Windows PC 上安装 Windows Subsystem Linux。转到文件夹,C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs换句话说,将其放入%AppData%\Microsoft\Windows\Start Menu\Programs文件资源管理器中。您可以找到一个名为“Windows 上的 Ubuntu 上的 Bash”的快捷方式。

Bash 快捷方式路径

  • 将快捷方式复制到任何其他文件夹中。右键单击该快捷方式并打开快捷选项卡特性。请参阅默认目标路径C:\Windows\System32\bash.exe ~。波浪符号(波浪水平线字符)用于表示用户主目录。因此,用户还可以使用波浪符号作为 cd 的参数返回到主目录,即 cd ~

Bash 快捷方式中的默认路径

  • 删除波浪符号(〜)来自目标路径并将文件夹名称放入开始于选项。例如,我输入的是“C:\Program Files\WindowsPowerShell”。如果路径中有空格,请将文件夹路径放在双引号中。现在,您就可以在该文件夹中启动 bash 了。

新的 Bash 启动路径

Bash 在新目录中打开

答案2

要在某个目录中启动 bash,请编辑 .bashrc 文件。键入nano .bashrc以在 nano 编辑器中打开该文件。添加以下命令:

cd <PATH>

其中 PATH 是您的目录的路径。您甚至可以指定 Windows 文件系统上的目录:

cd /mnt/c/path/in/windows

答案3

为了详细说明我的评论,通过您回复中的附加信息,您可以通过在运行字符串中使用不同的自定义初始化文件设置单独的快捷方式来实现您想要的效果bash:-

%SystemRoot%\System32\bash.exe --initfile ~/projN

这里N指的是不同的项目编号或名称。

每个~/projN文件应包含:-

# Perform normal start-up tasks

[ -r /etc/bash.bashrc ] && . /etc/bash.bashrc
[ -r ~/.bashrc ] && . ~/.bashrc

# Perform additional tasks

cd projNdirectory/

通常,特定的初始化文件会完全取代正常的启动文件,因此需要在自定义文件中调用这些文件,以便bash使用您熟悉的环境(提示符、别名等)启动PATH。这是基于 bash 文档的:-

--init-file file
--rcfile file
       Execute commands from file instead of the system wide initialization
       file /etc/bash.bashrc and the standard personal initialization
       file ~/.bashrc if the shell is interactive (see INVOCATION below).

相关内容