Windows上的Bash - exe文件的别名

时间:2017-07-19 08:32:05

标签: windows bash ubuntu docker windows-subsystem-for-linux

我在Windows上使用Ubuntu上的Bash,在Windows 10上运行bash的方法。我安装了Creators更新,Ubuntu版本是16.04。

我最近玩的是npm,node.js和Docker,对于docker,我发现可以安装它并在windows中运行它,只需从bash使用客户端部分,直接调用docker.exe文件Windows的Program Files文件夹。我只是更新我的路径变量,将docker的路径包含为PATH=$PATH:~/mnt/e/Program\ Files/Docker/(放入.bashrc),然后我就可以从bash调用docker.exe运行docker。

但是嘿,这个bash,我不想在命令(程序)结束时写.exe。我可以简单地添加一个别名alias docker="docker.exe",但后来我想使用let say docker-compose,我必须添加另一个。我正在考虑向.bashrc添加一个脚本,它将遍历路径变量并在路径变量中指定的每个路径中搜索.exe文件,并为每次出现添加一个别名,但它似乎不是一个非常干净的解决方案(但我想这很有用。)

是否有一个简单而干净的解决方案来实现这一目标?

3 个答案:

答案 0 :(得分:0)

您应该能够简单地将可执行目录设置为PATH。使用导出来保留。

命令: 导出PATH = $ PATH:/ path / to /目录/可执行文件/位于/位于

答案 1 :(得分:0)

尝试使用Docker for Windows from WSL时,我遇到了同样的问题。

有许多现有的Shell脚本,它们可以在Linux上很好地运行,并且大多数情况下也可以在WSL下运行,直到由于.editor1 { position: absolute; top: 0; width: 50%; bottom: 0; left: 0; } .editor2 { position: absolute; top: 0; width: 50%; bottom: 0; left: 50%; } 而失败。将各处的docker: command not found更改为docker会很麻烦且不可移植。


尝试将docker.exe中的aliases设置为here的变通办法:

~/.bashrc

但是它要求每个脚本都可以在interactive mode中运行,并且仍然可以在doesn't work within backticks中运行,而无需修改脚本。


然后在shopt -s expand_aliases alias docker=docker.exe alias docker-compose=docker-compose.exe 中尝试exported bash functions

~/.bashrc

这有效。但是添加每个所需的exe仍然很繁琐。


最后得到了更简单的symlinks方法和经过修改的wslshim自定义帮助脚本。

只需将一次添加到docker() { docker.exe "$@"; } export -f docker docker-compose() { docker-compose.exe "$@"; } export -f docker-compose

~/.local/bin/wslshim

使其可执行:#!/bin/bash -x cd ~/.local/bin && ln -s "`which $1.exe`" "$1" || ln -s "`which $1.ps1`" "$1" || ln -s "`which $1.cmd`" "$1" || ln -s "`which $1.bat`" "$1"

然后添加任何“别名”变得像键入两个单词一样容易:

chmod +x ~/.local/bin/wslshim

脚本会自动将absolute path拾取到$ PATH中的任何Windows可执行文件,并将其符号链接而没有扩展到~/.local/bin中,{{3}}也位于WSL的$ PATH中。

可以根据需要轻松扩展此方法,以自动链接给定目录中的任何exe。但是将整个$ PATH链接起来将是一个过大的杀伤力。 )

答案 2 :(得分:0)

在Windows 10中,解决方案是为Windows安装git-bash和docker。

在此重击中,当我按“ docker”时 例如“ docker ps” 我不需要创建别名或更改路径。

您可以从https://git-scm.com/download/win下载git-bash

然后从“开始”按钮中搜索“ git bash”。 希望此解决方案对您有好处