WSL hide / mnt / c / Users /

时间:2018-04-29 07:29:16

标签: windows git ubuntu windows-10 windows-subsystem-for-linux

可以使用WSL(Ubuntu)在终端(VS Code& Hyper)中查看更短的路径。在Ubuntu之上,我安装了zsh。目前,我使用git bash和路径看起来Lukas@Y50-70 ~/Coding但是对于Ubuntu,我有类似lukas@Y50-70 /mnt/c/Users/Lukas/Coding的东西。当我在另外2个文件夹中有一个项目并且我有一个很长的分支名称时,有一个完整的行不必要的信息(对我而言)很烦人。 这是Ubuntu和git bash的比较: comparison of Ubuntu and git bash 感谢

5 个答案:

答案 0 :(得分:1)

检查zsh installation guide under WSL是否有帮助(来自neurogenesis):

  
      
  1. 使用zsh
  2. 安装sudo apt-get install zsh   
  3. bash.exe是WSL / linux子系统的入口点。您必须修改Windows快捷方式以指定bash -c --login或使用~/.bashrc修改exec /bin/zsh以正确加载其他外壳。
      /etc/passwd未咨询SHELL,因为它不是完整的登录过程。请务必同时设置umask env var。有关详细信息,请参阅#846
  4.   
  5. 在开始安装之前修复group,否则zsh等工具会抱怨   具体来说," other"和" compaudit"权限将具有与所有者相同的权限。这会导致zsh的compinitumask 022失败(两者都与命令完成有关)。
      有关详细信息,请参阅#352。可以将~/.bashrc添加到您的zsh
  6.         

    注意:这应该在尝试安装antigen之前的~/.bashrc插件管理器之前完成(否则git clones中的目录/文件权限问题)。
      您还应该在安装RVM或rbenv之前执行此操作。

         

    我最后在# ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples ## Fix missing umask value umask 022 ## Launch Zsh if [ -t 1 ]; then cd $HOME export SHELL=/bin/zsh exec -cl $SHELL fi 的顶部插入了几行,如下所示:

-c zsh

Issue 846(在第2点中提到)包括the comment

  

正常的C:\Windows\System32\bash.exe ~ -c /bin/zsh 符号链接在我错误的目录中打开,但我使用了这个(注意代字号):

getContentPane().add(jTextField1, java.awt.BorderLayout.PAGE_START);

另见" How to Use Zsh (or Another Shell) in Windows 10"。

答案 1 :(得分:1)

我知道这并不是您所希望的解决方案。我一直在寻找解决相同的问题。提示太长,导致我的一些命令换行到下一行。在看到有关VonC答案的评论后,我决定保留我的下一个最佳解决方案。

我在〜/ .bashrc文件中所做的是这样的:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\n\$ '
fi

我在\n之前添加了\$

因此,当我位于Windows主文件夹中时,它看起来像这样

ryan@DESKTOP-RSKAA4F:/mnt/c/Users/ryank
$

然后在$之后开始键入命令。它占用了更多的垂直空间,但是至少不必为了避免自动换行而最大化我的终端窗口。

答案 2 :(得分:0)

我能够使用命名目录解决此问题-通过将这一行添加到您的〜/ .zshrc文件中

hash -d c=/mnt/c

您会在提示符下看到“〜c /”,而不是“ / mnt / c /”,我认为这样更好。

这与为目录设置别名具有相似的效果,但是名称会反映在您的路径显示方式中。

作为一项额外的奖励,您可以随时输入~c

切换到该目录。

答案 3 :(得分:0)

在我看来,在启动终端会话后仅运行'cd',会将提示重新设置为正常的'/ home /(user)'

应该不需要安装zsh或其他任何东西。无论如何,它对我有用。

从Windows的根文件夹启动会话时,似乎也可以解决问题。

我的会话保持不变

C:\ vms

样本:

cd -d C:\vms\minikube\ubu_jenkinsX\rootfs
C:\vms\minikube\ubu_jenkinsX\rootfs>wsl -d ubu_jenkinsX

您可能在本地数据中的用户资料下。搜索rootfs文件夹

答案 4 :(得分:0)

您的 WSL 提示显示这么长的路径是因为您实际上不在您的主目录中。你看,WSL 有自己的独立于 Windows 的虚拟文件系统,Windows 路径(比如你的 C:\Users\Lukas\...)存储在 /mnt/c/Users/Lukas/... 下。您的 WSL 主目录将是 /home/Lukas(因为您的 WSL 用户名大写),但当然,这不是您的项目所在的位置。

fish shell 有一个 prompt_pwd 函数,可以缩短类似这样的路径:

0 ---- /m/c/U/L/Documents cd Something
0 ---- /m/c/U/L/D/Something prompt_pwd
/m/c/U/L/D/Something

这是你感兴趣的东西吗?您可以将 the function 移植到 Bash,或者只是切换到 Fish,或者只显示当前目录名称而不是路径。