web-dev-qa-db-ja.com

Windows環境のUbuntuでBashを使用するにはどうすればよいですか?

私はしばらくの間、VirtualBoxでUbuntuを使用しています。私はWindows 10にアップグレードしたので、自分の作業を簡略化し、WindowsでUbuntu(Unixコマンド)を使用してWindows 10にインストールできるので、VirtualBoxを起動したり転送したりする必要はないでしょう。 Ubuntuを使用するたびにファイルなど。

それにもかかわらず、この機能を効率的に使用する方法を理解しているかどうかはわかりません。

正確に:

  • BashからWindows 10ファイル(ドキュメントと設定の.txtファイル)にアクセスする(簡単な)方法はありますか? Bashを使用してファイルを見つけましたが、lsコマンドを使用しようとすると、UbuntuでBashを右クリックしても、Permission deniedが返されますおよび管理者として実行これを解決する方法はありますか?
  • ファイルにアクセスできるとしたら、Bashを介してWindows 10プログラムを実行できますか?または、Linuxバージョンをインストールする必要がありますか?
4
francoiskroll

外部ファイル DrvFS /mnt tree を介してアクセスできます。 /mnt/cC:ドライブに対応し、同じレイアウトです。ユーザーがアクセスできるすべてのファイルは、このファイルシステムを介して利用でき、権限はやや直感的に変換されます。

DrvFsは、ファイルに対するユーザーのアクセス許可に関するヒントをユーザーに提供するために、ユーザーがファイルに対して持っている有効なアクセス許可をチェックし、読み取り/書き込み/実行ビットに変換します。たとえば、「ls -l 」。ただし、常に1対1のマッピングがあるとは限りません。たとえば、Windowsには、ディレクトリにファイルまたはサブディレクトリを作成する機能に対する個別のアクセス許可があります。ユーザーがこれらの権限のいずれかを持っている場合、DrvFはディレクトリへの書き込みアクセスを報告しますが、実際には一部の操作はアクセス拒否で失敗する可能性があります。

特にカスタムACLが適用されている場合、または昇格/非昇格のターミナルを介してファイルにアクセスしている場合(たとえば、Windowsには、従来のUnixの8進数のアクセス許可よりも細かい作成許可がある) 、およびWSLはLinux ACLにマップしません)。便利な唯一の権限changeは、書き込み(w)アクセスであり、これはNTFSファイルの読み取り専用フラグに影響します。


少なくともバージョン14951 を使用している場合、BashからWindowsプログラムを起動できます。これはInsiderプログラムから利用できます。昨年以降、次のWindowsリリースに含まれる予定です。 通常どおりに関連する実行可能ファイルを見つけて実行するだけです。あなたはDrvFSパス内にいる必要がありますそうするために


これらを組み合わせることが可能です。

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

Windowsの実行可能ファイルをLinuxファイルから読み取ることは(まだ、おそらくこれまでに)できません。 WSLから実行可能ファイルを開始すると失敗するだけですが、 ファイルに別の方法でアクセスしようとすると、すべてが壊れてしまいます になります。

3
Michael Homer

https://www.cygwin.com/ を試して、ウィンドウ内でbashターミナルを使用できるようにすることができます。また、そのターミナルから、アクセス許可が不足しているファイルのファイルアクセス許可を確認できます。

2
David

Bash for Windowsのmntディレクトリでファイルを見つけることができるはずです。 (例:/mnt/c/

権限エラーがある場合は、ls -lを使用して確認できます。これにより、左から右にrwx(読み取り、書き込み、実行)権限が付与されますowner, group, all others

Bash for Windowsは開発用の機能であることを念頭に置いてください。これは、VirtualBoxのようにディストリビューション全体を仮想化することを置き換えるものではありません。多くのこと(デバイスなど)は、VirutalBoxのように適切に機能しません。

Bash ShellからWindows 10プログラムを実行することはできません。限られた量のLinuxプログラムのみを実行することもできます(たとえば、apt-getを使用してそれらをインストールします)。これは、VirtualBoxと比較して機能が損なわれているという上記の記述が原因です設計による

それを使用している人はたくさんいると思いますが、もともとは開発者がWindowsマシンでLinuxコードをテストできるようにすることを目的としていました。

2
Patrick