X

【Bash】Windows Subsystem for Linux【WSL】11

■ このスレッドは過去ログ倉庫に格納されています
2021/07/29(木) 06:31:29.44ID:280Si2bb
ついに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】10
https://mao.5ch.net/test/read.cgi/linux/1615976083/
2022/02/10(木) 08:44:39.98ID:0WgeiANH
>>772
ありがとうございました。
2022/02/10(木) 10:47:34.41ID:/XeeiE/p
WindowsもシェルでCUIライクに操作したいということでpowershellに期待してたけど、どうしても見劣りするなぁ
仕事柄社内の人間にも使ってもらう必要があって、シェル操作するためだけにWSL入れてくださいとか言うのは抵抗感あったんだけど、やっぱ使わざるを得ないな
2022/02/10(木) 13:09:03.09ID:XY1zQ9so
>>777
> WindowsもシェルでCUIライクに操作したいということでpowershellに期待してたけど、どうしても見劣りするなぁ
純粋に機能だけ見たらPowerShellの圧勝だと思うけど、見劣りする部分って何?
2022/02/10(木) 16:41:40.42ID:44DeLPqg
windowsアップデートして再起動したら
windows側からhttp://localhostでwsl2のapacheにアクセスできなくなった
ip addressコマンドで表示されるeth0のアドレスを直打ちしたら接続できる

たすけてー!!!
2022/02/10(木) 17:51:45.86ID:HQsP0oGp
>>777
シェル使いたいならbusybox-w32使えば?
バイナリ1ファイルの上にbusyboxだから
たくさんのコマンドが内蔵されてるよ
2022/02/10(木) 17:52:23.02ID:HQsP0oGp
>>778
見劣りと言うか文化が違うって感じだろうね
普通に使いたいコマンドが使えないってのもあるけど
2022/02/10(木) 18:25:41.72ID:rvScpbMG
>>781
自分が理解できない文化は劣等だ!
って感じ?
典型的な老害にしか見えないけど…
2022/02/10(木) 18:43:44.65ID:HQsP0oGp
>>782
そんな事一言も言ってないけど?
2022/02/10(木) 19:43:06.29ID:f1QZyycH
>>783
で、見劣りとかどっから出てきたん?
2022/02/10(木) 19:46:17.49ID:DXxMH9vh
>>779

https://qiita.com/snaka/items/a8eee4cfc8f7d733e6ab
これは?
2022/02/10(木) 19:53:13.52ID:HQsP0oGp
>>784
見ればわかるだろ
2022/02/10(木) 20:03:49.47ID:nCSYTAXV
>>784
なんでレス検索しないの?
2022/02/10(木) 20:04:28.98ID:f1QZyycH
>>786
お前のバカさしかわからんがw
具体的に書けないから黙ってなよ
2022/02/10(木) 20:08:06.27ID:f1QZyycH
>>787
まさかと思うが>>777に書いてあるとか言い出すんじゃないよな?w
普通の頭持ってりゃなぜ>>777がそんなこと書いたのかを聞いてることぐらいはわかるだろ
2022/02/10(木) 20:09:57.52ID:/XeeiE/p
おっと盛り上げてしまったようだね

>>778
>純粋に機能だけ見たらPowerShellの圧勝
そうなんだっけ?ごめん、実はpowershellあんま詳しくないんだわ
そういう意味では見劣りっていうのは言い過ぎと言うか嘘

powershellをbashやzshライクにするネタはあるけど同じにはならないし
powershellの文法とかコマンドを覚える気はないわ
どうせまた別のが出てくるしアホくさい
2022/02/10(木) 20:30:48.33ID:f1QZyycH
典型的な老害やんw
2022/02/10(木) 21:24:05.60ID:gcZSVIAD
まだまだ破壊的変更繰り返してるから安定はしてないが好きだよpwsh
こっそりディストロwslビルドのデフォルトシェルにするつもりだったりして

preview登録してると毎月何度も更新しろ通知はうざいけど
2022/02/10(木) 21:37:11.62ID:HQsP0oGp
>>789
やっと検索したんですね(笑)
2022/02/10(木) 21:38:51.67ID:gcZSVIAD
呪文のようなエイリアス覚えるまでがハードル高い
2022/02/10(木) 22:14:50.66ID:rvScpbMG
>>793
バカの上塗り?w
ちょっと可哀想…
2022/02/10(木) 23:00:30.82ID:I5zKTKP0
>>794
bashの呪いですね。
2022/02/10(木) 23:04:37.53ID:44DeLPqg
>>785
その情報は古すぎます
今はデフォルトで localhostForwarding=True になっています
試しにやってみましたがダメでした
2022/02/10(木) 23:26:44.73ID:44DeLPqg
なんかwindos側にポートフォワーディングの設定が残ってたのでそれを削除したら解決しました

netsh interface portproxy show all

ipv4 をリッスンする: ipv4 に接続する:

Address Port Address Port
--------------- ---------- --------------- ----------
* 80 172.23.114.3 80

netsh interface portproxy delete v4tov4 listenport=80 listenaddres=*
2022/02/11(金) 04:27:30.09ID:lETVfjsQ
pwshは良くも悪くもperl焼き直しって感じ
インタラクティブにはワンライナーの短さが売り、コマンド/パラメータの機械的な短縮規約、|, $_, %, ?で溢れかえるperl以上のラインノイズ

全体的にラグいけど、通常シェル関数とは別にawk丸パクリのBEGIN/ENDを備えたフィルタ定義を使えば最適化されてかなりパフォーマンス出る

というか同じcoreリリースでもwin上よりwsl上の方が軽快なのはなんなんだろうか

最近のリリースでは外部コマンド間のパイプはオプション付けずともpodで流すようになったから、win/linuxのパイプ実装の差?
2022/02/11(金) 04:37:45.52ID:lETVfjsQ
セキュアなスクリプティングもできるのも売りだけど、あんまり普及してないから、自分用には便利でも配るスクリプトは結局dash/pythonで書いてしまうなあ
2022/02/11(金) 18:15:25.78ID:MmsVIOOH
Cmder素晴らしいなこれ
エクスプローラでコピペした\なパスをそのまま貼り付けられるのが素敵
2022/02/12(土) 08:15:23.37ID:VvEgJo7s
>>801
\を/に変換してくれるしね。
2022/02/12(土) 10:04:44.05ID:x1w/UlFV
死ね?
2022/02/12(土) 12:40:37.85ID:uZOcK6Zn
powershellとposix系は単純にアプローチ違うだけでしょ
powershellはどっちかというとSQLに近いテキスト処理だと思ってる。文字列処理じゃなくて機能処理。
コマンド型のAPIって考えたほうが良い。クロスプラットフォームだし。
多分ちゃんと学べば使えるだろうけど、使う機会がない。
あと外部コマンド挟むと結局PowerShellのスタイルが崩れるからなかなかきれいなスクリプトが書きにくそう。
究極言えばWSL上でPowershell動かしCoreutilsのコマンドにbindingできるっちゃあできるだろうし
2022/02/12(土) 12:46:24.23ID:uZOcK6Zn
>>775
分割ターミナル、マウス操作不要、大抵のLinuxで利用可能、コマンドラインセッションを複数セッション・複数ウィンドウ保持、コマンド一発でセッション復帰
2022/02/12(土) 13:44:02.90ID:VvEgJo7s
>>804
POSIX(bashでもいいけど)ではWindowsのGUI処理とかむりだしね。
2022/02/12(土) 14:30:05.80ID:bxN2mnex
テキスト入出力のパイプ処理は行毎だからunixコマンドとの相性はいいと思う
コマンド組み立てるにも、パイプ噛ますにもperl風regexpや置換演算子"..." -f使えるのは便利だと思った

対話でpretty表示されてるのは入力型毎にフォーマット指定が定義できる(されてる)からで、カスタマイズしてもいいし、多分|ft, |fl …(format-table, list)で都度見やすく整形するのが柔軟
column, fmtみたいなもん
2022/02/12(土) 15:11:11.71ID:bxN2mnex
慣れた外部コマンドだけ使うとして、とりあえず-join, -split, -f, slsだけ覚えれば行志向処理に便利なシェルとして使えるんじゃなかろうか

普通スクリプト言語に投げるような構造化テキスト/データのパースも、[xml]等キャスト演算子を前置するだけで配列/辞書に入る

パイプや配列の挙動が分からなくても、とりあえず|% {... $_ } (foreach)で愚直に書ける

内部コマンド(コマンドレット)覚えるのはその後でいいよ
2022/02/12(土) 15:26:11.06ID:iJq+0Ypx
powershellはwindowsシスアドコマンド発行する為のものみたいな風潮は根強い
ググってもそんなんばっかだしな

幸いヘルプはinfo並みに詳しいし、トピック毎のgh about_*を読むのが最良
810login:Penguin
垢版 |
2022/02/12(土) 15:44:21.07ID:Qrp9cHyb
人少ないからこっちにも来てね

【Linux】Windows Terminalでbash
https://mevius.5ch.net/test/read.cgi/win/1591389687/
2022/02/12(土) 17:44:26.62ID:NIqh0EbQ
>>693
issueに入ってるよ
2022/02/13(日) 19:04:24.52ID:7AI9sDzm
>powershellはwindowsシスアドコマンド発行する為のものみたいな風潮は根強い
当分こうでしょ
Windowsはシェル文化じゃないし
2022/02/13(日) 19:09:22.31ID:k5A1evG3
シェルとCUIを混同してるようだなw
2022/02/13(日) 19:13:52.81ID:elLH/T+I
WindowsのシェルといえばExplorer
2022/02/13(日) 19:18:15.87ID:QYPvgOXT
プログラムマネージャだろ?
2022/02/14(月) 06:12:53.51ID:DPVKCm8W
ん?、シェル文化ってなんだ?
DOS由来ならまぁ少しは説明つくけど、NT由来でCLIは取ってつけたようなもんだろうから、コンセプトはやはりGUIでPowershellとかもオプション扱いが妥当では?
2022/02/14(月) 14:39:00.55ID:BsHrjLzC
アスペキター
2022/02/15(火) 05:25:07.46ID:ZBVAUReA
WSLじゃないけどここにいる人は興味あるんじゃないかな

Android 13 virtualization lets Pixel 6 run Windows 11, Linux distributions
https://www.cnx-software.com/2022/02/14/android-13-virtualization-lets-pixel-6-run-windows-11-linux-distributions/
2022/02/15(火) 05:30:32.03ID:4MZ5WmxZ
スマホ端末でwin11動かして、そのwin11上でAndroid動かすロマン
2022/02/15(火) 06:04:17.88ID:nL7j8Q5E
termuxが死んでuserlandも更新が停滞している状況では、良いニュース…なのかな

正直スマホの画面ではターミナルつつくにしてもステータスやデータの確認とか
せいぜいスクリプトの微調整くらいが限界だけど
タブレットで縦画面で使えれば、夢のダイナブックの実現だわ…
2022/02/15(火) 09:29:00.35ID:69ZVUjkw
termuxが死んでってどういう意味?
2022/02/15(火) 11:30:14.80ID:ZBVAUReA
(Playストアでは)死んだ
2022/02/15(火) 12:49:43.37ID:s9H1Lrn2
>>821
こちらが参考になるのでわないでしょうか?

【Termux】Google Play のTermuxはもうメンテされませーん!って言われているんだけれど…
https://blog.goo.ne.jp/oprsfr3saku/e/c444f349f809a94083e16e50b538f05b
2022/02/15(火) 12:55:20.53ID:E9ks5qWf
(F-Droidでは)生きてる
2022/02/15(火) 14:25:23.99ID:69ZVUjkw
だから死んではいないのではと思ったの
2022/02/16(水) 21:18:52.89ID:WYfD5+3l
wsl2でclipboardを共有する方法ない?
2022/02/16(水) 22:20:17.41ID:mmn1OcEV
>>826
何から何にコピペしたい?
2022/02/16(水) 22:21:26.89ID:yiz1N4Xc
win32yank
2022/02/17(木) 00:49:54.13ID:fd0ZS66+
>>826
clip.exe
830login:Penguin
垢版 |
2022/02/17(木) 08:14:48.72ID:luztFLCx
>>809
俺は.NET言語の1つだと思ってるよ。
オブジェクト指向で.NETのクラスライブラリが使えて独自のdllも読み込めるし。
向いてはないだろうけどやろうと思えばC#並のことはできるんじゃないかな。
2022/02/17(木) 14:31:38.06ID:OTj/EdAG
dotnetのサンプルコードがc♯だから敬遠してた俺も居る

例えばこのサンプル
https://docs.microsoft.com/en-us/dotnet/standard/base-types/grouping-constructs-in-regular-expressions
[regex]::Regex.Matchesと呼ばなくても-match演算子でフル機能使えるとか最近気付いた

PS> "<abc><mno<xyz>>" -match "^[^<>]*(((?'Open'<)[^<>]*)+((?'Close-Open'>)[^<>]*)+)*(?(Open)(?!))$"; $matches
でワンライナーいける
詳細はdotnetのページ見てね、じゃなくてpwshっぽい書き方を示してほしい
2022/02/17(木) 14:56:31.81ID:OTj/EdAG
要するに
win開発に興味無くて、単にwsl+pwshでシームレスに使いたい俺みたいな層としては、get-help -exampleでpwsh版の用例が引けると嬉しい
2022/02/17(木) 18:52:32.45ID:pRc301I8
>>831
このシリーズ良いregexpチュートリアルだね、言語関係なく
機械翻訳がやばいけど
2022/02/18(金) 22:46:07.99ID:tsNBP599
Perlかな
2022/02/19(土) 12:57:59.21ID:EC4zylS5
windowsのカーネルがlinuxに置き換わる事はあるんだろうか
2022/02/19(土) 13:15:40.32ID:azmrAxdd
無い
2022/02/19(土) 15:22:02.96ID:8Wy0NXcf
GUI周りをウェブにしてきてるからフロントエンドだけ提供することは可能だけど、抱き合わせのOfficeスイートができないから旨味がないね。
2022/02/19(土) 15:51:02.51ID:FhQcKsFd
Windowsがなくなるとしたら6G7Gくらいの超高速通信時代になって、一般ユーザがガチのシンクライアントな端末しか持たなくなったらだろうな
2022/02/20(日) 08:22:23.89ID:0ceJtvgX
>>838
サーバー上にWindowsがあるからなくならないよ。
2022/02/20(日) 11:11:55.17ID:8GmAD/nH
情弱なので使い道がわからない
2022/02/20(日) 14:45:21.82ID:Fb3Z6tSo
wsl2&docker desktop で windows開発環境構築しやすくなってよいですな
vscode の remote container むっちゃ楽
2022/02/20(日) 15:01:35.47ID:NXZNfBA1
docker desktopはもう捨てた
2022/02/20(日) 15:22:40.97ID:3kxv4gsF
suseのやつに移行しましたよ
2022/02/20(日) 19:47:55.76ID:C15gu2Wk
>>842
kwsk
なぜ捨てたの?なにかに移行したの?
2022/02/20(日) 23:46:53.23ID:7pRmB7IV
商用有償で大企業でもなきゃ捨てたってことじゃない?
2022/02/21(月) 12:37:57.65ID:tXBf/ILu
月に700円くらいお布施しようぜw
2022/02/21(月) 13:12:21.47ID:o6xdfahQ
やだよ
俺の座右の銘はフリーライド
金を払うなど論外
2022/02/21(月) 15:45:48.82ID:2CXUhmKi
金を払うぐらいなら、休日を捨てる覚悟だ
2022/02/21(月) 16:42:27.88ID:MTl83I3s
漢だな
2022/02/23(水) 02:21:25.54ID:G2eb9VwG
WSL2の軽量VMの稼働時間を知りたいと思ったのですが
uptimeの結果が妙です
軽量VMを再起動してもそれがuptimeの表示に反映せず、また全ての軽量VMで同じ結果になります
個々の軽量VMの稼働時間を知りたい場合どうすればいいのでしょうか?
2022/02/23(水) 02:30:42.57ID:kQJL8BkX
無理なんじゃね?
カーネル共有してるんだから
WSL2はだから仮想マシンよりも省メモリなんだよ
2022/02/23(水) 02:38:10.67ID:jQFBzDkP
コンテナ仮想化された上で動いてるね
2022/02/23(水) 02:53:13.00ID:+rLh1kmS
適当にファイル作成してその差を見ればいいんじゃね?
2022/02/23(水) 03:32:00.94ID:DBnhBFJ4
initの起動した時刻を取得すればいいんでは?
秒まで必要ならlstartとかある
2022/02/23(水) 13:58:37.94ID:zQXfU6e/
すみません。
素人の質問で申し訳ないが、
仮想マシン(Synology NAS)上のWindowsではWSL2は無理ですよね?
(WSL1は動いた。)
2022/02/23(水) 14:29:03.56ID:DBnhBFJ4
>>855
DSMがNested Virtualizationを有効にしてないから、そのままでは無理
sshとかで入って設定を弄れば出来るかもしれないけど、ハードルは高いかと
2022/02/23(水) 14:51:18.70ID:tYGqn0gQ
>>856
ありがとう。
あまりWSL1で困ってないのでそのまま使います。
2022/02/23(水) 17:17:48.18ID:A6RSqcui
>>855
それ、そもそも何をしようとしてますか?
というのはDSM)に docker 導入してdocker コンテナのレポジトリの中からUbuntu インストールするてもあるかと思いまして…
余計なお世話かもしれませんが
2022/02/23(水) 17:47:58.73ID:dvnk1os+
ここが変だよ「WSL2」
自作ディストロ開発で発見した知られざる“バグ”と“事実”
https://logmi.jp/tech/articles/326106

前回の「Kernel VM online Part3」で、実はWSLは、自分でディストロを作れるんだよとお話ししました。

Distrodというものを作りました。これはlinuxcontainers.orgからディストロのイメージを落としてきて、システムで動かしながらそれをWSLインスタントして動かすソフトになっています。便利なので使ってみてください。
2022/02/24(木) 08:42:24.07ID:Jmicc5bs
>>858
ありがとう。
やりたいことは単なるテキスト処理です。
awk,sed,nkfなどが動けばいいだけなので。
2022/02/24(木) 09:19:31.24ID:6kHWg2Tz
>>860
その程度ならmingwもあるし、wsl1でも全く問題ない。
2022/02/24(木) 12:00:08.90ID:gm7GGfZx
それだけならbusyboxが楽かな
2022/02/24(木) 12:52:08.92ID:gOQ9H+wR
つまりググるかsynologyスレに行って、DSMでsshを有効にする方法やdpkgで必要なパッケージをインストールする方法を確認するほうがが速いかもしれません。

【高機能】 Synology 総合 part29
https://mevius.5ch.net/test/read.cgi/hard/1644919788/
864login:Penguin
垢版 |
2022/02/25(金) 03:03:45.78ID:dGnzF7KA
>>862
わしもそう思う
2022/02/25(金) 05:47:38.52ID:5W6XFNP5
>>862
相変わらずダメ文字があるので、
残念ながら使えない
2022/02/25(金) 08:45:12.87ID:j+z0mWHF
皆さん、ありがとうございます!
WSLを使い慣れているのでWSL1を使おうと思います。
2022/02/28(月) 20:18:36.31ID:Fkf9ttzd
WSLのおかげで素のLinuxマシンが減ってるらしい
2022/02/28(月) 20:55:19.28ID:qEeLc6Dt
WSLかChromebookかラズパイかクラウド(VPSやIaaS等)か
2022/03/01(火) 12:07:26.17ID:pr9UByDD
メモリ馬鹿食いするしVMにLinux入れたほうがよくね
2022/03/01(火) 20:04:44.39ID:RPfI5b4P
VMにLinux入れると、ディストリ毎にメモリ食うんだよね
WSL2はカーネルは全ディストリで共有だから軽いし
起動がものすごく速い。2秒とかで起動する。
2022/03/01(火) 20:18:49.75ID:lEFA1QFM
WSL2ってVM+コンテナだよね?
VMに軽量Linux入れてその中でLXC使えばいいんじゃね
2022/03/01(火) 20:22:41.52ID:NIvV7voI
VM未起動でも数秒で起動するのがいいよね、下手にカスタマイズしたPowerShellより早いかもしれん
2022/03/01(火) 22:46:27.63ID:s3jqCffg
Windows Integrationがやはり強みだと思う。
エクスプローラーから全部覗けるし、逆も然り
Win11なら、概ねのXアプリも一応動く。gnuplot とか。
だけど軽い。
Office やTeamsが必要だけどLinux便利でいろいろしたいひとには便利
というかsshのコンソールとしてだけでも意味ある
2022/03/02(水) 04:01:56.26ID:OYgd/FAG
正直インテグレーションは筋が悪いと思う、wsl同梱のコマンド類はネイティブなので、windowsファイルシステム上で使うと不正なファイルを作りがち(pwshスレで聞きかじり)

pwshは稀有なファイルシステムawareなので、インテグレーション運用したいならベスト
重いのはパワーアピールの為にデフォルトで要らんもんわんさかロードしてるので*-Moduleで要らんものパージすると快適、細かい事分からんなら-no-...系のオプションとりあえず付けるのがよい

パス通ってる.ps1等対応スクリプトをパースして引数補完するのが特に重い…便利ではあるけど
大量に俺々コマンド書くようなヘビーユーザでない限り、パース不要な内部コマンドの補完だけで十分だと思うので、デフォルトにするべきじゃないと思うわ
2022/03/02(水) 07:23:36.45ID:fGDzXcPN
>>871
VMに軽量Linux入れてその中でLXC使って
WSL2のマネをするぐらいなら
WSL2を使うという理屈だよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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