トップページ⇒linux
1002コメント333KB

Windows搭載予定のLinuxサブシステムでUbuntuが動作 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin2016/03/30(水) 14:57:55.72ID:2b3xF4As
WindowsはLinuxの機能をもエミュレートする


?Microsoft and Canonical partner to bring Ubuntu to Windows 10
You'll soon be able to run Ubuntu on Windows 10.

http://www.zdnet.com/article/microsoft-and-canonical-partner-to-bring-ubuntu-to-windows-10/
0587login:Penguin2016/05/13(金) 20:05:34.26ID:3w8kJo22
>>586
ひょっとしてバカなの?
0588login:Penguin2016/05/13(金) 20:19:35.31ID:+m9qKeX3
bash固定はハードコーディングのせいにフイタww
バイナリエディタでzsh.exeつくるか
0589login:Penguin2016/05/13(金) 22:27:32.64ID:vXl22fXQ
>>584
最初に呼び出されるのはinit
次はubuntuベースだからbash
>>588
他のデストリならdashなのがあるけどzshなんて馬鹿げてる
single user modeをなんだと思ってるんだ
0590login:Penguin2016/05/14(土) 00:07:58.20ID:tpA7DezX
>>589
> single user modeをなんだと思ってるんだ

なんだと言われてもな?

一人でログインしたいときに使うもので、
そのときに使用するシェルを選ぶ持っているって
ことぐらいは知っているが?


シングルユーザーモードだからなんだって言うんだ?
0591login:Penguin2016/05/14(土) 00:08:25.71ID:tpA7DezX
そのときに使用するシェルを選ぶ機能を持っているって
0592login:Penguin2016/05/14(土) 00:15:55.77ID:lrkYz3iS
>>590>>591
> 一人でログインしたいときに使うもので、
> そのときに使用するシェルを選ぶ機能を持っているって

全く理解してませんね
0593login:Penguin2016/05/14(土) 00:19:23.44ID:tpA7DezX
>>592
やっぱり質問に答えていませんねw

もう一回聞きますよ?

シングルユーザーモードだからなんだって言うんだ?
0594login:Penguin2016/05/14(土) 00:24:05.51ID:lrkYz3iS
>>593
全く理解できてないですが
これからもがんばってくださいね
0595login:Penguin2016/05/14(土) 00:31:12.73ID:Mirp84tK
両方的外れなので、見ていて楽しいなあ(某)
0596login:Penguin2016/05/14(土) 00:32:54.63ID:tpA7DezX
質問に答えないからねw

自分の意見を言えない人っていうのが
よくわかったでしょw
0597login:Penguin2016/05/14(土) 00:58:05.48ID:Q+biQ51H
588だけど、なんか俺のせいでまたケンカになってるw
こんなおまけシステムにマジになってどうすんの?
0598login:Penguin2016/05/14(土) 01:44:25.53ID:vExSFZcf
よく聞け。
シングルユーザーモードとは漢の生き様だ。
0599login:Penguin2016/05/14(土) 06:07:21.82ID:n2b4+qhr
つまりおまえらのことか
0600login:Penguin2016/05/14(土) 08:08:18.08ID:vbVFKIiz
おまえらはノーユーザーだろw
0601login:Penguin2016/05/14(土) 13:20:27.25ID:tpA7DezX
そもそも、何を見てシングルユーザーモードという
言葉を持ち出してきたのかがわからん。
0602login:Penguin2016/05/14(土) 13:39:38.78ID:Q+biQ51H
WSLはtrustyのinitで起動してるらしいから、RunLevelを見れば判断できるんじゃね?
おれもIPにしてWSLインスコしたけど面白くなかったから消しちゃった。
0603login:Penguin2016/05/14(土) 16:16:53.52ID:YyenpchU
systemdにrunlevelなんてあったっけ?
0604login:Penguin2016/05/14(土) 16:55:54.51ID:+ToqjGxi
WSLは14.04LTSベースだからsystemdの話は影響は無いはず

# runlevel
runlevel:/var/run/utmp: No such file or directory

まあいつものWSLの通り・・
0605login:Penguin2016/05/14(土) 19:46:41.40ID:tpA7DezX
>>542で突然現れる(bashをシングルユーザーモードだと勘違いしてる?)

> Bash.exeは名前が悪いな
> SingleUserMode.exeとかにしたらどうだ?


>> 573でも同じように繰り返す。

# (参考 >>555)
# bash on Windowsモード開始してみると、シェルはやっぱり tcsh ではなくて bash なんだな・・

>>555
> single user modeだろ


>>589でも更に繰り返す

> single user modeをなんだと思ってるんだ


本当にこの人はシングルユーザーモードを何だと思ってるんでしょうか?(笑)
0606login:Penguin2016/05/14(土) 19:52:14.39ID:tpA7DezX
>>603
> systemdにrunlevelなんてあったっけ?

無いよ。

あるのはsystemdが提供している、レスキューターゲットとエマージェンシーターゲット
ランレベルっていうのはinitデーモンが提供している機能

だからLinuxサブシステムで動かすものを変えると当然initもシングルユーザーモードも
関係ないものとなってしまうw
0607login:Penguin2016/05/14(土) 20:15:20.59ID:sKfR7F8W
WSLが正式リリースされる頃にはUbuntu 16.04ベースになるん?
update / upgradeはaptで勝手にやれっていうスタンスかな?
それともupdateはWindowsと纏められてわけ分からんことになるのか
0608login:Penguin2016/05/14(土) 20:18:39.94ID:tpA7DezX
検索すると↓とかいくつか見つかるね。

http://ascii.jp/elem/000/001/145/1145133/http://ascii.jp/elem/000/001/145/1145133/
> カークランド氏によれば、現在のパッケージはUbuntu 14.04 LTSベースで作成したものだが、
>数週間後には最新版であるUbuntu 16.04 LTSのパッケージ化も完了するという。
0609login:Penguin2016/05/14(土) 20:52:57.82ID:+ToqjGxi
>>607
Windows10 自体のまるごとアップデートで来ると思う

4月6日ののWin10のBuild 14316版で bash on Windows が使える様になって
それから一か月程度だけど、もう5回ぐらい Windows updateでWin10自体のアップデートが来てるような

アプリとかはupdate後もそのまま残ってるから特に気にならない。DL時間と再起動が多少めんどい感じ
0610login:Penguin2016/05/14(土) 23:42:06.10ID:Q+biQ51H
今のWSLで擬似Linuxカーネルのバージョンは3.4だけど、16.04ベースにするということは
カーネルバージョンは4.4になるってこと?
あとsystemdが起動プロセスになる?
0611login:Penguin2016/05/15(日) 00:51:01.84ID:beeaIlhV
あくまでもvmでは無くてSubSystemなんでbootシーケンスまでエミュレートしないんじゃないかな。
今もinitが走ってるというよりはinitし終わった後のbash起動からな感じだし。
0612login:Penguin2016/05/15(日) 01:50:06.60ID:dq/vDRE9
流れと関係ない話でごめん。
SSHサーバ起動できた人いる?自分うまくいかないわ。ファイルが足りないらしい。

$ sudo service ssh start
* Starting OpenBSD Secure Shell server sshd \
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key

$ ssh localhost
ssh: connect to host localhost port 22: Connection refused

SSHサーバ立てたいのは、標準のターミナルが現状あり得ないダメさなんで
PuTTY あたりでつないで使いたい。

256color.pl
https://gist.github.com/hSATAC/1095100
これがこんなに崩れるターミナルは初めて見た。
0613login:Penguin2016/05/15(日) 01:51:29.46ID:Nks4+zN1
ファイルがないってわかってるなら、Linuxから持っていけよ
0614login:Penguin2016/05/15(日) 02:08:04.00ID:zMS5SBnc
sshd_configをまともに編集出来る知能がないなら諦めた方がよい
0615login:Penguin2016/05/15(日) 03:00:51.84ID:dq/vDRE9
書き方が悪かった。実際にSSH接続できた人いるのかを聞きたいんだよ。特に外部から。

他のLinuxからファイルを持ってきたり、sshd_config の編集したりは
自分にも普通にできる。つうかさっきやったらsshdサーバ起動のエラーは出なくなった。
でも相変わらず内部からもsshでつながらない。
$ ssh localhost
ssh: connect to host localhost port 22: Connection refused

自分はネットワークは疎いんで、ここから先を追いかける自信がない。
ifcofig や ping localhost も使えない環境だし、ググってもSSH接続できたと言ってる
人が見つからない。
だからそもそもSSH接続できるのかどうかと、できるのならその方法を教えてほしいんだわ。
0616login:Penguin2016/05/15(日) 03:23:26.78ID:tHnCK4wm
君には無理だよ。
0617login:Penguin2016/05/15(日) 07:00:31.31ID:3MdQi/D7
>>612
最初に入ってるopenssh-serverはpostinst処理を実行してないみたい。
sudo apt-get install --reinstall openssh-serverとかで再インストールして
postinst処理を実行すれば鍵作ってくれたはず。
1回目のアップデートの時はそっから動かなかった
(ssh localhostするとすぐコネクション切られる)。
rsyslogが動かないから原因を調べる気にならん。
0618login:Penguin2016/05/15(日) 07:06:18.41ID:3MdQi/D7
蛇足だけど、ポートはWindows側で空ける必要あったようななかったような。
0619login:Penguin2016/05/15(日) 07:17:18.79ID:Ry1CTZ/G
>>615
自分も今ちょっとやってみたけど、やっぱり出来なかったわ
試したことのメモ

�@WindowsファイヤーウォールでTCP port22の受信を許可
�Asshd_configにパスワード認証を許可するように↓に変更
 PasswordAuthentication yes
�Bsshdを起動
 /etc/init.d/ssh start
 (service ssh start の方だと upstartに接続できない警告が出て気持ち悪いので避けた)

これでWindows側のTeratermから接続しようとすると確かに「接続が拒否されました」になった
ただ、この理由は単純で、期待するポートをLISTENしていないからっぽい

WSLでsshdを起動させた状態で WindwosのCMDプロンプトからnetstat -anしてみると↓
TCP [::]:22 [::]:0 LISTENING
つまり、IPv6の方をListenしていて IPv4の方はLISTENしていないっぽい

なので
�C sshd_configに↓を追記
 AddressFamily inet
 ListenAddress 192.168.x.xx (自分のPCのアドレス)
�D sshd再起動
 /etc/init.d/ssh restart

これで IPv4の方のアドレスをLISTENする様になった。
> TCP 192.168.x.xx:22 0.0.0.0:0 LISTENING

だけれども、Teratermから接続に行くと、一瞬TeratermのID/Password入力画面が出るけど
「SSHパケットを送信中に通信エラーが発生しました
切断します。(retry_send_packet:10053)」
のエラー表示になって結局SSHは成立しなかった
0620login:Penguin2016/05/15(日) 10:04:27.31ID:K+I7oYEh
>>615
> 他のLinuxからファイルを持ってきたり、sshd_config の編集したりは自分にも普通にできる。
そんなスキルがある奴なら
> Could not load host key: /etc/ssh/ssh_host_rsa_key
見て質問なんてしない
どうせコピペで動かしたことがあるレベルなんだろ
0621login:Penguin2016/05/15(日) 15:42:32.67ID:uR2dT0Ih
256color.pl
が崩れるのはbashが動くターミナルがコマンドプロンプトだから。
cygwinみたいにコマンドプロンプトから脱却して専用のターミナル実装してほしい。
コマンドプロンプトじゃ力不足に感じる。おれもTereTerm使いたい。
0622login:Penguin2016/05/15(日) 15:57:33.05ID:tHnCK4wm
telnetクライアントは持ってるんだから、
そっち経由にしてくれるだけでいいのにね。
0623login:Penguin2016/05/15(日) 16:35:24.86ID:nXypx20r
>>621
今そのコマンドプロンプトを改良してるだろ?
0624login:Penguin2016/05/15(日) 23:41:54.65ID:dq/vDRE9
>>617-619
ありがとう。詳しい人でも現状だと難しいのね。

/etc/ssh/ssh_host_*_key が存在しないのに気がついた時、
これMSが意図的にSSHを殺しておこうとしたのかな、
だったら自分の手には負えそうにない、と思った。
でもお二人の書き込みを見ると、単にまだそこまで手が回ってないだけなのかも。

-------
別件

MySQL Server は何も問題なく動いている。Windows側からも接続できる。
これは自分は大変うれしい。
ちなみに慣れてるCygwinで試しました。
$ mysql -u root -p protocol=TCP

HTTPサーバも立てようと思って、とりあえずPython3 で試してみたんだけど、
$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 ...
なぜかこれ、Webブラウザで http://localhost:8000/ にアクセスすると
2回に1回ぐらい「このサイトにアクセスできません」ってなってしまう。
よくわからん…。
0625login:Penguin2016/05/16(月) 00:32:40.03ID:IGj0N0vb
まだ公式リリースされてない。
開発途中版だってわかってるはずなのに、
何言ってるんだろうか?
0626login:Penguin2016/05/16(月) 07:48:55.07ID:j6eeivK2
>>624
> HTTPサーバも立てようと思って、とりあえずPython3 で試してみたんだけど、
> $ python3 -m http.server
> Serving HTTP on 0.0.0.0 port 8000 ...
> なぜかこれ、Webブラウザで http://localhost:8000/ にアクセスすると
> 2回に1回ぐらい「このサイトにアクセスできません」ってなってしまう。

うちのPCでは発生してないな、毎回正常にアクセス可能

参考までに聞いてみるけど http://127.0.0.1:8000/ でアクセスした場合も結果は同じ?
あとWebブラウザはどのWebブラウザでも再現する?
こちらも余り詳しくないけど、IPv6で名前解決された場合にアクセス出来てない可能性を予想してみたり

>ちなみに慣れてるCygwinで試しました。
「別件」以降が全部Cygwinでやってる話なのかな? もしそうなら話が続くようなら別スレがいいかも
0627login:Penguin2016/05/16(月) 13:53:51.57ID:m/NEgkl3
>>626
$ mysql -u root -p --protocol=TCP
でBash on WindowsのMySQLサーバに接続したのだけがCygwinで、
それ以外は、MySQLサーバを起動したのも、
Python3でWebサーバを起動したのも全部Bash on Windows。
わかりにくい書き方でごめん。

あと、Python3のWebサーバに安定して接続できないのは自分の環境のせいみたい。
他の環境では Python3のWebサーバは安定しているということなんで、
Cygwinでも同様のWebサーバを起動してみたら、同様に不安定だった。
スレ汚しごめん。
ちなみに localhost:8000 でも 127.0.0.1:8000 でも 192.168.XXX.XXX:8000でも、
Chrome以外のブラウザでも同様だった。
0628login:Penguin2016/05/16(月) 14:12:46.47ID:22itw8Cu
ろくに設定も出来ない奴が手を出すのはまだ早いんだよ。わかった?
0629login:Penguin2016/05/17(火) 15:27:25.60ID:ctsYjtq9
これ、/mnt/c/ディレクトリ以下でだけ失敗するな。

$ cp hoge.txt HOGE.txt
cp: ‘hoge.txt’ and ‘HOGE.txt’ are the same file
0630login:Penguin2016/05/17(火) 16:23:26.20ID:qq2Npnav
NTFSやFATをマウントしてるってオチで?
0631login:Penguin2016/05/17(火) 19:08:25.41ID:D/UYe8Ee
>>629
当たり前だろ
0632login:Penguin2016/05/17(火) 19:51:39.91ID:ctsYjtq9
>>631
なんで当たり前なの?
すべてのディレクトリでエラーになるという仕様の可能性もあった。
実際Mac OS Xはそうなっているそうだし。
0633login:Penguin2016/05/17(火) 20:20:39.32ID:xRMSTkW7
ファイルシステム上では hoge.txt と HOGE.txt は共存可能だから
Linux では単純に別ファイル扱いだけど Windows サブシステムでは
同一視される変な仕様だから折衷案でそうなったんだろ
0634login:Penguin2016/05/17(火) 20:34:57.45ID:D/UYe8Ee
>>632
Mac OS XもUFSは大文字小文字区別するよ
OSじゃなくてfile systemの仕様だから
FS内部関数のlookupの仕様
0635login:Penguin2016/05/17(火) 20:55:31.84ID:ctsYjtq9
>>634
めんどくさいなあ、もう。
じゃあMac OS X 標準のHFS+だと区別しない、と書きなおす。
でもWSLのファイルシステムが標準で区別することは、
当たり前じゃなくてありがたい仕様じゃないの?

ついでだけど、ファイルシステムを見ようとするとエラーになるわ。
$ df -T
df: cannot read table of mounted file systems: No such file or directory
0636login:Penguin2016/05/17(火) 21:03:49.42ID:D/UYe8Ee
>>635
言っていることがよく分からない
「WSLのファイルシステム」ってのは何のこと?
もしかしてWSLがNTFSドライバをわざわざ独自実装してると思ってるの?
>>634に書いたことでその辺のこともカバーしてるんだけど分かりにくかったかな
WSLはWindowsのNTFSドライバに仕事丸投げしているはずで
そこでignore caseならWSLでcase sensitiveにすることは不可能
0637login:Penguin2016/05/17(火) 21:04:48.85ID:wmT3kSQ3
>>635
/proc まだ実装されてないんでなかった?
/proc/partitions とかが開けないってだけだと思うけど。
0638login:Penguin2016/05/17(火) 21:32:04.71ID:ctsYjtq9
>>636
自分は /mnt/c 以下はNTFSをマウントされて、それ以外はext4あたりなんじゃないかと想像してた。
それ以外のディレクトリで hoge.txt と HOGE.txtが共存できるのはそのせいだと。
しかし $ mount を実行してもそれっぽい結果にならないんで困惑中。

全体をNTFSが管理しているのなら、なんで /mnt/c 以外では大文字小文字が区別されんの?

>>637
あ、なるほど。 /proc に依存しない確認方法ってある?
$ sudo /sbin/parted -l
は何も返さなかった。
0639login:Penguin2016/05/17(火) 21:47:22.48ID:D/UYe8Ee
>>638
そもそもNTFSはフォルダ内にFOOもfooも同時に持てる
NTFSはPOSIXサブシステムのためにPOSIX互換があるから
けどWindowsサブシステムでは大文字小文字区別しないから
Windowsサブシステムは自分が使う領域にはFOOがあればfooは作らない
そういうセマンティクスだから/mnt/cではWSLがそれに合わせないと
Windowsサブシスタム側のアプリが困ってしまう
0640login:Penguin2016/05/17(火) 21:49:17.39ID:D/UYe8Ee
ちなみにロングファイルネーム拡張が入る前のFAT内部では
パス名にアルファベットは大文字しか使えず
参照時に大文字と小文字は区別しなかった
0641login:Penguin2016/05/17(火) 21:49:22.14ID:xRMSTkW7
>>638
> 全体をNTFSが管理しているのなら、なんで /mnt/c 以外では大文字小文字が区別されんの?

だからNTFSでは大文字小文字は区別されるのに
WindowsAPIでは区別しないから面倒くさいことになってるんだろ
0642login:Penguin2016/05/17(火) 21:54:26.22ID:D/UYe8Ee
>>638
mountコマンドによれば
/以下はrootfsっていう特殊なファイルシステムのようです
/dev/の下にもdisk deviceはない

/dev/adssはAndroid subsystem時代の名残ですかね
0643login:Penguin2016/05/17(火) 22:03:11.71ID:D/UYe8Ee
ちなみに
$ cd
$ echo foo > foo
$ echo FOO > FOO
$ ls
foo FOO
$ cat foo
foo
$ cat FOO
FOO
だが同じファイルをcmd.exeで
> cd \Users\誰かさん\AppData\Local\lxss\home\リナックスの誰かさん
> dir
xxxxxx 0 FOO
xxxxxx 4 foo
> type foo
foo
foo
> type FOO
foo
foo
となる
Build 14342ね
0644login:Penguin2016/05/17(火) 22:12:33.48ID:D/UYe8Ee
>>514
それから上でinitに話が出てるけど
psして出てくるのは/sbin/initではなくて/init
これは一部モジュールがLxssManager.dllと共有されてると思われるLxss独自のコマンド
たぶんLinuxサブシステムから起動されて渡された情報を元に
普通のLinuxでは/etc/init.d/rc等の仕事をやるコマンド
hostnameの設定とか
/etc/hosts, /etc/resolv.confもこいつが作ってるみたい
情報の授受に使うモジュールが共通なのだろう
0645login:Penguin2016/05/17(火) 23:36:52.54ID:ctsYjtq9
遅くなりました。いろいろありがとう。
> なんで /mnt/c 以外では大文字小文字が区別されんの?
この質問は、理由や動機じゃなくて仕組みを聞いたつもりだったんだけど、
WSLがこのディレクトリを特別扱いしているということなのね。

>>643 は大変勉強になりました。
しかし自分の環境では
\Users\誰かさん\AppData\Local\lxss
が見つからない。
\Users でファイル名 lxss で検索しても引っかからない。うう。
0646login:Penguin2016/05/17(火) 23:38:48.37ID:+GSpJ1gK
大文字小文字区別のcase sensitive file systemの投票はここ。
https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/13375260-bashonwindows-must-support-a-case-sensitive-file-s

OSXでandroidビルドする時にこれが原因でビルドエラーになったことがあるな。
0647login:Penguin2016/05/17(火) 23:42:02.44ID:+GSpJ1gK
>>644
WSL用のinitの挙動は知りたいね。
現状なんもやってない気がするけど。
0648login:Penguin2016/05/18(水) 00:09:18.85ID:J6kxD2XB
>>638
君の知識レベルで手を出すのは早いと思うよ
0649login:Penguin2016/05/18(水) 00:26:53.60ID:pM439fj4
ぶっちゃけWSLはアプリを動かす環境であって
デバイスを管理する環境じゃないんだわ。

目標はハードウェアのエミュレータじゃないので、
ファイルシステムがどうとか、そういうのは
後回しにするべきだし、実際後回しなんだろ。

ディスクなんかはWSLを通さずにWindowsから
直接管理すればいいわけで、つまりお前使い方間違ってるぞ。
0650login:Penguin2016/05/18(水) 00:27:52.71ID:SNqH199o
>>645
エクスプローラのフォルダパス欄に↓の文字を貼り付ければ一発で行ける
shell:UsersFilesFolder\AppData\Local\lxss
0651login:Penguin2016/05/18(水) 00:44:40.66ID:W2GL/G7L
>>650
ありがとう。行けました。
つうかシステムファイルの表示してなかったんで設定変えました。
まだWin10自体慣れてないな…。
0652login:Penguin2016/05/18(水) 00:53:16.99ID:12S2FVU/
つうかbashかcmd.exe使ってよ
エクスプローラかよ
0653login:Penguin2016/05/18(水) 01:12:12.63ID:CGIuw4Kk
Ubuntuでやりたいことをしたかったら、WSLでなくHyper-VにUbuntu入れろってことだ。
Win10 Proならできるだろ。
0654login:Penguin2016/05/18(水) 01:31:24.21ID:12S2FVU/
そういう話は誰もしてない
0655login:Penguin2016/05/18(水) 02:03:29.14ID:12S2FVU/
>>647
>>644以外だと全てのbashが終了するのを待ってる

せっかくなので書き残しとく
$ cat /proc/sys/kernel/osrelease
3.4.0-Microsoft
0656login:Penguin2016/05/18(水) 09:31:02.38ID:pM439fj4
>>653
Ubuntuでやろうとしてるんじゃなくて
Windowsでやってるんだよw

Windowsでも開発系色々動くしな。
それがさらに強化されるってこと。
0657login:Penguin2016/05/18(水) 13:20:35.03ID:W2GL/G7L
そう言えば、 >>568 のリンク先の記事に
> Bash On Windows もおそらくこういった問題があると思います。
> (追記: 例えばファイルシステムが NTFS 上なので ext4 と同等のファイル属性が持てません。)
って書いてあったけど、
これ「拡張ファイル属性」ってやつ?
それがNTFSと互換性がないとして、そんなに問題なんだろうか?
0658login:Penguin2016/05/18(水) 15:39:27.25ID:8Z0BHge9
>>657
chattr相当が出来るioctlがあるのが前提だと困るだろうけど
そんなコマンドは殆どないんじゃないかな?
0659login:Penguin2016/05/18(水) 17:30:30.28ID:12S2FVU/
lxrun /setdefaultuserで設定出来るデフォルトユーザは
HKEY_USERS\xxxxx\SOFTWARE\Microsoft\Wnidows\Current\Version\Lxss
にDefault{Usernane, Uid, Gid}として書いてあるね
起動シーケンスは結構単純だね
WindowsからWSLのコマンド実行も出来る

C:\Users\xxxxx>bash -c 'pwd'
/mnt/c/Users/xxxxx

C:\Users\xxxxx>bash -c ‘echo $HOME’
/home/yyyyy

C:\Users\xxxxx>bash -c ‘ls $HOME’
echo.sh

C:\Users\xxxxx>bash -c 'cat $HOME/echo.sh'
echo This is a test

C:\Users\xxxxx>bash -c '$HOME/echo.sh'
This is a test
0660login:Penguin2016/05/18(水) 18:51:11.50ID:12S2FVU/
>>343
ttyはもう結構出来てるんじゃないか?
相手がWindowsコンソールとはいえvimとか動いているし
ttyデバイスはかなりややこしいセマンティクスを持っているから
独自実装だと非常に細かい所までttyデバイスを実装できてるとも思わないけども

ptyはttyがちゃんと出来ていればそれほど難しくない
作った時にpipe的接続したり読み書きでバッファリングしたり
kernelのソース見るとptyがらみは1000行くらいしかない
drivers/tty/以下は全部で20000行くらいあるんだけど
ptyないとdebconfのpostinst辺りで芳しくないケースあるから
ちゃんと作ってくると思うけどね
0661login:Penguin2016/05/18(水) 18:52:15.17ID:7oVJDw8v
>>638
> なんで /mnt/c 以外では大文字小文字が区別されんの?

「/mnt/c 以外」とは具体的にどのドライブ?(あるいはディレクトリ?)でしょうか?
0662login:Penguin2016/05/18(水) 19:00:14.49ID:7oVJDw8v
すみませんが、>>643のファイル FOO の実体は何ですか?
0663login:Penguin2016/05/18(水) 19:10:03.84ID:7oVJDw8v
>>659
Bashがパイプを受け付けてくれたら
WindowsコマンドとBashの連携が簡単になりそうですが
(環境を用意していないので、ガヤばかりですみません)
0664login:Penguin2016/05/18(水) 19:22:17.67ID:12S2FVU/
>>661
WSL内の/以下全部でしょ

>>662
よく分かってない
WSL側でFOOを編集したりしてると正しいサイズを表示することもある
「type foo」で二行出てくるのも分からない
大文字小文字違いの同名ファイルがないファイルではこういうことは起きない
どういう実装だとこういうことが起きるのだろうか
「type foo*」すると更に訳が分からない
sync; sync; syncも効果なし

ただし最後の「type FOO」はWin32なんで「type foo」したのと同じ
directory entryに最初に出てきた方にマッチしてる
その例ではfooをFOOより先に作ったから
directory entryないに先に出てくるfooがマッチしてるんだろう
二行出る意味はそれでも分からないが
0665login:Penguin2016/05/18(水) 19:35:09.93ID:12S2FVU/
>>663
pipeもredirectもダメです
エラー 0x80070057
ですって

bash -c と起動されたbashも
本物と違うWSLのbash.exeだから
-c の引数にbashの文法全てを書けるわけじゃないです
例えば|がうまくいかない
>も独自解釈してるみたいだが詳細不明
0666login:Penguin2016/05/18(水) 23:59:28.55ID:W2GL/G7L
>>658
そうだよね。どうもありがとう。

>>661
もう正解は答えてもらってるので一言、
自分がそうなんだけど、初心者なのに書き込むのは勇気いるよね。
お互いがんばってスキル上げよう。
0667login:Penguin2016/05/19(木) 00:51:30.84ID:go9nYzkE
>>659 >>665
おお、 bash.exe -c でWindowsコマンドとしてWSL内でコマンド実行できるのを初めて知りました・・

WSL内のbashではパイプラインもリダイレクトも大丈夫っぽいです。Win側ではダブルクォート使えばOKですね。
  C:\>bash.exe -c "find /etc -maxdepth 1 | grep hosts"
  /etc/hosts
  /etc/hosts.allow
  /etc/hosts.deny

bash.exeの出力を、Windows側のパイプには渡せないっぽいですね。
  C:\>bash.exe -c "find /etc -maxdepth 1 | grep hosts" | "C:\Program Files\Hidemaru\Hidemaru.exe"
   →エラー 0x80070057が秀丸エディタに出力される
0668login:Penguin2016/05/19(木) 01:08:44.07ID:8ZOG/1a3
>>667
ああそうか
cmd.exeはシングルクオートは駄目かw

ただ
> cd \Users\xxxx\AppData\Local\lxss\home\yyyy
> bash -c “echo test > test.txt”
とファイルを作ってもWSL側からは何故か見えませんなあ
> type test.txt
test
なんだけど
$ cd $HOME
$ ls
してもない
$ cat test.txt
も駄目
$ echo test2 > test2.txt
するとtest.txtと同じ所にWin32世界では見られるのに
一度セッション終了しても駄目
0669login:Penguin2016/05/19(木) 01:14:49.87ID:go9nYzkE
bash.exe -c でコマンド実行で、対話的な機能もちゃんと動く感じっすね。 微妙に便利?

C:\>bash.exe -c "vi ~/.bashrc" で vi呼び出しての編集動作OK。エスケープシーケンス効いてカラー表示可
C:\>bash.exe -c "python3" で WSLでプリインストールのPythonの対話型シェルに入ることもOK
0670login:Penguin2016/05/19(木) 01:29:11.73ID:go9nYzkE
>>668
WSL内で cd $HOME すると、デフォルトのユーザが root だから /home/yyyy ではなくて /rootに行ってる気が
なのでファイルはそっちにあるんじゃないかなー
0671login:Penguin2016/05/19(木) 07:04:33.46ID:lczX8MNb
>>664
> >>661
> WSL内の/以下全部でしょ

ちょっと良く分からないのですが、
>>629のignore caseなcpが失敗するのは、/mnt/cを含めた/mnt/c以下のすべてのディレクトリということでしょうか?
> これ、/mnt/c/ディレクトリ以下でだけ失敗するな。
とあるのは、例えばNTFSでフォーマットした/mnt/dでは、ignore caseなcpは成功するということでしょうか?

あと、>>643を実行したのが/mnt/c以下のディレクトリということなら、
これはcase sensitiveな挙動になっていて、先程のcpの挙動と異なっており、
WSLでのファイルのcaseの扱いに統一感がないことになります。

手元に環境がなくて自分で試してみることができずに申し訳ないですが、
WSLでのファイルのcaseの扱いがいまいち分かりませんね。
これは、まだ作り込まれていないからなのか、意図されたものなのか。

>>643のファイル FOO の件もありがとうございました。
良く分からないですね。

>>666
お互い頑張りましょう。
0672login:Penguin2016/05/19(木) 07:09:18.99ID:lczX8MNb
>>667
秀丸エディタは、標準入力を受け付けるのでしょうか?
> bash.exe -c "find /etc -maxdepth 1 | grep hosts" | more
としてもエラーになりますか?

あと、どなたか、コマンドプロンプト上で以下のコマンドを試してもらえないでしょうか。
> dir | bash.exe -c "grep DIR -"

これら2つが実行可能なら、多少煩雑ですが、
WindowsコマンドとBashの連携がそれなりにできることになりますね。
0673login:Penguin2016/05/19(木) 07:30:26.95ID:go9nYzkE
>>672
>秀丸エディタは、標準入力を受け付けるのでしょうか?

秀丸エディタは何気に標準入力に対応してたりします。
秀丸のEXEにPATHを設定しておくと dir/s | hidemaru みたいなことが出来て便利なので、自分はたまに使ってますね

>C:\>bash.exe -c "find /etc -maxdepth 1 | grep hosts" | more
>ィ0・・・・:
>
>0
>x
>8
>0
>0
>7
>0
>0
>5
>7

>C:\>dir | bash.exe -c "grep DIR -"
>エラー: 0x80070057

bash.exe は、残念ながら入力・出力どちらの場合のパイプにも非対応みたいですね・・
0674login:Penguin2016/05/19(木) 10:42:20.48ID:77lEcDSc
ぜんぜん別の話。

このスレの150あたりでXの動作が可能かで揉めてたけど、
実際に動かしてる記事があったんで貼る。
WindowsとUNIXが再び融合する日 - 阿久津良和のWindows Weekly Report | マイナビニュース
http://news.mynavi.jp/articles/2016/04/18/windows10report/
http://news.mynavi.jp/photo/articles/2016/04/18/windows10report/images/003l.jpg
> フリーのWindows用Xサーバーである「Xming」をインストールしたところ、
> いくつかのGUIアプリケーションは正しく起動した。
0675login:Penguin2016/05/19(木) 13:28:27.17ID:77lEcDSc
あ、2chブラウザで見るには画像はこっちのが良かったな。
http://n.mynv.jp/articles/2016/04/18/windows10report/images/003l.jpg
0676login:Penguin2016/05/19(木) 13:41:17.38ID:8AyDEV15
Bash on Windowsの中から自分が本物のLinuxカーネルじゃなくてWindows Subsystemで動いてるっていうのを確認する方法ある?
0677login:Penguin2016/05/19(木) 14:57:18.42ID:yGUwd53d
/procがちゃんとあるかどうか見ればいい
0678login:Penguin2016/05/19(木) 15:36:51.08ID:V3LtEN7Q
これが正しい確認方法じゃね?

$ cat /proc/sys/kernel/osrelease
3.4.0-Microsoft
0679login:Penguin2016/05/19(木) 16:51:48.60ID:SzL3Sshj
>>678
それ見るのが確実そうね
ありがとう
0680login:Penguin2016/05/19(木) 21:02:41.42ID:8ZOG/1a3
>>674
自分とこでも動いてるよ
xlogoとかw
0681login:Penguin2016/05/19(木) 21:06:49.97ID:8ZOG/1a3
>>678
unameの方はまだ修正してないな
0682login:Penguin2016/05/20(金) 12:53:33.82ID:evAehgyn
>>674
> いくつかのGUIアプリケーションは正しく起動した。
むしろ動かない奴の情報が欲しいわ
0683login:Penguin2016/05/20(金) 20:40:38.43ID:qu3ZSRBD
>>682
例えばxtermはptyが必要だから動かない

あとマルチスレッド対応のライブラリも一部駄目みたい
マルチスレッド使ってなくても
Xlibを置き換えるために作られたXCBってライブラリがあるんだが
xwudを使おうとすると
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
となって終了する
xwudなんてmulti-thereadedなわけないけど
ライブラリの初期化で失敗してる
ただしXCB使うやつが全部ダメなわけなじゃない
bitmapとかは動く

onekoも動いたり動かなかったり
debagger, tracerが動かないから理由は分からん
0684login:Penguin2016/05/20(金) 20:47:29.39ID:qu3ZSRBD
あれ?
gdbもstraceも動くな
一昨日は/proc/PID/なんとかがアクセス不能だとか言って動かなかったのに
xwudも動くようになってる
この前はWSLが不安定になっていたのかな?
0685login:Penguin2016/05/20(金) 20:54:28.32ID:qu3ZSRBD
後はR, NumPy, SciPy, gnuplotも動いていて
データ解析なんかもも既にWindows上で出来てます
cygwinがあれば必要ないかもしれないが
自分はWindowsじゃない時はノートPCもubuntuなんでWSLは快適
Windowsの環境整備に時間を取られないのはよい
0686login:Penguin2016/05/20(金) 21:04:06.23ID:4RoC/6OL
結構実装速いみたいね。Cygwin使わなくて良くなる日は早く来そうだな。
■ このスレッドは過去ログ倉庫に格納されています