Как я могу «открыть» файл из WSL с помощью приложения по умолчанию?

Большинство систем предоставляют команду open (альтернативно известную как start , cygstart , cygstart xdg-open и т. Д.), cygstart открывает файл в приложении по умолчанию для рабочего стола, что бы это ни было.

Например, из Powershell, когда я вхожу:

 PS> start form.pdf 

Документ открывается в Edge.

Может ли Bash-on-Ubuntu-on-Windows сделать это?

Это зависит от того, хотите ли вы: A) запустить программу linux внутри WSL или B) вы хотите запустить программу Windows из командной строки bash.

Если B), то да, если вы установите cygwin / bash. Например, установите git для окон, и у вас есть система, работающая под окнами с bash. Затем вы можете запустить запуск, на самом деле он включен в качестве скрипта:

 $ cat /usr/bin/start #!/usr/bin/env bash # Copyright (C) 2014, Alexey Pavlov # mailto:[email protected] # This file is part of Minimal SYStem version 2. # https://sourceforge.net/p/msys2/wiki/MSYS2%20installation/ # File: start cmd //c start "${@//&/^&}" 

Если A), то это становится намного сложнее, особенно если вы хотите запустить программу linux для отображения .pdf в окне графического интерфейса. Обратите внимание, что Windows знает, чтобы связать приложение по умолчанию, чтобы открыть файл PDF, но WSL не имеет информации. Поэтому, даже если у вас есть рабочий стол под WSL, вам нужно связать приложение GUI Linux, чтобы открыть pdf.

Примечание, чтобы уточнить, в WSL вы исполняете исполняемые файлы linux, а не исполняемые файлы Windows:

 (WSL):~# file /bin/gzip /bin/gzip: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=68cc3c090405cf6d40e97d2ff58085fd26940602, stripped (WSL):~# file /mnt/c/Program\ Files/Internet\ Explorer/iexplore.exe /mnt/c/Program Files/Internet Explorer/iexplore.exe: PE32+ executable (GUI) x86-64, for MS Windows (WSL):~# /mnt/c/Program\ Files/Internet\ Explorer/iexplore.exe bash: /mnt/c/Program Files/Internet Explorer/iexplore.exe: cannot execute binary file: Exec format error 

WSL получил Windows-Linux interop, работающий в октябре , поэтому я предполагаю, что вы сможете использовать Windows « start прямо в Bash, как и в Powershell.
Просто назовите его с помощью start.exe

  • Где консоль Ubuntu в Windows10?
  • Как удалить / перезагрузить подсистему Windows для Linux в Windows Insider Build 14316
  • Как я могу использовать SSH в «Bash on Ubuntu в Windows 10»?
  • Bash не работает после обновления Windows 10
  • Как я могу получить доступ к учетным записям в Windows (созданный с помощью Bash-on-Ubuntu-on-Windows)?
  • Как получить доступ к папкам Windows из Bash на Ubuntu в Windows
  • Сборка скомпилированного исполняемого файла на Bash на Ubuntu в Windows не производит вывод
  • Где находится каталог bash Windows в Windows?
  • Давайте будем гением компьютера.