Como devo usar o Bash no Ubuntu no ambiente Windows?

3

Eu usei o Ubuntu no VirtualBox por um tempo. Desde que eu atualizei para o Windows 10, eu pensei que poderia ser uma boa ocasião para simplificar o meu trabalho e usar o Ubuntu no Windows (o comando Unix) que você pode instalar no Windows 10, então eu não tenho que iniciar o VirtualBox, transferir arquivos, etc. cada vez que eu quiser usar o Ubuntu.

No entanto, não tenho certeza se entendi como usar essa funcionalidade de maneira eficiente.

Precisamente:

  • Existe uma maneira (fácil) de acessar meus arquivos do Windows 10 (digamos um arquivo .txt em Documents and Settings) do Bash? Eu encontrei meus arquivos através do Bash, mas ele está retornando Permission denied quando eu tento usar o comando ls , mesmo quando clico com o botão direito do mouse em Bash no Ubuntu e Executar como administrador . Existe uma maneira de resolver isso?
  • Supondo que eu possa acessar arquivos, posso executar programas do Windows 10 por meio do Bash? Ou devo instalar as versões do Linux?
por francoiskroll 16.02.2017 / 23:49

3 respostas

2

Você pode tentar o link para poder usar um terminal bash dentro de suas janelas. Você também pode ver a partir desse terminal as permissões de arquivo nos arquivos que você tem permissões em falta.

    
por 17.02.2017 / 00:14
2

Você deve conseguir encontrar seus arquivos no diretório mnt no Bash for Windows. (por exemplo, /mnt/c/ )

Se houver erros de permissão, você poderá verificar usando ls -l Isso lhe dará as permissões rwx (ler, gravar, executar) em ordem da esquerda para a direita, significando owner, group, all others

Tenha em mente que o Bash for Windows deve ser um recurso de desenvolvimento, não se destina a substituir a virtualização de uma distribuição inteira como você faria no VirtualBox. Muitas coisas (como dispositivos) não funcionam corretamente como no VirutalBox.

Você não pode executar programas do Windows 10 por meio do shell Bash. Você também pode executar uma quantidade limitada de programas Linux (usando apt-get para instalá-los, por exemplo). Isto é devido à menção acima que é aleijado em comparação com o VirtualBox por design

Tenho certeza de que existem muitos que o usam. Originalmente, era destinado aos desenvolvedores para testar o código Linux em uma máquina Windows.

    
por 17.02.2017 / 00:33
2

Você pode acessar arquivos externos por meio da árvore DrvFS /mnt . /mnt/c corresponde à sua unidade C: e tem o mesmo layout. Todos os arquivos que seu usuário pode acessar estão disponíveis através deste sistema de arquivos, e as permissões são traduzidas de maneira um pouco intuitiva:

In order to give the user a hint about the permissions they have on files, DrvFs checks the effective permissions a user has on a file and converts those to read/write/execute bits, which can be seen for example when running “ls -l”. However, there is not always a one-to-one mapping; for example, Windows has separate permissions for the ability to create files or subdirectories in a directory. If the user has either of these permissions, DrvFs will report write access on the directory, while in fact some operations may still fail with access denied.

É possível que eles sejam um pouco diferentes do esperado, especialmente se você tiver ACLs personalizadas aplicadas ou acessando arquivos por meio de um terminal elevado / não elevado (por exemplo, o Windows possui permissões de criação mais refinadas do que as convencionais Unix octal permissões e WSL não mapeia em ACLs Linux). A única permissão que você pode utilmente alterar é o acesso write ( w ), que afeta o sinalizador somente leitura no arquivo NTFS.

Você pode iniciar programas do Windows a partir do Bash, desde que você esteja usando pelo menos a versão 14951 , que está disponível através do programa Insider desde o ano passado e estará na próxima versão do Windows. Você só precisa encontrar e executar o executável relevante normalmente; você deve estar dentro de um caminho DrvFS para fazer isso .

É possível combinar isso juntos:

$ export PATH=$PATH:/mnt/c/Windows/System32
$ cd /mnt/c/Users/you
$ notepad.exe file.txt

Você não pode (ainda, talvez nunca) ter executáveis do Windows lidos em arquivos do Linux. Iniciar o executável do WSL falhará, mas tentando acessar o arquivo de uma maneira diferente apenas fará com que tudo quebre .

    
por 17.02.2017 / 07:38