Execute o comando SHELL do WSL2 em segundo plano do Windows

visão geral

Todos sabemos que o desempenho do WSL2 atingiu o nível de produtividade atual, exceto que alguns suportes de hardware não são muito bons no momento, como USB sem suporte nativo. Tenho um projeto com apenas um computador e preciso de ligação Windows e Linux (rede principal), existem duas opções:
1. Instalação Linux+Wine
2. Instalação Windows+WSL2
Considerando esta última, o motivo é simples. O Wine enfrenta muitos problemas, e é open source e gratuito Ao contrário do WSL2, foi feito por especialistas técnicos convidados pela Microsoft e é conhecido como WSL2 最好的Linux发行版.

processo geral de arquitetura

Normalmente, ao usar WSL2, você precisa especificar uma determinada versão de distribuição para fazer login. Atualmente, Ubuntu, CentOS, Debian, OpenSUSEetc.

Quando precisarmos executar o shell, devemos primeiro abrir o painel do quadro de distribuição para entrar no ambiente shell, assim como você abre uma linha de comando no Linux, todas as suas operações estão no ambiente atual.

E se eu não precisar ver a interface de linha de comando do WSL2? Afinal, espero conseguir a inicialização automática na inicialização, e temos que contar com wsl.exeeste programa neste momento.

Explicação dos termos técnicos

* 后台执行

O que está aqui 后台执行não é mudar a tarefa para segundo plano, mas completar o comando WSL2 SHELL por meio de uma série de comandos sem a necessidade de estar de plantão ou operar manualmente a UI.

detalhes técnicos

1. Operação concreta

wsl.exe é um programa rodando no Windows, para ser exato , Windows10e . É um programa utilizado para interagir com o WSL ou um programa de gerenciamento do WSL. Tem muitos parâmetros para escolher, mas usaremos apenas alguns hoje.Windows11Windows7不支持

Por Ubuntu-22.04exemplo, você precisa especificar em qual distribuição executar o comando. Quanto a como verificar sua distribuição, já mencionei em meus artigos anteriores, então falarei sobre isso aqui novamente.

wsl.exe --list -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Stopped         2
  Ubuntu-22.04    Running         2
  Ubuntu-18.04    Stopped         2
  CentOS8         Stopped         2
  CentOS7         Stopped         2

O NOME acima é o nome da distribuição, ESTADO é o estado de execução e VERSÃO é a versão.

A execução do comando também é muito simples. A seguir está o comando para imprimir as informações da placa de rede. A saída padrão imprimirá as informações da placa de rede, que é exatamente igual àquela que você efetuou login para imprimir.

A diferença é que o comando a seguir não exige que você abra manualmente uma página de linha de comando do Ubuntu, tudo parece ser executado em segundo plano.

wsl -d Ubuntu-22.04 -u anold --exec /bin/bash -c ‘ifconfig’

1. Precauções

1. Variáveis ​​ambientais

Aqui está um lugar para prestar atenção, se você não estiver logado na versão de lançamento, alguns comandos não terão efeito, como: ll. Este comando é definido .bashrcdentro de alias. Por .bashrcnão ter sido executado, as configurações nele contidas llnão terão efeito. Claro, existem muitos comandos que não terão efeito, por isso não vou listá-los aqui.

2. Ciclo de vida

Se sua política de configuração WSL for sob demanda, você precisa prestar atenção: se você não usar WSL por muito tempo, ela será reciclada automaticamente.

  NAME            STATE           VERSION
* Ubuntu-20.04    Stopped         2
  Ubuntu-22.04    Stopped         2
  Ubuntu-18.04    Stopped         2
  CentOS8         Stopped         2
  CentOS7         Stopped         2

Certifique-se de que seu serviço esteja sempre ativo.

resumo

Muito simples, não há operação redundante. Claro, wsl.exe ainda tem muitas funções esperando para serem descobertas.

おすすめ

転載: blog.csdn.net/jiexijihe945/article/details/132420543
おすすめ