探検


【Bash】Windows Subsystem for Linux【WSL】4

■ このスレッドは過去ログ倉庫に格納されています
2018/11/09(金) 16:03:28.29ID:WWmxQ0j3
Install the Windows Subsystem for Linux
https://docs.microsoft.com/en-us/windows/wsl/install-win10

前スレ
【Bash】Windows Subsystem for Linux【Ubuntu】3
http://mao.2ch.net/test/read.cgi/linux/1528141781/
2019/02/25(月) 13:50:12.63ID:GAD3Mm4D
>>641
そもそもゲイツが潰れかけてたアップルに資金提供して蘇生させたんだがな
2019/02/25(月) 13:58:12.67ID:7lHkoHnS
Send salt for Apple.
2019/02/25(月) 15:21:19.68ID:8XHoG7Po
大流行の“塩◯◯”ブーム!今秋に新登場の「塩りんご」って何?
https://news.cookpad.com/articles/3007
788782
垢版 |
2019/02/26(火) 10:58:28.41ID:sKf13l5K
str=`ruby -e 'print "赤い糸".encode( "CP932" )'`

grep -ir "$str" ./*

"赤い糸"という文字列を、Ruby で、sjis に変換して、
(Ruby にはデフォルトで、nkf が入っているので、Linux にはnkf を入れていないため)
それで、Windows側のsjisのファイルをgrep したら、

「バイナリファイル ./桃子.txt に一致しました」とひとまず一致したけど、
sjis のファイルは、バイナリファイルとみなされた

一致箇所が複数あるけど、何回一致したかはわからないし、一致した行もわからない

ただし、ファイル名は自動的に、UTF-8 に変換されている
2019/02/26(火) 11:18:24.03ID:s+ae8hWg
-a
2019/02/26(火) 12:16:46.65ID:PFa9DcgV
いい加減SJISのファイルを辞めるべきだろ
なんで日本専用の文字コードを使うんだよ?
海外対応考えてないのか?
2019/02/26(火) 16:38:36.41ID:7+2bK9Kc
ヘッダーにcharset=Shift_JISとある5ch.netの悪口はやめたまえ
792login:Penguin
垢版 |
2019/02/26(火) 17:06:42.25ID:5TzeVwWM
そんなあなたに古典ツール nkf。今となっては速度面で見劣りするけど便利なので生き残っている。
2019/02/26(火) 18:08:33.01ID:6Yh57sAf
rgとかpt使えば、grepみたいに遅くないし、utf/euc/sjis混ざってても探せるのに
794login:Penguin
垢版 |
2019/02/26(火) 19:26:25.17ID:5TzeVwWM
grepが遅いようにみえるのはディレクトリツリー検索でファイル除外できないからであって、単体ファイルの検索ならgrepのほうが40%近く速いよ。
2019/02/26(火) 20:11:22.57ID:XzHEvWCk
>>790
だいたいExcelのせい
インターネットバンキングからcsvおとして解析かけるのに一旦utf-8に変換しないといけないし。
796login:Penguin
垢版 |
2019/02/27(水) 08:51:07.82ID:sR2G3Bgi
全角半角混在前提なSJISは良い文字コードなんだけどな。
2019/02/27(水) 08:55:51.51ID:9mrLXeAG
多言語の文字を混在出来ないけどね
2019/02/27(水) 09:17:13.45ID:AO45prtq
ロ、ロシアとギリシャなら…
2019/02/27(水) 09:41:05.93ID:9mrLXeAG
5ch(2ch)するだけなら問題ないかw
つうかDATがSJISなんだよな・・・
2019/02/27(水) 09:48:37.16ID:mMO8wKo5
5chもグローバル化の波に乗るかもよ?笑
多言語板が出来そうだが、キリル文字の荒しとかでそう。
まあそしたらAA香具師とか死にそうだけど。
2019/02/27(水) 09:49:38.28ID:AO45prtq
utf8の板もあるでしょ
2019/02/27(水) 11:20:15.95ID:8UbVg31f
>>797
ロケール切り替えれ
2019/02/27(水) 11:51:22.32ID:nAz83djJ
JISとソート順が変わるから無理でしょ
2019/02/27(水) 12:55:40.08ID:LKmA40Mc
>>802
馬鹿なの?
2019/02/27(水) 13:49:44.64ID:aA+I+Xs2
🐧Д가
5chの場合、全部SJISで一部の板は文字参照としてunicode文字が表示できる
キリル文字はそもそもSJISに収録されてる(unicode前から顔文字に使われてたし)
2019/02/27(水) 15:54:33.54ID:PiDeIxjt
ファイルアクセス超遅い
configure終わらん
virtual boxにいれたopensuseのが速い謎
2019/02/27(水) 15:58:21.21ID:PiDeIxjt
virtual boxのが速いってのは
ちゃんと仮想osと共有してるホストwindowsのディレクトリで
仮想oSから作業しての話ね。
ほんと謎
2019/02/27(水) 16:09:42.42ID:Aj2TLoeR
そりゃWindowsと協調して動作するよりも
Windowsと切り離して動かしたほうが速いだろうなとしか
当たり前じゃね?
2019/02/27(水) 16:44:28.64ID:9mrLXeAG
物にもよるけどVMだとディスクキャッシュが効いて、ホストで動かすより速いこともある。
ディスクのスピードテストしてみれば分かる。
2019/02/27(水) 17:34:56.64ID:PiDeIxjt
vboxsfとしてマウントしたwindowsディレクトリだから
当然windowsとは協調動作してますよ。
2019/02/27(水) 17:57:06.61ID:Aj2TLoeR
だからそれ以外の話だよ

システム環境をチェックするconfigureが
共有ディレクトリを多量にアクセスするわけなかろう
812login:Penguin
垢版 |
2019/02/27(水) 20:04:34.44ID:whlDljU3
ロケールを変えて問題解決できたためしがない。
2019/02/27(水) 20:05:13.11ID:w/aJ+WJ/
cofigureが遅いのは、ファイルアクセスのせいはあまり関係ないと思う。
makeはそれほど遅くない。
cygwinと同じでforkが遅いせいだとおもう。
cofigure遅いといっても、cygwinにくらべたら、wslはだいぶ速い。

でも、native linuxからするとくそといいたくなるが。
2019/02/27(水) 20:58:42.51ID:Aj2TLoeR
Windowsにfork相当の機能がないのがそもそもの問題なんだよな。
今のMSならカーネルにforkもしくはforkが速くなる機能を
実装してくれると思う。
2019/02/27(水) 21:40:08.63ID:8UbVg31f
WSLってWIN32API使ってるんだっけ?
2019/02/27(水) 21:44:35.81ID:AA1UvxAI
>>813
なるほどそっちか。
たまにfork自体を失敗するMSYS2よりマシかもしれんけど。
となるとVMつかった方がいいな。
2019/02/27(水) 21:51:48.18ID:Aj2TLoeR
>>815
使ってる部分もあると思うけど、NTカーネルAPIがWindowsの
本当のAPIでそれを利用する形でWin32APIが作られてる。
それと同じレイヤーでWSLが実装されているわけだから
基本的にはWin32APIを使わずにNTカーネルAPIを呼び出してるはずだよ
2019/02/27(水) 21:54:07.99ID:Aj2TLoeR
>>816
VMは実質二台のパソコンを使うようなもので、
ホストOSとのデータのやり取りが面倒なんだよ。

つまりWindowsのテキストエディタを使って
プログラミングしてLinuxで動かすとかね。
2019/02/27(水) 22:19:04.73ID:8UbVg31f
>>817
だったらfork相当の機能がなくても困らないじゃん。
いにしえのPosixサブシステムと同じことすればいいんだし。
2019/02/27(水) 22:23:26.26ID:Aj2TLoeR
>>819
> だったらfork相当の機能がなくても困らないじゃん。
なんで?

> いにしえのPosixサブシステムと同じことすればいいんだし。
だからいにしえのPOSIXサブシステムも遅かったんだろ?
2019/02/27(水) 22:24:37.49ID:lrHvmsqR
>>814
RtlCloneUserProcess
2019/02/27(水) 22:28:12.65ID:Aj2TLoeR
>>821
あー、はい。そのAPIがLinuxのforkに比べて遅いんでしょうね。
調べてくれてありがとね
2019/02/27(水) 22:41:23.00ID:AA1UvxAI
>>818
wslで/mnt/c経由でアクセスするのと、
virtual boxで /media/... 経由でアクセスするのと全く一緒だけどな。
2019/02/27(水) 23:49:53.81ID:Aj2TLoeR
>>823
一緒だからこそ、そこで差は出ないってことだよ。
つまり、差がでるのは共有ディレクトリではない所だということ
ここまですぐにわからんかね?
2019/02/27(水) 23:52:36.32ID:Aj2TLoeR
あ、速度の話と勘違いしたわw

>>823
virtualboxで/media経由でアクセスするには、共有フォルダの設定が必要で、
さらに仮想マシンのOSにGuest Additionsをインストールしなければいけない
もちろんOSのインストールも必要だな。

気軽さがぜんぜん違うよ
2019/02/28(木) 01:07:02.22ID:m2zXh+rn
>>825
WSLでxで日本語使えるまでの設定どんだけ苦労したかwww
絶対virtualboxのが設定まで含めて楽w
2019/02/28(木) 02:04:31.68ID:Dvh8AkCt
>>822
余談ですが、WSL Debian で sh (dash) を ksh93 で代用した時は、fork 処理が sh より速かったように思います。
2019/02/28(木) 06:09:50.66ID:sQTb/GjV
>>827
http://magicant.txt-nifty.com/main/2007/12/post_b430.html
2019/02/28(木) 06:22:45.82ID:vtreF7rX
前にも書いたけど、WSLのforkが遅いのはウイルス対策ソフトの影響もあるようだ。リアルタイム検索止めるとforkが早くなる。
2019/02/28(木) 10:51:24.66ID:kUWuwo3i
defender糞遅くなるからビルドするときとか毎回切るわ
2019/02/28(木) 10:54:38.51ID:L+/5t2Z7
>>827
ksh93は、他のシェルならforkを使うような場面でも
forkを使わずに(無理やり?)実現している場合があるので
fork処理が速いではなく、fork回数が違っている可能性が高い
2019/02/28(木) 10:55:21.10ID:L+/5t2Z7
っていう話が>>828にも書いてあるな
2019/02/28(木) 10:55:59.95ID:L+/5t2Z7
>>826
> WSLでxで日本語使えるまでの設定どんだけ苦労したかwww

WindowsがあるんだからXいらないよ
2019/02/28(木) 11:12:40.82ID:4mZsLAuA
LXDE試したことあるけど、デスクトップ環境を部分的にしか動かせない。
WSLでそこまでやるのはもう趣味レベル。


単にGoとかのスクリプト動かしたいけどWindowsだと面倒くさい時にしか使わない。
コンパイルやビルドは素直にVMでやったほうがいいわ。
2019/02/28(木) 12:05:44.31ID:tUjvxMfH
>>833
日本語ファイル扱えねーだろ
2019/02/28(木) 14:12:39.43ID:L+/5t2Z7
扱えるけど?扱えないものの名前言ってみ
837login:Penguin
垢版 |
2019/02/28(木) 18:42:40.03ID:jXbhkhqb
𡈽𡌛𡑮𡢽𠮟.txt
2019/02/28(木) 21:16:47.23ID:L+/5t2Z7
>>837
普通にメモ帳でそのファイル名で保存できた
っていうかそれ、日本語ファイル名じゃないしw
2019/02/28(木) 21:54:14.38ID:SCNz79Se
ローマ字だってちゃんとした日本語ですよ?
840605
垢版 |
2019/02/28(木) 22:34:56.05ID:V5kpWLNn
>>831
それ、聞いたことある。自分ではkshをうまく扱えなくて、つかってない。
2019/03/01(金) 06:27:18.39ID:kJeSfDT7
>>839
837のどこら辺がローマ字なの?
2019/03/01(金) 11:10:13.43ID:O9KnEWE/
hyper-vのパススルーディスクで、別SSDにインストールしたubuntuを使うと、I/Oのベンチで
windows側と比べて95%ほど出てるのでとても快適な環境なんだけど、linuxゲストだと
hyper-vの動的メモリ管理がひどくて、2GBから16GBで動的割り当てにしていると、linux側で2GBも
使ってないのに、すぐに16GB確保されちゃう。
・WSLは遅いし
・virtualbox with hyper-vは、別ドライブからの起動がうまくいかないし
・vmwareはhyper-vと仲悪いし
で、決定打に欠ける。
メモリ安くなったから、64GBにして解決するのもありかもしれない。
2019/03/01(金) 15:53:22.96ID:jkxzyZN9
>>838

ファイル名はOSの管轄だからメモ帳とは関係ないだろ

NTFSのファイル名はそもそもUTF16が仕様だし
NT3.1でも対応したフォントさえあれば可能
844login:Penguin
垢版 |
2019/03/01(金) 17:13:30.79ID:cp/SMV8Z
>>843
batはロケール依存。今もUnicodeでファイル名を渡せない仕様。
2019/03/01(金) 17:21:53.61ID:dS+D8oye
>>842
Dynamic MemoryなんてWindowsゲストでもうんこでや(ボソ
2019/03/01(金) 19:02:03.19ID:Qb5Iweg/
>>843
カーネル回りはUnicode前提で作られているけど
上部はWin9xとの互換性のためにShiftJISを採用
W系文字列とA系文字列を変換しつつ動いてる。

VC8.0からワイド文字がデフォルトに変更された。が・・・
未だにマルチバイトでビルドされたソフトも存在する。
2019/03/01(金) 19:20:37.97ID:yAOTadDR
それがOSの機能・仕様となんの関係が
2019/03/01(金) 20:46:16.78ID:+jAw0umc
\
   ̄ヽ、   _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     `'ー '´
      ○
       o

        //三ミ彡ミヽ
       //////⌒ ⌒ヾ ヽヽ
       /.////ト、     i | | |i
       |.| | | | ト、 ,二、| | | ||
    ハ ハ | | | | / |   // | | |
    | } | } | | | |;;竺、、、///} ||
    { V .} | | | |ミ三ヲ` |/ / |/}
      〉へと.ヽ| |こン / // ィ|    と思うしぇしぇしぇであった
     }イ`'(  } `ー, へ、´ /| ||
     \ヽ  ノ  { ノ`T⌒ }//
2019/03/01(金) 20:51:11.84ID:eEXh6B3P
>>844
> batはロケール依存。今もUnicodeでファイル名を渡せない仕様。
それはお前がコマンドプロンプトをsjisで起動してるからだろ
chcpでコードページを切り替えろよ
2019/03/01(金) 20:52:31.43ID:eEXh6B3P
>>846
> カーネル回りはUnicode前提で作られているけど
> 上部はWin9xとの互換性のためにShiftJISを採用

上部ってなに? Windowsと関係ない
一部のアプリがSJISを使っているからって、
WindowsはUnicodeなんだけど
851login:Penguin
垢版 |
2019/03/01(金) 21:35:38.99ID:cp/SMV8Z
>>849
マルチバイトでビルドされたソフトには異なるロケールで引数渡しできない。文字化けする。>>846 さんの言ってることが現実。
Windows向けPerlディストリビューションのStrawberry Perlもマルチバイトでビルドされたソフトのひとつだよ。
2019/03/01(金) 21:53:28.23ID:eEXh6B3P
だからアプリの問題ですよな。
OSと関係ない
853login:Penguin
垢版 |
2019/03/01(金) 22:09:02.38ID:cp/SMV8Z
>>852
残念ながら、OSはわざわざシステム本来のロケールに引数を復元してからアプリに渡すのでアプリの問題じゃなくてOSの問題なのよ。
つまり chcp 65001 しててもアプリにはコードページ932の文字列が渡される。アプリ側ではどうしようもない。
2019/03/01(金) 22:14:57.44ID:bitY+Vcd
> OSはわざわざシステム本来のロケールに引数を復元してからアプリに渡すので
ダウト。そんな事しない
855login:Penguin
垢版 |
2019/03/01(金) 22:26:44.58ID:cp/SMV8Z
>>854
え?ほんまでっか!?
2019/03/01(金) 22:35:00.92ID:xXgi/gLf
別に引数渡ししなくてもプロセス間で情報をやり取りする方法あるしな。
2019/03/01(金) 23:10:32.94ID:0dHgJ/+e
chcpはファイル入出力のコードページには何も影響しないよ。
2019/03/01(金) 23:16:24.53ID:xXgi/gLf
ファイル入出力?何言ってんだ?そんな話はしてねえぞ。
2019/03/01(金) 23:34:27.27ID:3DxW6MgJ
OS(カーネル)はそんなことしない、引数の値をただ渡すだけ。そもそも、OSはどこにも噛んでない。
シェルの問題、パイプを噛ませるならともかく。
860login:Penguin
垢版 |
2019/03/01(金) 23:39:47.26ID:cp/SMV8Z
Visual Studio でビルドしたバイナリだとmain()で始まるバイナリであっても、
GetCommandLineW() と CommandLineToArgvW()でオリジナルに近いコマンド引数をUTF-16で得ることはできるね。
2019/03/02(土) 06:36:09.26ID:hgCaRIdz
>>849
実際に試しもしない馬鹿
2019/03/02(土) 07:43:15.22ID:3tBpscIJ
>>861
何を試すか示されてないのに、
どうやって試せと?w

お前なら何を試すんだ?
2019/03/02(土) 09:02:13.62ID:wNBM8kkz
ここでのOSの機能ってのはNTkernel<各種サブシステムを含む<コマンドラインを含む標準機能
って定義で揉めているの?

また文系が本質に関係ない所で暴れているのか
2019/03/02(土) 09:44:12.29ID:DuLnb6JR
ファイル名の話をしてるかと思ったら突然batがどうこう言いだして次はAPIか
何がやりたいのやら
2019/03/02(土) 10:26:59.19ID:LvykRUjv
カーネルがUnicodeでシェルがShiftJISだった
それだけ
2019/03/02(土) 10:41:42.34ID:RR0lzZ2f
コマンドプロンプト自体は少しずつ進化していってる。
昔は表示できない非SJIS文字が多かった。単にchcpしただけでは対応できなかった。
2019/03/02(土) 11:57:27.85ID:3tBpscIJ
>>863
そうじゃない。

OSはAPIを提供している。
その中には古いOSやアプリとの互換性を保つためのAPIもある。
その互換性を重視したAPIを使ったアプリの仕様は
アプリの問題でありOSの問題ではないということ
2019/03/02(土) 12:01:48.79ID:3tBpscIJ
>>865
> カーネルがUnicodeでシェルがShiftJISだった

それだけだと中国でもShiftJISみたいだろw
それにシェルとコマンドプロンプトの違いもわかってない。
Windowsにおいてエクスプローラーもシェルだし、こっちは完全Unicode対応

Windows NT系は最初からUnicode。コマンドプロンプトもUnicode対応だが
互換性のためにデフォルトでは「Unicode対応でないプログラムの言語」の設定に
対応したコードページになっておりこれは変更できる。

ここまでかいて「それだけ」と言えるんだよ
2019/03/02(土) 12:06:21.70ID:jIefrdBL
古いAPIをいまだに使ってるライブラリが存在するのが問題ってのは全然問題じゃない。
互換性は必要なのだからOSの問題でもない。アプリもメンテが大変だから対応でなくても仕方ない。
できないことをやろうとする利用者の問題だろ。
2019/03/02(土) 14:58:04.26ID:iPk0eRVU
取り敢えずおまえらが重箱の隅をつついてヽ(゚∀。)ノウェ―イってやってるってだけはわかったわ
そんなに文句垂れるならVM使うなり、サブマシンをサーバー化してSSH/MOSH,RDPでつなぐなりすればいいだけ。
WSLは成長途中で成熟すらしてないのに文句垂れるのはアホ。MsWinだって温故知新の如く開発をしている。それでもIEやレガシーシステム捨てないような阿呆のために互換性を捏ね繰り回して考えている。
我々利用者は限られた選択肢をどうするかだけだろ
利用者として要求するならインサイダープログラムにでもさんかしてフィードバックでもしろ。そうじゃなきゃ知識ある人間が文句垂れんなよ。
2019/03/02(土) 16:42:38.97ID:hG5hhj7h
>>870
そういう人どこにでもいるから気にしない。
WSLには本当に感謝してる人もいるってことを忘れないでね。
2019/03/02(土) 17:01:39.78ID:G3h8Fg2L
sjis は、国際化されていない。
日本国内だけしか使えない

一方、UTF-8 は、すべての国(多国間)で使える

だから外人は、sjis 対応では作っていないから、ほとんどのアプリでバグる。
漏れら日本人が、言語一覧表に表示される、何百もの言語に対応しないのと同じ

ただ、WSL がすごいのは、Windows側のsjis のファイル名を、
Linux側では、UTF-8 に自動的に変換して、読めるようにしている
2019/03/02(土) 17:08:19.12ID:RR0lzZ2f
>>872
逆。Unicodeのファイル名を可能な限りsjisで読めるように擬態してきたのがWindows NTのすごさ。
2019/03/02(土) 17:13:30.16ID:xq/X7dI2
どっちでもよい。
単純にWindowsの開発が凄いってことだ
2019/03/02(土) 17:29:48.20ID:f83cKfiP
Windows界隈でUnicodeというとUTF-16を指す、よね?
MSがすべての文字は16bitで固定的に表現できるって言ってた気がする
2019/03/02(土) 17:38:06.11ID:RR0lzZ2f
UnicodeとSJISでは文字の並びが違うからそのまま文字列ソートしたら違う結果になる。
SJISの並び順を維持したままソートするのがWindowsNTの地味な偉さでそ。
2019/03/02(土) 18:18:55.65ID:pBLQHhxf
ソートしてるのはOSではなくてアプリでしょ?
2019/03/02(土) 18:23:12.22ID:RR0lzZ2f
厳密にはアプリがソートする時に使うSJIS互換の比較関数をWindowsNTが提供している。もちろんアプリはそれを使う義務はないけど。
2019/03/02(土) 18:23:36.49ID:uciZqlqG
アプリもAPIもOSの一部の機能を使ってるからOSが基本だな。
リストビューとかソートするプログラムもソート順だけ指定してあとはOSにお任せ。
2019/03/02(土) 19:00:14.45ID:hG5hhj7h
>>874
ほんとそうですね。Linuxの10年先行ってる。
2019/03/02(土) 19:11:58.34ID:BtrOpgTJ
Windowsではなく、WindowsNTを作ったカトラー(DEC出身)がすごいのだ

むしろWindows1.0〜Meとの互換のためにNTの潜在能力を出し切れていない面が多い
2019/03/02(土) 19:13:52.27ID:hG5hhj7h
>>881
カトラーが作ったわけじゃないんだけどね。若い人かな?
883872
垢版 |
2019/03/02(土) 19:33:05.94ID:G3h8Fg2L
Windows API には、sjis/unicode 用の2つの関数がある。
すべて2種類作られている

MFC では、_T( )マクロで文字列を囲むと、両方に対応できる。
_T( "日本語" )
この型を、TCHAR 型と言う

そして、ソースコードのビルド時に、どちらのエンコードを使うか、指定できる

どの道、sjis を使うのは、日本人だけ。
外人のアプリでバグるから、どうしようもない

unicode なら外人も使うから、バグらない
2019/03/02(土) 20:08:17.87ID:f83cKfiP
外人が適当な実装するからバグりまくってた印象しかない
外人<Unicode対応したぜ!he he(ASCII相当な英数字しか通らない)
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況