探検


【Bash】Windows Subsystem for Linux【WSL】10

■ このスレッドは過去ログ倉庫に格納されています
1login:Penguin
垢版 |
2021/03/17(水) 19:14:43.97ID:14KJ8UmF
ついにWSL2が登場したぜー。こりゃ完全にLinuxだ。ヒャッハー!WSL最高!開発にLinuxは使わねぇー。Windowsで開発してLinuxは動かすだけや!

WSL2アーキテクチャ
https://www.atmarkit.co.jp/ait/articles/1906/14/news019.html

WSL 2では、仮想マシン環境が起動し、bashがコマンドを受け付けるまで2秒程度という速度で起動できる。
このため、コマンドプロンプトなどからwsl.exeなどを使ってbashコマンドを処理する時間は、
現在のWSL 1とほとんど変わらない。また、本物のLinux実行環境であるため、
これまで正しく動作できなかったアプリケーション、例えばコンテナシステム(Dockerなど)や
ユーザーファイルシステム(FUSEなど)も動作させることができる。その上で、現在のWSL 1と同等の機能と使い勝手を実現するという。

WSL 2はWSL 1を置き換えずに併存する
 WSL 2が登場したからといって、WSL 1は廃止になるわけではなく、引き続き利用可能である。

ファイル共有プロトコル「9P」でWSL 1との互換性を確保
 このように、WSL 2とWin32環境の間のファイル共有は、どちらも9Pを使うことになる。
 また、WSLからWin32プログラムを起動する「Win32相互運用性」では、最初にWSL側で、
実行ファイルを判別する必要がある。具体的には、実行ファイル先頭のマジックナンバー
(Win32ではMZ)を見て、LinuxのELF64か、Win32の実行ファイルなのかを判断する。

前スレ
【Bash】Windows Subsystem for Linux【WSL】9
http://mao.5ch.net/test/read.cgi/linux/1607589861/
2021/03/18(木) 13:39:44.87ID:CM3dEfa7
保守
2021/03/19(金) 00:44:04.10ID:fekxo9VW
>>1
お疲れさま
2021/03/19(金) 10:39:36.90ID:SZ2r73BI
wslstorestorage.blob.core.windows.net/wslblob/wsl_graphics_update_x64.msi
2021/03/25(木) 19:08:31.39
なにが始まるんです?
2021/03/29(月) 12:13:18.85ID:tjdazS3Q
何も始まんなくてワロタ
2021/03/31(水) 02:34:23.17ID:fPIrfUG6
pwsh滞ってんぞはよしろ
wtとか代わりはいくらでもあるんだから
2021/03/31(水) 09:00:09.96ID:286aHzTX
>>7
Windows TerminalからPower Shellを使うのでは?
2021/03/31(水) 09:24:12.73ID:5eZqg0IS
>>8
wt→pwsh(win側)→ubuntuで使ってる
6系は怒涛のアップデでlinuxシェルとして実用域に達したと思うんだけど、7になって多分一年くらいなのにまだ7.0xでバグフィックスくらいしかしてねえっていうね
本気でlinux取り込もうと思うならMSもっと頑張れよと
2021/03/31(水) 11:24:26.70ID:fcWxx74S
>>9
wtってWindowsTerminalで文脈あってるよね
ターミナル≠シェルだから代替関係になくね
あとその使い方でPowershell挟む理由何?
煽りとかじゃなく気になる
2021/03/31(水) 11:47:17.44ID:fPIrfUG6
>>10
ターミナルばっか力入れてシェルがなおざりって話よ
wtは別に無くても(wtがなかったからだが)いいターミナルが野良で沢山開発されてるし、そんな力入れるところなのかと
やっとpreviewでファンシーなメニュー付いたってレベルじゃねえか

win/linuxを統合して扱えるのが売りなら、シェルの開発が急務だろう
2021/03/31(水) 17:14:07.09ID:fcWxx74S
>>11
ああ、代わりのターミナルは他にあるんだからwt開発するリソースをシェルにまわせってことか
理解さんくす
2021/03/31(水) 18:16:03.79ID:hrCQTrrw
unix風のコマンドやエイリアスも用意して、とりあえずlinuxユーザーも対話シェルとしては違和感なく使えるレベルにはなってる、と思う

しかしもうwindows powershell (v2-4くらいが入ってるんだっけ?)の印象が悪すぎる
もうとっくに開発中止&非推奨になってるけど、
わざわざクロスプラットフォーム版のpwsh(Core, v7)をgitから落としてビルドして、って物好きそんなおらんぞ
2021/03/31(水) 18:19:57.44ID:hrCQTrrw
結局メイン用途であろうテスト環境に使うならbsh系スクリプトも書かなきゃならんしなぁ
一部だけ熱いファンが居るzshみたいな立ち位置になりそう
2021/03/31(水) 19:51:32.63ID:3JDFRksa
WindowsのDockerはこのスレで良いの?
メインマシンにいれて色んなLinux環境立ち上げてんだけど。
2021/03/31(水) 20:13:43.72ID:Zku3LQiy
>いいターミナルが野良で沢山開発されてるし
参考までに教えてくれ
WindowsTerminalの前はminttyかputty使ってて他も試したけどいいのがない
2021/03/31(水) 20:26:50.51ID:fcWxx74S
私はwt使う前はfluent terminal気に入ってたなあ
何でも入りって感じではないけど野暮ったさ無くて軽いのが良かった
今いいのがあるなら知りたいね専スレありそうだけど

つかPowershellとpwshって別物なんだ…追えてねー…
2021/03/31(水) 21:03:51.54ID:Zku3LQiy
>>17
それ一瞬使ったけどすぐWindowsTerminalに乗り換えたな

描画だけで言えばputty-d2ddwがいい
でもタブがないのとwslだとsshかcygterm経由なので今は使ってない
ConEmuは機能は豊富でいいんだけど設定が煩雑なのはいいとしてもUIが酷い
派生のCmderは多少マシにはなってるけど
WindowsTerminalは設定画面付いたし後は分割がもっと柔軟に出来ればいいかな
2021/03/31(水) 23:23:23.75ID:24EpA8De
パスやオプションに日本語が入ると文字が飛んだりカーソルが見えなくなったりする不具合はもうたくさん
WSLの標準ターミナルってCMDがベースだからその不具合を引きずってるのか?
2021/03/31(水) 23:40:08.21ID:rjFjoH6P
僕もWindowsTerminalが今までで一番使いやすいと想うな
WSLも普通に使えるし、設定がファイルだし 設定ファイルなくならないでほしい
2021/03/31(水) 23:45:03.88ID:fPIrfUG6
msはjson+guiで簡単設定推してる感じなんで大丈夫でしょう(VSCodeとか
2021/03/31(水) 23:47:53.72ID:fPIrfUG6
最近のMSはずっと良いMSだから次に邪悪なMSになった時はすごく邪悪なMSになりそうでこわいね
2021/04/01(木) 02:03:44.09ID:OBGVJwq8
emacs遣いだけど、WSLでemacs動かして画面をVcXsrvに表示している。ターミナルは殆どをshell-modeで動かして、エスケープ・シーケンスが必要な場合のみansi-term使っている。
shell-modeはdiredやtrampと連動するからとても便利。この便利さは使ったことある人にしかわからんと思うけど。
2021/04/01(木) 02:44:43.78ID:gpySUhAy
前スレでwtにXサーバ機能付いたぜ!って画像上げてた人居たな
まだストアには反映されてないけど、ぜひgitのビルドして生贄になってよ
2021/04/01(木) 03:13:06.35ID:gpySUhAy
ストアでポチるだけでwin向けにXアプリ動かせるのは面白いかもね、一般ユーザ向けに
wsl(ディストロ丸ごと)+X入れるとそれだけで10GBくらい食いそうだけど、アプリ動かすだけのミニマル構成出せば受けるんじゃないかな

しかし、じゃあこれからはXで書けよ!って流れは絶対に回避したいジレンマ
2021/04/04(日) 13:18:10.64ID:nZmeM4ZZ
Windows Subsystem for Linux Graphics Update - 0.2.15
http://download.windowsupdate.com/d/msdownload/update/software/updt/2021/04/wsl_graphics_support_x64_7a4714a09af16d31375d1e99201869b4dc01a690.cab
2021/04/04(日) 13:38:43.36ID:lqvqzwRy
リリースノートかと思ってタップしたら丸ごとかよ
110MiBとかパケ死ぬところだったぜ
2021/04/04(日) 14:38:47.44ID:B8pr52fG
ホント勘弁してくれ。これ何回目よ?
2021/04/04(日) 14:59:41.03ID:lqvqzwRy
ところで.cabなのなー
win98くらいに導入だったっね
当時zipやlzhよりずっと圧縮率高くて感動した覚えあるけど、今はどうなんだろ?
というか久々に見た
2021/04/04(日) 15:12:45.95ID:lqvqzwRy
時代錯誤な…と思ってget-helpしたらextract/expandが標準コマンドなのを知らなかった
wslはwin専用なのだから一番ポータブルか、難癖みたいなこと言ってごめんよMS
2021/04/05(月) 02:23:05.49ID:PT7nvd5N
psreadlineいいね、bash/gnu readlineと同等の機能は揃ったか
大人の事情か、なぜ再発明したという感じはするが…とにかくすごい馬力だ
readlineと設定共有出来ないのがとても残念

補完候補が薄く表示されるのがとてもよい
2021/04/05(月) 02:27:54.58ID:PT7nvd5N
やっぱりメソッド繋げてく文法と補完は相性いいな
2021/04/05(月) 03:00:28.56ID:PT7nvd5N
>>13
ubuntuだけど常に最新かは分からんがaptで一発よ、まあ apt/sources.list.dにmsのレポ追加は必要だけど

v6->v7は変更多いのにデフォルトで/usr/local/microsoft/powershellを直接置き換えやがる
併存させたいならaptに任せずmakefile読んでビルドするべき
2021/04/05(月) 07:54:50.71ID:PT7nvd5N
普通ホストゲスト両方にPowerShell入れるものなの?
ジョブ投げるだけならpwsh(--shutdown)
wsl linuxonlycmd arg1...
みたいに投げれるし、前スレかで誰かが言ってたwin側から投げるの利点、win/linuxのジョブをシームレスに扱えるというのもあるわけで
2021/04/05(月) 08:01:41.61ID:PT7nvd5N
それでもインタラクティブシェルで入って中から弄れるのにはやっぱり便利と思うし、
環境変数とか慣習に合わせてちゃんとしてくれる、エンコードをよろしく扱ってくれるとか利点は確かに多いんだけどやはり二重に入れるとギガが死ぬのが辛いんだわ
wslだけ立ち上げて、そこにwinのpwshから接続するような感じで使えたらいい感じそうで…
やり方知ってる人居たら教えてほしい
2021/04/05(月) 08:21:28.89ID:PT7nvd5N
とりあえず/etc/shellsに/mnt/c/.../pwshをブチ込んでみるか…
2021/04/05(月) 08:48:42.22ID:T7vCqe2j
windowsでpwsh --helpするの

Unix系OSでログインシェルとして使うにはpwsh -l/-loginオプションを指定し、shellsに追記、chsh
とは書いてある
しかしすぐ下にwslで(windows版の)pwshは現在サポートされてませんと明記されているぞ

非推奨だけどオプション用意して手順まで書く、ってのはすなわち人柱待ちじゃないかろうか
そのうちサポートするつもりとも読める
コードベースが同一で、linux/MacOS向けリリースはまともに動くので、やろうと思えばできるだろう

人柱になろう
2021/04/05(月) 09:21:35.91ID:PT7nvd5N
ですかー
NTFSのstream(ads)とかlinuxで使えない、かつファイルシステム関連で危なさそうな機能触るとどうなるんだろうか?とか思いました
2021/04/05(月) 09:34:03.87ID:PT7nvd5N
じゃあdocs二重に入れてるのは重複削除でもしますか
100メガ弱のがja/enそれぞれホストゲストに入って4倍っていうね
なんかあっても単なる.mdだし最悪読める

日本語訳は7.2まで仕上がっててすごいと思うんだけど、誤訳やマークアップのズレがすごく機械翻訳っぽいな、MSのヘルプサイト感そのまま…
まあ雰囲気で読めるからそれでも重宝だけど
2021/04/09(金) 00:22:00.78ID:TxMtmH4I
readlineは#includeするだけで汚染されるやべーやつなので
CLISP事件参照
41login:Penguin
垢版 |
2021/04/15(木) 19:05:01.97ID:FC0f5Zd/
mingw-w64で作成したWindowsプログラムから随時ファイルに書き出したテキストを
wsl2側のtail -f で監視したいのだけど更新されません
無理なんすかね?
2021/04/15(木) 19:21:43.99ID:pkysKjEr
>>41
mingwに詳しくないかけど、見たいの動的なテキストだし多分関係ないよね?
gc /mnt/c/.../log -tail 1 -wait
(powershell on ubuntu)
とかじゃダメ?こんな感じのやった事はある
ログはホスト/ゲストどっちのファイルシステムにあるの?(上の例ではテキストがホスト上、シェルはゲスト側で稼働)
2021/04/15(木) 19:49:07.95ID:FC0f5Zd/
>>42
有難うございます
gcって何ですか? graphvizにも同名のコマンドがありますが違いそうだし...

>mingwに詳しくないかけど、見たいの動的なテキストだし多分関係ないよね?
おっしゃる通りmingwなのは重要ではなく,テキストをファイルに書き出すシンプルなwindowsのプログラムです

>ログはホスト/ゲストどっちのファイルシステムにあるの?(上の例ではテキストがホスト上、シェルはゲスト側で稼働)
ログはホスト上でシェルはゲストで可動しています
あれ?! ゲストのファイルシステムにホスト側からアクセスできましたっけ?
2021/04/15(木) 19:49:31.05ID:pkysKjEr
そもそもシステム跨いでのストリーム処理とか一体どうなってるのか怪しからん…
モニタするのはホスト側からじゃダメ?なの?
linuxのtailが使いたいという理由ならwsl -- tail -fでホスト側からも呼べる、結局ストリームはシステム跨ぐわけで、解決になるかは不明だけど
2021/04/15(木) 19:52:11.84ID:pkysKjEr
>>43
\\wsl\distro-nameがwslの/に対応してるよ、逆は上に書いた/mnt/driveletter
2021/04/15(木) 19:59:07.89ID:1obmFQmu
>>41
tailだと無理っぽいねぇ
かったるいけどless使うとか、開いてから大文字Fでtailっぽく使える
2021/04/15(木) 20:14:48.79ID:Narv5AZ1
いろいろアイデアを有難うございます
帰宅していますので(家にはWin機がない)
明日試させて頂きます
2021/04/15(木) 20:46:52.24ID:8OLpT6Xv
>>34
そのエロ動画一本消せば両方入れて十二分に余るだろ
$profile, psreadline、.Net Core機能とホストゲストどっちからも問題なく動くコマンド叩くだけのpwshスクリプトだけ共有
分けた方が面倒は減る
2021/04/15(木) 21:05:07.85ID:pkysKjEr
>>43,48
ごめんgcはget-contentって言うpowershellのコマンドです、wslスレはみんなドザーなんだろうと、てっきり
cattacwcheadtailnkfテキスト入出力全部入りみたいなヤツです、(代わりにちょっと重いけど)linuxにもポートされてるのでぜひ
2021/04/15(木) 22:14:13.36ID:pkysKjEr
>>47
とりあえずwsl内のpwshからwinのfilesystemにtail -fが効かないことと、gc -tail 1 -waitは効く事を確認した
PS C:\Users\doser>notepad.exe
aaa
bbb
ccc
でtmp.txtを作成、dd, eeを追記し保存はステイしておく
2021/04/15(木) 22:15:59.03ID:pkysKjEr
PS C:\Users\doser> wsl -u doser
Welcome to Ubuntu 20.04 LTS
; ~/.profile, ~/.login Loaded.
; $profile Loaded.
PowerShell 7.20 ...

PS ub20:doser> (gcm tail).source
/usr/bin/tail
PS ub20:/home/doser> tail --version
tail (GNU Coreutils) 8.30

PS ub20:/home/doser> tail -f ./winhome/tmp.txt
aaa
bbb
ccc
(ここで追記するも反応なし.)

PS ub20:/home/doser> gc --tail 10 -wait ./winhome/tmp.txt
aaa
bbb
ccc
ddd
ee
(ここでメモ帳に追記、保存)
ff
g
2021/04/15(木) 22:28:03.69ID:pkysKjEr
wslの問題、ではあるんだろうが、
tail相当のコマンドが対応してるかしてないかって話だな
~/winhomeは/mnt/c/Users/doserへのシムリングです(NTFS)

何が優れてるとかじゃなく、wsl用に拵えたシェルのビルトインコマンドなんだから動いて当たり前ですよね、むしろ動かなければ炎上案件

取り敢えずubuntuならapt にpackages.microsoft.com/ubuntu/...レポを追加して
sudo apt install powershell[-preview|-lts]で目的は達せるはず
2021/04/15(木) 22:36:35.98ID:OW30BJL+
>>41
windowsプログラムで\\wsl側に書き出すとか
■ このスレッドは過去ログ倉庫に格納されています

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