AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1678740
Accepted
YorSubs
YorSubs
Asked: 2021-09-29 11:00:45 +0800 CST2021-09-29 11:00:45 +0800 CST 2021-09-29 11:00:45 +0800 CST

Como iniciar o WSL Ubuntu "Console" a partir da linha de comando

  • 772

Estou lutando para iniciar o aplicativo da loja WSL "Ubuntu 20.04" (ou qualquer aplicativo da loja, na verdade) a partir da linha de comando (por exemplo, PowerShell ou CMD).

Quando executo o Ubuntu 20.04 no menu Iniciar, ele é iniciado em uma janela com o ícone do Ubuntu e o título correto da janela ("Ubuntu 20.04 LTS"). Eu gostaria de obter a mesma janela do aplicativo quando iniciada a partir da linha de comando.

Pesquisei bastante e encontrei esta página que faz referência start shell:AppsFolder\{folder}!App(por exemplo start shell:AppsFolder\Microsoft.WindowsStore_8wekyb3d8bbwe!App, ), mas não consegui fazer isso funcionar para o aplicativo Ubuntu Store. Parece um pouco complicado para mim - Existe uma maneira mais fácil? E se não, como isso funciona para o Ubuntu?

Estou familiarizado com o wslcomando, mas se eu executar wsl -d Ubuntu-20.04a partir do menu Iniciar, a janela resultante terá o ícone genérico do WSL/Linux/Penguin em vez do ícone do Ubuntu. O título da janela também é C:\Windows\system32\wsl.exeem vez de "Ubuntu 20.04 LTS".

Se eu executar o mesmo wslcomando do CMD, ele ainda terá o ícone CMD.

Talvez eu possa usar o comando DOS/CMD TITLE, mas gostaria de ter apenas um comando que eu possa usar para iniciar o aplicativo Store. Isso é possível?

Por outro lado, os aplicativos "normais" .exedo Windows podem ser iniciados a partir do CMD ou do PowerShell com bastante facilidade.

Eu ficaria muito feliz com uma solução para o Ubuntu WSL, mas também se houver uma maneira simples (e principalmente programável ) de executar todos os aplicativos da Windows Store, isso seria ótimo.

windows powershell
  • 2 2 respostas
  • 1846 Views

2 respostas

  • Voted
  1. NotTheDr01ds
    2021-09-29T12:36:04+08:002021-09-29T12:36:04+08:00

    Resposta curta:

    Do CMD ou PowerShell:

    start ubuntu.exe
    

    Se startnão for alias no PowerShell, tente:

    start-process ubuntu.exe
    

    Mais detalhes:

    ubuntu.exeé o "App Execution Alias" para o aplicativo "Ubuntu" instalado na Microsoft Store, embora seja possível que também seja:

    • ubuntu2004.exe: Se você instalou o "Ubuntu 20.04" "versionado" da Loja
    • ubuntu1804.exe: Se você instalou o "versionado" "Ubuntu 18.04"
    • E vou assumir que você ainda não tem a versão 16.04 obsoleta.

    Você pode ver isso acessando Gerenciar aliases de execução de aplicativos nas Configurações do Windows. Muitos aplicativos da Loja incluem um "falso .exe" projetado para iniciar o aplicativo da Loja. Você pode desabilitar isso, mas estou assumindo que está habilitado. Se não, habilite-o, é claro.

    Quando você executa o Ubuntu a partir do Menu Iniciar, é claro que está executando o aplicativo Store. Este aplicativo executa o WSL no console herdado do Windows e faz algumas coisas adicionais, como definir o ícone e a fonte do aplicativo. Essa é praticamente a única diferença do que posso encontrar ao executá-lo na linha de comando.

    Quando você executa ubuntu.exe(ou um dos outros aliases de execução do aplicativo WSL) na linha de comando, ele é iniciado no terminal atual. É o mesmo que digitar ipconfig.exe, por exemplo. Ele mantém as características atuais do terminal "proprietário" (iniciado pelo CMD ou PowerShell) - mesmo ícone do aplicativo, mesmas fontes, etc.

    Quando executado com o comando start(CMD) ou Start-Process(PowerShell), ele inicia um processo separado no Windows (em vez de um subprocesso do shell atual). O Windows o inicia em um novo terminal (Windows Console por padrão) e, presumivelmente, o WSL faz alguma mágica para dizer "se eu sou o proprietário do terminal, defina o ícone e a fonte".

    • 4
  2. Best Answer
    NotTheDr01ds
    2021-09-30T14:33:15+08:002021-09-30T14:33:15+08:00

    Fornecendo isso como uma resposta separada, pois, como você notou, os aliases de execução de aplicativos (da minha outra resposta) não são criados por todas as distribuições do WSL.

    A página que você encontrou sobre como usar start shell:/AppsFolder...está no caminho certo, mas perde um ponto-chave - !Appno final funciona para a maioria , mas não para todos os aplicativos UWP/Store. Na verdade, me deparei com isso no ano passado quando estava tentando fazer backup do meu progresso no Minecraft Dungeons, curiosamente ...

    A sintaxe real é:

    start shell:AppsFolder\PackageFamilyName!AppId
    

    PackageFamilyNamenormalmente corresponde ao nome do diretório em C:\Program Files\WindowsApps, mas esse diretório normalmente não é legível, a menos que você tenha elevado suas permissões por meio do UAC.

    E AppIdé o verdadeiro desafio de encontrar. Ele é definido no manifesto XML do pacote. E pode ser o que o desenvolvedor quiser. A maioria usa App, mas existem (especialmente para WSL, parece) exceções.

    Aqui está um trecho do PowerShell para ser executado em todos os pacotes Appx do seu usuário (instalados na loja, bem como aqueles que vêm com o Windows) junto com alguns pacotes de "sistema":

    Get-AppxPackage | ForEach-Object {
      $packageFamilyName = $_.PackageFamilyName
      $packageManifest = Get-AppxPackageManifest $_
      $displayName = $packageManifest.Package.Properties.DisplayName
      $appId = $packageManifest.Package.Applications.Application.Id
    
      Write-Output "${displayName}: ${packageFamilyName}!${appId}"
    }
    
    • Get-AppxPackage: Enumerar os pacotes instalados
    • $_.PackageFamilyName: Deve corresponder ao nome do diretório C:\Program Files\WindowsAppspara a maioria dos pacotes que não são do sistema
    • Get-AppxPackageManifestretorna o manifesto do pacote XML para o aplicativo
    • Em seguida, obtemos as propriedades DisplayNamee AppIdpercorrendo o XMLDocument como propriedades do PowerShell/.Net.

    Você deve poder usar a saída resultante com o start(CMD) ou Start-Process(PowerShell) a la:

    start-process shell:AppsFolder\36828agowa338.AlpineWSL_my43bytk1c4nr!alpinewsl
    

    Mas, é claro, verifique sua saída real do Get-AppxPackageteste acima, pois o nome da família pode mudar com base na versão da loja, acredito.

    Para mim, isso lançou um Windows Console separado com Alpine, com o logotipo e o título da Alpine.

    • 2

relate perguntas

  • Qual seria o equivalente em lote do argumento "pass" do Python?

  • Não é possível ativar o Microsoft Print to PDF depois de desativado

  • Posso fazer com que este script do PowerShell aceite vírgulas?

  • Comunique-se com o daemon do Docker no Windows

  • atalho do shell da área de trabalho no painel lateral do explorer

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve