【Bash】Windows Subsystem for Linux【WSL】10
【Bash】Windows Subsystem for Linux【WSL】10
元スレ
1 :login:Penguin:2021/03/17(水) 19:14:43.97 ID:14KJ8UmF.net
ついに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/
44 :login:Penguin:2021/04/15(木) 19:49:31.05 ID:pkysKjEr.net
そもそもシステム跨いでのストリーム処理とか一体どうなってるのか怪しからん…
モニタするのはホスト側からじゃダメ?なの?
linuxのtailが使いたいという理由ならwsl — tail -fでホスト側からも呼べる、結局ストリームはシステム跨ぐわけで、解決になるかは不明だけど
62 :login:Penguin:2021/04/16(金) 01:24:04.47 ID:qB1T3F0f.net
そしてそのhomeはonedriveで管理してるんだけど、win合法ファイル名でも怒られることがあるな
これがポータビリティ矯正ギプス…
4 :login:Penguin:2021/03/19(金) 10:39:36.90 ID:SZ2r73BI.net
wslstorestorage.blob.core.windows.net/wslblob/wsl_graphics_update_x64.msi
49 :login:Penguin:2021/04/15(木) 21:05:07.85 ID:pkysKjEr.net
,48
ごめんgcはget-contentって言うpowershellのコマンドです、wslスレはみんなドザーなんだろうと、てっきり
cattacwcheadtailnkfテキスト入出力全部入りみたいなヤツです、(代わりにちょっと重いけど)linuxにもポートされてるのでぜひ
2 :login:Penguin:2021/03/18(木) 13:39:44.87 ID:CM3dEfa7.net
27 :login:Penguin:2021/04/04(日) 13:38:43.36 ID:lqvqzwRy.net
リリースノートかと思ってタップしたら丸ごとかよ
110MiBとかパケ死ぬところだったぜ
7 :login:Penguin:2021/03/31(水) 02:34:23.17 ID:fPIrfUG6.net
pwsh滞ってんぞはよしろ
wtとか代わりはいくらでもあるんだから
32 :login:Penguin:2021/04/05(月) 02:27:54.58 ID:PT7nvd5N.net
23 :login:Penguin:2021/04/01(木) 02:03:44.09 ID:OBGVJwq8.net
emacs遣いだけど、WSLでemacs動かして画面をVcXsrvに表示している。ターミナルは殆どをshell-modeで動かして、エスケープ・シーケンスが必要な場合のみansi-term使っている。
shell-modeはdiredやtrampと連動するからとても便利。この便利さは使ったことある人にしかわからんと思うけど。
20 :login:Penguin:2021/03/31(水) 23:40:08.21 ID:rjFjoH6P.net
僕もWindowsTerminalが今までで一番使いやすいと想うな
WSLも普通に使えるし、設定がファイルだし 設定ファイルなくならないでほしい
5 :login:Penguin:2021/03/25(木) 19:08:31.39 .net
30 :login:Penguin:2021/04/04(日) 15:12:45.95 ID:lqvqzwRy.net
時代錯誤な…と思ってget-helpしたらextract/expandが標準コマンドなのを知らなかった
wslはwin専用なのだから一番ポータブルか、難癖みたいなこと言ってごめんよMS
35 :login:Penguin:2021/04/05(月) 08:01:41.61 ID:PT7nvd5N.net
それでもインタラクティブシェルで入って中から弄れるのにはやっぱり便利と思うし、
環境変数とか慣習に合わせてちゃんとしてくれる、エンコードをよろしく扱ってくれるとか利点は確かに多いんだけどやはり二重に入れるとギガが死ぬのが辛いんだわ
wslだけ立ち上げて、そこにwinのpwshから接続するような感じで使えたらいい感じそうで…
やり方知ってる人居たら教えてほしい
11 :login:Penguin:2021/03/31(水) 11:47:17.44 ID:fPIrfUG6.net
ターミナルばっか力入れてシェルがなおざりって話よ
wtは別に無くても(wtがなかったからだが)いいターミナルが野良で沢山開発されてるし、そんな力入れるところなのかと
やっとpreviewでファンシーなメニュー付いたってレベルじゃねえか
win/linuxを統合して扱えるのが売りなら、シェルの開発が急務だろう
50 :login:Penguin:2021/04/15(木) 22:14:13.36 ID:pkysKjEr.net
とりあえずwsl内のpwshからwinのfilesystemにtail -fが効かないことと、gc -tail 1 -waitは効く事を確認した
PS C:¥Users¥doser>notepad.exe
aaa
bbb
ccc
でtmp.txtを作成、dd, eeを追記し保存はステイしておく
38 :login:Penguin:2021/04/05(月) 09:21:35.91 ID:PT7nvd5N.net
ですかー
NTFSのstream(ads)とかlinuxで使えない、かつファイルシステム関連で危なさそうな機能触るとどうなるんだろうか?とか思いました
41 :login:Penguin:2021/04/15(木) 19:05:01.97 ID:FC0f5Zd/.net
mingw-w64で作成したWindowsプログラムから随時ファイルに書き出したテキストを
wsl2側のtail -f で監視したいのだけど更新されません
無理なんすかね?
58 :login:Penguin:2021/04/16(金) 00:10:11.44 ID:unf3hDsm.net
書き込み激しい/tmpもNTFSにした方が便利かも
VMが借りた領域なかなか返さないので
30GB位まで膨らんだらdiskpartで20GBくらい取り戻すを繰り返してる
52 :login:Penguin:2021/04/15(木) 22:28:03.69 ID:pkysKjEr.net
wslの問題、ではあるんだろうが、
tail相当のコマンドが対応してるかしてないかって話だな
‾/winhomeは/mnt/c/Users/doserへのシムリングです(NTFS)
何が優れてるとかじゃなく、wsl用に拵えたシェルのビルトインコマンドなんだから動いて当たり前ですよね、むしろ動かなければ炎上案件
取り敢えずubuntuならapt にpackages.microsoft.com/ubuntu/…レポを追加して
sudo apt install powershell[-preview|-lts]で目的は達せるはず
33 :login:Penguin:2021/04/05(月) 03:00:28.56 ID:PT7nvd5N.net
ubuntuだけど常に最新かは分からんがaptで一発よ、まあ apt/sources.list.dにmsのレポ追加は必要だけど
v6->v7は変更多いのにデフォルトで/usr/local/microsoft/powershellを直接置き換えやがる
併存させたいならaptに任せずmakefile読んでビルドするべき
57 :login:Penguin:2021/04/16(金) 00:04:06.58 ID:unf3hDsm.net
wslゲストからNTFSを扱うのは全く問題無い、というかオーバーヘッドが減るしNTFSのADS機能も使えるので、/homeはC:¥Users¥へのsymlinkにするのがベストプラクティス
マウントするんじゃないぞ、既にマウントされてそこからパス通してるので
13 :login:Penguin:2021/03/31(水) 18:16:03.79 ID:hrCQTrrw.net
unix風のコマンドやエイリアスも用意して、とりあえずlinuxユーザーも対話シェルとしては違和感なく使えるレベルにはなってる、と思う
しかしもうwindows powershell (v2-4くらいが入ってるんだっけ?)の印象が悪すぎる
もうとっくに開発中止&非推奨になってるけど、
わざわざクロスプラットフォーム版のpwsh(Core, v7)をgitから落としてビルドして、って物好きそんなおらんぞ
25 :login:Penguin:2021/04/01(木) 03:13:06.35 ID:gpySUhAy.net
ストアでポチるだけでwin向けにXアプリ動かせるのは面白いかもね、一般ユーザ向けに
wsl(ディストロ丸ごと)+X入れるとそれだけで10GBくらい食いそうだけど、アプリ動かすだけのミニマル構成出せば受けるんじゃないかな
しかし、じゃあこれからはXで書けよ!って流れは絶対に回避したいジレンマ
21 :login:Penguin:2021/03/31(水) 23:45:03.88 ID:fPIrfUG6.net
msはjson+guiで簡単設定推してる感じなんで大丈夫でしょう(VSCodeとか
12 :login:Penguin:2021/03/31(水) 17:14:07.09 ID:fcWxx74S.net
ああ、代わりのターミナルは他にあるんだからwt開発するリソースをシェルにまわせってことか
理解さんくす
40 :login:Penguin:2021/04/09(金) 00:22:00.78 ID:TxMtmH4I.net
readlineは#includeするだけで汚染されるやべーやつなので
CLISP事件参照
31 :login:Penguin:2021/04/05(月) 02:23:05.49 ID:PT7nvd5N.net
psreadlineいいね、bash/gnu readlineと同等の機能は揃ったか
大人の事情か、なぜ再発明したという感じはするが…とにかくすごい馬力だ
readlineと設定共有出来ないのがとても残念
補完候補が薄く表示されるのがとてもよい
17 :login:Penguin:2021/03/31(水) 20:26:50.51 ID:fcWxx74S.net
私はwt使う前はfluent terminal気に入ってたなあ
何でも入りって感じではないけど野暮ったさ無くて軽いのが良かった
今いいのがあるなら知りたいね専スレありそうだけど
つかPowershellとpwshって別物なんだ…追えてねー…
37 :login:Penguin:2021/04/05(月) 08:48:42.22 ID:T7vCqe2j.net
windowsでpwsh –helpするの
Unix系OSでログインシェルとして使うにはpwsh -l/-loginオプションを指定し、shellsに追記、chsh
とは書いてある
しかしすぐ下にwslで(windows版の)pwshは現在サポートされてませんと明記されているぞ
非推奨だけどオプション用意して手順まで書く、ってのはすなわち人柱待ちじゃないかろうか
そのうちサポートするつもりとも読める
コードベースが同一で、linux/MacOS向けリリースはまともに動くので、やろうと思えばできるだろう
人柱になろう
42 :login:Penguin:2021/04/15(木) 19:21:43.99 ID:pkysKjEr.net
mingwに詳しくないかけど、見たいの動的なテキストだし多分関係ないよね?
gc /mnt/c/…/log -tail 1 -wait
(powershell on ubuntu)
とかじゃダメ?こんな感じのやった事はある
ログはホスト/ゲストどっちのファイルシステムにあるの?(上の例ではテキストがホスト上、シェルはゲスト側で稼働)
47 :login:Penguin:2021/04/15(木) 20:14:48.79 ID:Narv5AZ1.net
いろいろアイデアを有難うございます
帰宅していますので(家にはWin機がない)
明日試させて頂きます
28 :login:Penguin:2021/04/04(日) 14:38:47.44 ID:B8pr52fG.net
43 :login:Penguin:2021/04/15(木) 19:49:07.95 ID:FC0f5Zd/.net
有難うございます
gcって何ですか? graphvizにも同名のコマンドがありますが違いそうだし…
>mingwに詳しくないかけど、見たいの動的なテキストだし多分関係ないよね?
おっしゃる通りmingwなのは重要ではなく,テキストをファイルに書き出すシンプルなwindowsのプログラムです
>ログはホスト/ゲストどっちのファイルシステムにあるの?(上の例ではテキストがホスト上、シェルはゲスト側で稼働)
ログはホスト上でシェルはゲストで可動しています
あれ?! ゲストのファイルシステムにホスト側からアクセスできましたっけ?
3 :login:Penguin:2021/03/19(金) 00:44:04.10 ID:fekxo9VW.net
51 :login:Penguin:2021/04/15(木) 22:15:59.03 ID:pkysKjEr.net
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
59 :login:Penguin:2021/04/16(金) 00:49:27.92 ID:VjO2DK8g.net
それやっちゃうと、Win32ビルドのプログラムにより作成されるドットファイルが競合する
26 :login:Penguin:2021/04/04(日) 13:18:10.64 ID:nZmeM4ZZ.net
39 :login:Penguin:2021/04/05(月) 09:34:03.87 ID:PT7nvd5N.net
じゃあdocs二重に入れてるのは重複削除でもしますか
100メガ弱のがja/enそれぞれホストゲストに入って4倍っていうね
なんかあっても単なる.mdだし最悪読める
日本語訳は7.2まで仕上がっててすごいと思うんだけど、誤訳やマークアップのズレがすごく機械翻訳っぽいな、MSのヘルプサイト感そのまま…
まあ雰囲気で読めるからそれでも重宝だけど
39 :login:Penguin:2021/04/05(月) 09:34:03.87 ID:PT7nvd5N.net
じゃあdocs二重に入れてるのは重複削除でもしますか
100メガ弱のがja/enそれぞれホストゲストに入って4倍っていうね
なんかあっても単なる.mdだし最悪読める
日本語訳は7.2まで仕上がっててすごいと思うんだけど、誤訳やマークアップのズレがすごく機械翻訳っぽいな、MSのヘルプサイト感そのまま…
まあ雰囲気で読めるからそれでも重宝だけど
46 :login:Penguin:2021/04/15(木) 19:59:07.89 ID:1obmFQmu.net
tailだと無理っぽいねぇ
かったるいけどless使うとか、開いてから大文字Fでtailっぽく使える
14 :login:Penguin:2021/03/31(水) 18:19:57.44 ID:hrCQTrrw.net
結局メイン用途であろうテスト環境に使うならbsh系スクリプトも書かなきゃならんしなぁ
一部だけ熱いファンが居るzshみたいな立ち位置になりそう
36 :login:Penguin:2021/04/05(月) 08:21:28.89 ID:PT7nvd5N.net
とりあえず/etc/shellsに/mnt/c/…/pwshをブチ込んでみるか…
8 :login:Penguin:2021/03/31(水) 09:00:09.96 ID:286aHzTX.net
Windows TerminalからPower Shellを使うのでは?
55 :login:Penguin:2021/04/15(木) 23:50:55.34 ID:oW7YM7fj.net
54 :login:Penguin:2021/04/15(木) 22:43:38.04 ID:pkysKjEr.net
シェル自体も多分関係ない
PS ub20:doser> (gcm dash).source
/usr/bin/dash
PS ub20:doser> dash -l
$ pwd
/home/doser
以下同様
34 :login:Penguin:2021/04/05(月) 07:54:50.71 ID:PT7nvd5N.net
普通ホストゲスト両方にPowerShell入れるものなの?
ジョブ投げるだけならpwsh(–shutdown)
wsl linuxonlycmd arg1…
みたいに投げれるし、前スレかで誰かが言ってたwin側から投げるの利点、win/linuxのジョブをシームレスに扱えるというのもあるわけで
16 :login:Penguin:2021/03/31(水) 20:13:43.72 ID:Zku3LQiy.net
>いいターミナルが野良で沢山開発されてるし
参考までに教えてくれ
WindowsTerminalの前はminttyかputty使ってて他も試したけどいいのがない
9 :login:Penguin:2021/03/31(水) 09:24:12.73 ID:5eZqg0IS.net
wt→pwsh(win側)→ubuntuで使ってる
6系は怒涛のアップデでlinuxシェルとして実用域に達したと思うんだけど、7になって多分一年くらいなのにまだ7.0xでバグフィックスくらいしかしてねえっていうね
本気でlinux取り込もうと思うならMSもっと頑張れよと
18 :login:Penguin:2021/03/31(水) 21:03:51.54 ID:Zku3LQiy.net
それ一瞬使ったけどすぐWindowsTerminalに乗り換えたな
描画だけで言えばputty-d2ddwがいい
でもタブがないのとwslだとsshかcygterm経由なので今は使ってない
ConEmuは機能は豊富でいいんだけど設定が煩雑なのはいいとしてもUIが酷い
派生のCmderは多少マシにはなってるけど
WindowsTerminalは設定画面付いたし後は分割がもっと柔軟に出来ればいいかな
6 :login:Penguin:2021/03/29(月) 12:13:18.85 ID:tjdazS3Q.net
レスを投稿する(名前省略可)