ついに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】7
https://mao.5ch.net/test/read.cgi/linux/1579395785/
探検
【Bash】Windows Subsystem for Linux【WSL】8
■ このスレッドは過去ログ倉庫に格納されています
2020/05/29(金) 17:58:21.78ID:N31NEDSz
2020/07/04(土) 12:37:55.60ID:T+FLHI+X
なるほど、xrdpでつなげばLinux側のデスクトップがそのまま使えるのか
2020/07/04(土) 13:38:05.99ID:ueejGPF4
別にguiサポートするのは構わんけどまずWSL2をちゃんとしてくれ
2020/07/04(土) 15:00:08.14ID:PA/pPUOM
2020/07/04(土) 20:55:05.16ID:IvwpFKJj
>>203
ちゃんとって?
ちゃんとって?
2020/07/04(土) 21:58:11.96ID:S1FiPV3+
車輪の再発明は時に清々しい。以下、curlコマンドを使ったお天気確認。
curl ja.wttr.in
curl ja.wttr.in
2020/07/05(日) 00:10:18.17ID:LobEAzla
WSL2のホームディレクトリってどこですか?
importでDドライブにインストールしたはずが起動時の空き容量の表記がおかしいのですがホームはCドライブに保存されるんですかね
importでDドライブにインストールしたはずが起動時の空き容量の表記がおかしいのですがホームはCドライブに保存されるんですかね
2020/07/05(日) 02:44:39.99ID:Ag7q3ncc
仮想マシンなんだからホストの空き容量なんか見ねえよ
2020/07/05(日) 02:51:49.29ID:MKmW4BVG
"WSL2のホーム"ってのがそもそもわからん
WSL2でインストールしたディストリのrootの実体はどこですか、ならまだわからんでもないが
そもそもvhdxかなんかで仮想化されてんじゃねっていう
WSL2でインストールしたディストリのrootの実体はどこですか、ならまだわからんでもないが
そもそもvhdxかなんかで仮想化されてんじゃねっていう
2020/07/05(日) 03:09:20.13ID:LobEAzla
分かりづらくてすみません
聞きたいことは
Linux上で書き込まれたデータは全てDドライブにあるVHDに書き込まれるからCドライブに書き込みすることはないのかってことです
聞きたいことは
Linux上で書き込まれたデータは全てDドライブにあるVHDに書き込まれるからCドライブに書き込みすることはないのかってことです
2020/07/05(日) 03:19:11.71ID:iD3GsNB8
デフォだとswap用のvhdxをユーザーのホームディレクトリ配下に作るね
.wslconfigで変更可能
.wslconfigで変更可能
2020/07/05(日) 15:39:48.86ID:LobEAzla
なるほど
ありがとうございます変更しました
ありがとうございます変更しました
213login:Penguin
2020/07/05(日) 18:51:35.65ID:Gd5Riea6 以前書き込みした者>>128です
今日色々試してやっと
Xfcデスクトップの導入及び日本語表示まで出来るようになりました
只Windows10上でUbuntuを開いたターミナルではlynxに設定のemacsは日本語での書き込みは出来ますが
Xfcのディスクトップでのemacsは何故か出来ません。勿論lynxを稼働してemacsを開いても
日本語表示はするが日本語での書き込みが出来ません
又firefoxの日本語化表示も出来ましたが日本語での書き込みは出来ません
又firefoxでyutubeの動画を見ても音は出ませんでした
だからもうCUIでの使用でいいやとあきらめていましたが
偶然ですがXfcディスクトップ画面が開いているときに
windowsキーを押しながら下矢印を押すとWindows10のタスクバーがした画面に表示されました
きっと皆さんは今頃言うかでしょうが
これでXfcのディスクトップ画面上でWindows10の使用が出来るし
Ubuntuの使用も出来るようになり何の切り替えもなくシームレスに使用できるようになりました
Ubuntud上での音が出ない事や日本語が書き込みできないことも必要でなくなりました
以上報告でした
今日色々試してやっと
Xfcデスクトップの導入及び日本語表示まで出来るようになりました
只Windows10上でUbuntuを開いたターミナルではlynxに設定のemacsは日本語での書き込みは出来ますが
Xfcのディスクトップでのemacsは何故か出来ません。勿論lynxを稼働してemacsを開いても
日本語表示はするが日本語での書き込みが出来ません
又firefoxの日本語化表示も出来ましたが日本語での書き込みは出来ません
又firefoxでyutubeの動画を見ても音は出ませんでした
だからもうCUIでの使用でいいやとあきらめていましたが
偶然ですがXfcディスクトップ画面が開いているときに
windowsキーを押しながら下矢印を押すとWindows10のタスクバーがした画面に表示されました
きっと皆さんは今頃言うかでしょうが
これでXfcのディスクトップ画面上でWindows10の使用が出来るし
Ubuntuの使用も出来るようになり何の切り替えもなくシームレスに使用できるようになりました
Ubuntud上での音が出ない事や日本語が書き込みできないことも必要でなくなりました
以上報告でした
2020/07/05(日) 20:12:03.34ID:sMDlceKk
「ディスクトップ」が気になるけど良かったね
2020/07/05(日) 21:08:32.27ID:JZBgzgsh
ディスケットに変更しろ
2020/07/05(日) 21:23:51.60ID:cTBT4P4e
Dellのマニュアルにディスケットって書いてあったな。
なんのこっちゃとオモタわ。
なんのこっちゃとオモタわ。
217login:Penguin
2020/07/06(月) 04:35:23.12ID:IztfREjA WSL で、GUI が使えるの?
リモートデスクトップが必要なのでは?
リモートデスクトップが必要なのでは?
2020/07/06(月) 06:35:34.84ID:X1jLmIOv
xrdp動かせばXサーバいらず
219login:Penguin
2020/07/06(月) 11:05:50.56ID:j4eG9HhS 説明が下手なので下記の画像を見れば分かると思います
よく5chで使用しているアップローダーは登録が嫌なので
下記にアップしました
尚Windowsのディスクトップ画面を表示したい場合はタスクトレー上で右クリックして
ディスクトップを表示をクリックすればいいです
又Ubuntuの画面(デフォのネズミのディスクトップ画面から他の画面に変更しています)
に戻りたければタスクトレーにあるXlaunchアイコンをクリックすればOKです
https://jisaku.155cm.com/src/1594000778_9a71c9f0263afcbc67afb38ee1471c92ce677fcf.jpg
https://jisaku.155cm.com/src/1594000778_b39201cdb89a6f7ef465c1f4f052485aed5db359.jpg
よく5chで使用しているアップローダーは登録が嫌なので
下記にアップしました
尚Windowsのディスクトップ画面を表示したい場合はタスクトレー上で右クリックして
ディスクトップを表示をクリックすればいいです
又Ubuntuの画面(デフォのネズミのディスクトップ画面から他の画面に変更しています)
に戻りたければタスクトレーにあるXlaunchアイコンをクリックすればOKです
https://jisaku.155cm.com/src/1594000778_9a71c9f0263afcbc67afb38ee1471c92ce677fcf.jpg
https://jisaku.155cm.com/src/1594000778_b39201cdb89a6f7ef465c1f4f052485aed5db359.jpg
2020/07/06(月) 12:51:25.65ID:zz8Rmtmu
ディ
2020/07/06(月) 17:32:40.69ID:fkFgrscX
>>218
全画面だけでいいなら、それで決まりだね。
全画面だけでいいなら、それで決まりだね。
222login:Penguin
2020/07/06(月) 17:51:46.59ID:xnDwd6P9 Windows 10 ProのVPSを借りていて、Windows内でネストしてVT-xは使えないんだけどさ
こういう場合ってやっぱWSL2にすると使えなくなるのかな?
こういう場合ってやっぱWSL2にすると使えなくなるのかな?
2020/07/06(月) 19:03:53.54ID:eXLZ9Y9J
しらんけど、HyperVはネストに対応しているので
Windows 10の仮想マシンでWSL2を使うことができてる
Insider Previewを使ってる人の多くが
仮想マシンに入れてWSL2の検証をしたいただろう
Windows 10の仮想マシンでWSL2を使うことができてる
Insider Previewを使ってる人の多くが
仮想マシンに入れてWSL2の検証をしたいただろう
2020/07/06(月) 21:21:33.98ID:UdrWxuu2
ちゃんとした画面えみゅらないとOpenGLとか動かないだろ
225login:Penguin
2020/07/06(月) 22:27:17.59ID:oiLZmKnU wsl で bash を使おうとしているのですが文字に色がついているため非常に読みにくいです
(最近老眼のためか一部の色が極端に見づらくなりました)
色づけをやめてすべて白一色で表示するようにするにはどうしたらいいでしょうか?
(最近老眼のためか一部の色が極端に見づらくなりました)
色づけをやめてすべて白一色で表示するようにするにはどうしたらいいでしょうか?
2020/07/07(火) 01:37:42.41ID:vkXM0LXf
画面のコントラストを下げる
2020/07/07(火) 07:55:35.28ID:3EK+fba6
まあWSLではなく、ターミナル(エミュレータ)の設定の問題だよね。
ここで聞かれても…
ここで聞かれても…
2020/07/07(火) 08:51:53.82ID:ScthUm4d
プロンプトの色変更はターミナル側の設定だけど
lsでディレクトリが青文字になってしまう問題はカラーテーマ変えてもしんどいからwsl側で設定したほうがいい
https://www.kwbtblog.com/entry/2019/04/27/023411
lsでディレクトリが青文字になってしまう問題はカラーテーマ変えてもしんどいからwsl側で設定したほうがいい
https://www.kwbtblog.com/entry/2019/04/27/023411
2020/07/07(火) 11:50:26.46ID:3EK+fba6
表示に関わらず一律に単色表示にしたい、という要望なのだから
プロンプトや各コマンドの表示設定ではなくターミナルエミュレータの設定だろう
WSLは関係ないし、ここで聴くことでもない。このようにピンボケした第三者がノコノコ現れるのも迷惑だ。
プロンプトや各コマンドの表示設定ではなくターミナルエミュレータの設定だろう
WSLは関係ないし、ここで聴くことでもない。このようにピンボケした第三者がノコノコ現れるのも迷惑だ。
230login:Penguin
2020/07/07(火) 14:24:03.11ID:0Fc1oIgP 漏れは、Ubuntu 18.04 で、
ColorTool.exe で、Windows の色を変えているけど、
WSL が暗いので明るくしたら、PowerShell で明るすぎて見えない
例えば、コマンド入力時に、色を付けない事はできる
la -p --color=never
~/.bashrc の83行目移行で、色を付けている
alias ls='ls --color=auto'
alias grep='grep --color=auto'
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
とあるから、~/.dircolors が読み取り可能なら、
そのファイルをdircolors コマンドで処理すると読めるから、
~/.dircolors で設定できるのかも
ColorTool.exe で、Windows の色を変えているけど、
WSL が暗いので明るくしたら、PowerShell で明るすぎて見えない
例えば、コマンド入力時に、色を付けない事はできる
la -p --color=never
~/.bashrc の83行目移行で、色を付けている
alias ls='ls --color=auto'
alias grep='grep --color=auto'
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
とあるから、~/.dircolors が読み取り可能なら、
そのファイルをdircolors コマンドで処理すると読めるから、
~/.dircolors で設定できるのかも
231230
2020/07/07(火) 14:39:29.53ID:0Fc1oIgP >>228
のサイトでは、ColorToolのバイナリ配布がなくなったと書いてあるけど、
下に、ColorTool.zip がある
https://github.com/microsoft/terminal/releases/tag/1904.29002
WSLでターミナルの文字色を変える(2019/8/10版)
https://qiita.com/ligun/items/0a63660e1d8b486232d9
漏れが試した中では、これがマシだけど、まだ見にくい
ColorTool.exe -d deuteranopia.itermcolors
のサイトでは、ColorToolのバイナリ配布がなくなったと書いてあるけど、
下に、ColorTool.zip がある
https://github.com/microsoft/terminal/releases/tag/1904.29002
WSLでターミナルの文字色を変える(2019/8/10版)
https://qiita.com/ligun/items/0a63660e1d8b486232d9
漏れが試した中では、これがマシだけど、まだ見にくい
ColorTool.exe -d deuteranopia.itermcolors
2020/07/07(火) 15:35:33.86ID:MDiVDN7d
コマンド画面の色はautoexec.batで指定するんだよ
config.sysでちみとにるとんと読ませるのも忘れずにな
config.sysでちみとにるとんと読ませるのも忘れずにな
233230
2020/07/07(火) 15:51:16.61ID:0Fc1oIgP 色を付けない、la, ll のalias を、
~/.bashrc か、~/.bash_aliases に定義するのが簡単
alias lan='la -p --color=never'
alias lln='ll -p --color=never'
ただ、~/.bashrc では、grep などにも色を付けているけど
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
~/.bashrc か、~/.bash_aliases に定義するのが簡単
alias lan='la -p --color=never'
alias lln='ll -p --color=never'
ただ、~/.bashrc では、grep などにも色を付けているけど
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
234230
2020/07/07(火) 15:58:51.40ID:0Fc1oIgP 漏れは、Ubuntu 18.04 で、
ColorTool.exe で、Windows の色を変えているけど、
WSL が暗いので明るくしたら、
今度はVSCode で、PowerShell を起動したら、明るすぎて見えない
これらを両立させるのが難しいので、
色を付けない、--color=never の、la, ll のalias を定義している
ColorTool.exe で、Windows の色を変えているけど、
WSL が暗いので明るくしたら、
今度はVSCode で、PowerShell を起動したら、明るすぎて見えない
これらを両立させるのが難しいので、
色を付けない、--color=never の、la, ll のalias を定義している
2020/07/07(火) 17:26:18.62ID:O5VE5X3t
gimpインストールしてgimp開いたと思ったとたんXサーバーが落ちた
何かとか弱いんだな
何かとか弱いんだな
2020/07/07(火) 18:26:15.72ID:YYImeKjE
WSLって結局何に使ってる?
pythonもgitもWin側に入れてるから使いみちがないわ
pythonもgitもWin側に入れてるから使いみちがないわ
2020/07/07(火) 20:36:13.77ID:re05twJJ
>>225
\ls
\ls
2020/07/07(火) 20:40:20.05ID:JVYy2LEm
ctags
2020/07/07(火) 20:41:16.60ID:re05twJJ
>>236
emacs
emacs
2020/07/07(火) 22:43:59.55ID:2jBYURUv
>>236
究極的にはWindowsでLinuxと同じ環境ができてしまったら
WSLが必要ないのは当たり前
問題は同じ環境を作る手間
例えばPythonを複数のバージョンインストールして
切り替えたいと思ったらどうするかね?
そういう仕組みを作れば出来る。
その仕組みを作るまでが大変。
WSLは既存のLinuxの仕組みをそのまま使える
究極的にはWindowsでLinuxと同じ環境ができてしまったら
WSLが必要ないのは当たり前
問題は同じ環境を作る手間
例えばPythonを複数のバージョンインストールして
切り替えたいと思ったらどうするかね?
そういう仕組みを作れば出来る。
その仕組みを作るまでが大変。
WSLは既存のLinuxの仕組みをそのまま使える
2020/07/07(火) 22:45:11.48ID:vKQ2n6hj
てすと
2020/07/07(火) 22:47:02.63ID:8+syWFqb
2020/07/08(水) 07:27:50.65ID:jsOqEhM+
>>236
w3m, vim, less, sed, awk, zip, translate-shell, html2text, wget, zsh, tmux, ssh, gsl, gmp, gprof, make, GNU R, Julia, GNU coreutils
w3m, vim, less, sed, awk, zip, translate-shell, html2text, wget, zsh, tmux, ssh, gsl, gmp, gprof, make, GNU R, Julia, GNU coreutils
2020/07/08(水) 07:30:16.74ID:CBdq2r1b
>>234
わざわざそこまでするなら別のターミナル使えばいいのに
わざわざそこまでするなら別のターミナル使えばいいのに
245login:Penguin
2020/07/08(水) 08:53:56.96ID:DJr4ISUL 日本語辞書mecab-ipadic-neologdをMecab用から検索エンジンlucene用に変換するのにWSLを使ってる。
https://github.com/neologd/mecab-ipadic-neologd
https://github.com/neologd/mecab-ipadic-neologd
2020/07/08(水) 10:48:36.58ID:caZYZiep
おれはlynxをファイルエクスプローラとして使いファイルを書いたり変更したりしてる
lynxにemacsを設定してるから使い易い
lynxにemacsを設定してるから使い易い
2020/07/08(水) 13:12:22.34ID:SDDjbsTE
>>236
漏れは、自分のPC 内のWindows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL を使って、
Linux側に、プロジェクトを作っている
Windows側からのブラウザアクセスは、
VSCodeの拡張機能・open in browser ではローカルファイルアクセスとなるので制限されるが、
VSCodeの拡張機能・Live Server では、サーバーを立ててのアクセスとなるので制限されない
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
同様のツールに、asdf もある
漏れは、自分のPC 内のWindows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL を使って、
Linux側に、プロジェクトを作っている
Windows側からのブラウザアクセスは、
VSCodeの拡張機能・open in browser ではローカルファイルアクセスとなるので制限されるが、
VSCodeの拡張機能・Live Server では、サーバーを立ててのアクセスとなるので制限されない
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
同様のツールに、asdf もある
2020/07/08(水) 14:12:08.29ID:/xPQ8brp
>>225
WindowsストアからWindowsターミナルをインストールしてWSL使うといいよ
WindowsストアからWindowsターミナルをインストールしてWSL使うといいよ
2020/07/09(木) 04:10:02.79ID:BKjg1Ggo
2020/07/09(木) 07:04:16.77ID:sqQbyxkS
>>249
普通にできると思うが?
普通にできると思うが?
2020/07/09(木) 09:08:55.63ID:IBvWLz/0
>>249
簡単に出来るじゃん
簡単に出来るじゃん
252login:Penguin
2020/07/09(木) 11:51:46.30ID:VUYm/kqB 簡単ではないでしょ。
バッチファイルをシェルスクリプトに置き換えるプログラミング技術が必要になる。
バッチとシェルでは引数展開の仕様やシングルクォート・ダブルクォートの解釈も違う。
バッチファイルをシェルスクリプトに置き換えるプログラミング技術が必要になる。
バッチとシェルでは引数展開の仕様やシングルクォート・ダブルクォートの解釈も違う。
253login:Penguin
2020/07/09(木) 11:57:09.19ID:VUYm/kqB bashとzshでさえ引数展開で違うところがあって困ることがある。
シェルスクリプトで頑張るをあきらめてPython使うのが無難だとは思う。
PerlもGit for Windowsに標準で付属されているので悪くない選択肢だけど、
プログラミング言語初心者に保守してもらうのを想定するならPythonかねぇ。
シェルスクリプトで頑張るをあきらめてPython使うのが無難だとは思う。
PerlもGit for Windowsに標準で付属されているので悪くない選択肢だけど、
プログラミング言語初心者に保守してもらうのを想定するならPythonかねぇ。
2020/07/09(木) 12:17:15.21ID:57QfF9jh
シェルスクリプトはshで動作するコマンドのみで書くべき、というのは大前提だが
Linuxが蔓延して、shの実体なんてどうせbashなんだからスクリプトなんてもうbash基準でいいじゃん…てなってしまったのが現実ではある
…が、zsh依存とか自前でゴチャゴチャ書くだけなら勝手にすればいいが、外に出したら叩かれるわ。悩む要素ないだろ
Linuxが蔓延して、shの実体なんてどうせbashなんだからスクリプトなんてもうbash基準でいいじゃん…てなってしまったのが現実ではある
…が、zsh依存とか自前でゴチャゴチャ書くだけなら勝手にすればいいが、外に出したら叩かれるわ。悩む要素ないだろ
2020/07/09(木) 12:31:16.90ID:sqQbyxkS
256login:Penguin
2020/07/09(木) 12:49:35.14ID:M1UcQIHC 釣り大会でもやってんのか
2020/07/09(木) 12:51:18.49ID:HI45RHdB
先生、獲物が絶滅危惧種のようです
2020/07/09(木) 13:04:15.97ID:Za/n0UAl
ここでいうshは、Bourne Shellのことなんだろ。
bashはオープンソースな上位互換シェル
bashはオープンソースな上位互換シェル
2020/07/09(木) 13:11:53.18ID:VUYm/kqB
釣りなら fish でしょ。
2020/07/09(木) 13:14:35.13ID:0y13rq6p
>>259
うまいねえ〜
うまいねえ〜
2020/07/09(木) 13:21:36.52ID:Za/n0UAl
fish とは上手いけど、本当は dash だろ。
2020/07/09(木) 13:22:21.12ID:y78RNX7h
長いことzsh使ってきたけどfishの素晴らしさを知って完全に乗り換えたわ。
bashはスクリプト用にしか使わない。
bashはスクリプト用にしか使わない。
2020/07/09(木) 13:48:52.67ID:6K8YgOI6
dashを知らない人がいるのかw
今どき/bin/shがbashって頭わいとんのかw
今どき/bin/shがbashって頭わいとんのかw
2020/07/09(木) 13:49:36.59ID:6K8YgOI6
265login:Penguin
2020/07/09(木) 14:18:05.47ID:FBsc4kM4 dash dash dash
fish and bash
fish and bash
266login:Penguin
2020/07/09(木) 14:18:44.15ID:FBsc4kM4 そんときーおーれがー
Super Heroさ
Super Heroさ
2020/07/09(木) 14:19:19.60ID:6K8YgOI6
略してSH
H ero
H ero
268login:Penguin
2020/07/09(木) 15:02:10.10ID:FBsc4kM4 H x EROS
2020/07/09(木) 17:46:33.54ID:y78RNX7h
オープニングの最後に出てくるドクロみてえな奇怪な物体にいつもビビってたわ
2020/07/10(金) 00:21:32.27ID:HRVLTHUg
Linuxが蔓延して、shの実体はPOSIX準拠に近いdashになってしまったな
bashこれからどうなるの?
bashこれからどうなるの?
2020/07/10(金) 01:50:07.40ID:4LyImNtn
2020/07/10(金) 03:23:43.67ID:NmUqS/NF
>>269
俺もミイラの頭蓋骨だと思ってたw
俺もミイラの頭蓋骨だと思ってたw
2020/07/10(金) 07:01:21.17ID:2zlh8yTt
シェルスクリプトの代わりは、可読性が高い、Ruby
2020/07/10(金) 08:54:29.50ID:3qY5cuD2
>>271
難しいかどうかの話はしてないよ
シェルスクリプトには「得意なこと」があって
その「得意なこと」は他の言語よりもシンプルに書ける
という事実があるってことだよ
シェルスクリプトは低機能な言語じゃなくて
特定の用途に特化した言語だってこと
その特定の用途を他の言語でやると面倒になる
だからシェルスクリプトの代わりになる言語なんて無いよ
難しいかどうかの話はしてないよ
シェルスクリプトには「得意なこと」があって
その「得意なこと」は他の言語よりもシンプルに書ける
という事実があるってことだよ
シェルスクリプトは低機能な言語じゃなくて
特定の用途に特化した言語だってこと
その特定の用途を他の言語でやると面倒になる
だからシェルスクリプトの代わりになる言語なんて無いよ
2020/07/10(金) 15:33:12.81ID:IfTnLADh
腰を据えてやりたいときは、今はほとんどpythonだけど、
ちょっとしたことをしたいときに、いちいちモジュールのインポートをしなければならないのは面倒くさい
普段使ってるコマンドをそのまま呼び出せるのは、シェルで解釈する系のスクリプト(バッチファイル含む)のいいところ
ワンライナーの簡単なperlは、呼び出されるコマンドの一つになってる
まぁ、おそらくこのスレの住人はだいたい同じように考えてるとは思うけど
ちょっとしたことをしたいときに、いちいちモジュールのインポートをしなければならないのは面倒くさい
普段使ってるコマンドをそのまま呼び出せるのは、シェルで解釈する系のスクリプト(バッチファイル含む)のいいところ
ワンライナーの簡単なperlは、呼び出されるコマンドの一つになってる
まぁ、おそらくこのスレの住人はだいたい同じように考えてるとは思うけど
276login:Penguin
2020/07/10(金) 15:52:46.98ID:juHBeHXl2020/07/10(金) 16:26:39.41ID:+mRN7Lhh
バイナリー扱うんじゃなければ、awkで十分
2020/07/10(金) 16:33:46.57ID:TH1a5vMX
シェルスクリプトでしのごうとする癖を改めて、最初からPython,Perl,Rubyで書く習慣をつけたほうがいい。
2020/07/10(金) 17:46:23.11ID:MFJxS89C
>>278
何で?
何で?
280login:Penguin
2020/07/10(金) 17:55:31.86ID:TH1a5vMX2020/07/10(金) 18:05:32.05ID:+mRN7Lhh
WSH
2020/07/10(金) 18:29:09.52ID:/zgyc019
そんなことするなら、GoとかRustの方がいいんじゃね?
2020/07/10(金) 18:47:19.69ID:3qY5cuD2
2020/07/10(金) 19:15:17.17ID:nsbhQHFP
2020/07/10(金) 19:32:29.58ID:MFJxS89C
シェルスクリプトは機能追加しにくいってのは意味不明だけど、何を使って実装するかは、対象によって変えるのが普通で、シェルで作った物をコンパイル言語で書き換えることになったりしないよ
2020/07/10(金) 22:38:51.18ID:Vn3GUL1J
>>280
先人の知恵を使う方が速いし楽だ。先ずはcoreutilsとsed,awkで。それでできなかったら、pythonでもjuliaでも好きなの使えばよろし
先人の知恵を使う方が速いし楽だ。先ずはcoreutilsとsed,awkで。それでできなかったら、pythonでもjuliaでも好きなの使えばよろし
2020/07/11(土) 01:11:43.13ID:CJsJjspQ
シェルスクリプトの複雑怪奇なワンライナーとかじゃなくて
2〜3個コマンドつなげただけの単純なワンライナーでも
それを他の言語にするとバグあるんじゃねーかこれ?レベルの
テストが必要なコードになるからね
シェルスクリプトで書くと後で他の言語に書き直したくなるっていうのは
そもそも最初にシェルスクリプトを選んだのが間違いってだけ
2〜3個コマンドつなげただけの単純なワンライナーでも
それを他の言語にするとバグあるんじゃねーかこれ?レベルの
テストが必要なコードになるからね
シェルスクリプトで書くと後で他の言語に書き直したくなるっていうのは
そもそも最初にシェルスクリプトを選んだのが間違いってだけ
2020/07/11(土) 17:27:01.11ID:nH0xaI8V
LLで書くまでもないと思ってシェルスクリプトで書いてもあとからやっぱりLLにしておけばよかったてのはよくある
2020/07/11(土) 17:29:06.03ID:ss8oSOoU
そういうのはそもそもシェルスクリプトで書くべきではなかっただけ
なぜ用途で使う言語を選ぶことができないのか?
なぜ用途で使う言語を選ぶことができないのか?
2020/07/11(土) 17:38:07.09ID:k15GPxxj
つ「馬鹿の一つ覚え」
2020/07/11(土) 17:38:47.21ID:k15GPxxj
つ「一知半解」
2020/07/11(土) 17:48:25.48ID:vh5QM+xj
結局どっちで書くべきだったのかは実際書いてみないとわからない時もある
一見コマンドの組み合わせで何とかなりそうに見えたからシェルスクリプトで組んでみたものの思いの外処理が複雑でawk,sedでは辛かったり
(以前そういう処理書いてたときは複雑な部分だけpythonで書いて
シェルスクリプト内でpythonをパイプで挟んだ)
一見コマンドの組み合わせで何とかなりそうに見えたからシェルスクリプトで組んでみたものの思いの外処理が複雑でawk,sedでは辛かったり
(以前そういう処理書いてたときは複雑な部分だけpythonで書いて
シェルスクリプト内でpythonをパイプで挟んだ)
2020/07/11(土) 18:32:50.26ID:ss8oSOoU
> の思いの外処理が複雑でawk,sedでは辛かったり
?
awkは行と列単位の処理
sedは行単位の置換
変にGNUの拡張使うのがいかんのやろ
できるからやるんじゃなくて、それぞれのコマンドに適した問題を
そのコマンドでやればいいだけだよ。適してるかなんてすぐわかるじゃん。
問題が適していないとわかった時点で、別の方法を使えばいい。
それにさ、awkやsedでつらいっていうけど、それシェルスクリプトじゃないから。
awkがつらい、sedがつらい。ならあんたが言うように
awkやsedの部分だけをpythonに置き換えればいいだけ
それはawkやsedを置き換えてるのであって、シェルスクリプトを置き換えてはいない
?
awkは行と列単位の処理
sedは行単位の置換
変にGNUの拡張使うのがいかんのやろ
できるからやるんじゃなくて、それぞれのコマンドに適した問題を
そのコマンドでやればいいだけだよ。適してるかなんてすぐわかるじゃん。
問題が適していないとわかった時点で、別の方法を使えばいい。
それにさ、awkやsedでつらいっていうけど、それシェルスクリプトじゃないから。
awkがつらい、sedがつらい。ならあんたが言うように
awkやsedの部分だけをpythonに置き換えればいいだけ
それはawkやsedを置き換えてるのであって、シェルスクリプトを置き換えてはいない
2020/07/11(土) 18:38:28.69ID:k15GPxxj
<<を使えば良いのに
2020/07/11(土) 20:30:10.89ID:6BqHmbZe
sedが辛ければ、普通はperlを使うだろ
2020/07/11(土) 21:55:52.15ID:R/CfnAdC
素直に最初からperlで組んどけばよかったんじゃ
2020/07/11(土) 22:31:18.49ID:ss8oSOoU
つまりsedじゃなくてperlを使うという話で
シェルスクリプトとは関係ないわけだ
シェルスクリプトとは関係ないわけだ
2020/07/11(土) 22:37:00.28ID:R/CfnAdC
perlがこの先生きのこるうえでシェルスクリプトっぽく見えるperlの言語仕様が長所になるかもね。
2020/07/11(土) 22:42:26.16ID:ss8oSOoU
Perlで foo | bar | baz と同じことをするものを作る場合どうするの?
2020/07/11(土) 22:48:27.46ID:Q8Accifd
echo HOGE | perl -pe "s/O/A/"
とやればOをAに置換できる
とやればOをAに置換できる
2020/07/11(土) 23:10:23.61ID:R/CfnAdC
>>299
単に実行するだけなら
system("foo | bar | baz");
ただしsystem()は標準出力される文字列を再利用やリダイレクトできない。
出力結果を変数$hogeに格納するなら
my $hoge = `foo | bar | baz`;
出力を一行ずつ処理したいなどの要求があるなら、素直にパイプ処理のコードを書く必要がある。
単に実行するだけなら
system("foo | bar | baz");
ただしsystem()は標準出力される文字列を再利用やリダイレクトできない。
出力結果を変数$hogeに格納するなら
my $hoge = `foo | bar | baz`;
出力を一行ずつ処理したいなどの要求があるなら、素直にパイプ処理のコードを書く必要がある。
302login:Penguin
2020/07/11(土) 23:46:31.52ID:xOIYo2js■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【大炎上】港区の居酒屋「スミビヤ田町本店」でバイトテロ再来 悪ノリ動画が招いた地獄絵図 提供前の料理を素手でパクリ [ぐれ★]
- 【ボクシング】中谷潤人、転向初戦は3-0判定勝ち 現役日本人最多の32連勝でSバンタム級白星発進 [鉄チーズ烏★]
- NECが4G・5G基地局の機器開発中止、国産化後退 防衛用は継続 [蚤の市★]
- 【本】生きる権利がない......「日本人ファースト」の標的にされた、「仮放免」の子どもたちとは(池尾 伸一/東京新聞編集委員) [少考さん★]
- 【ココイチ】「CoCo壱、高い」のブーイングはなぜ起こる? “贅沢していないのに割高”と思わせるものの「正体」★2 [ぐれ★]
- 「ミセスってロックバンドなのか?」紅白でミセスが「史上初“ロックバンド”が大トリ」報道に一部からは「ポップスでは?」の声が★2 [muffin★]
- Fate/GOスレ
- 自民、小野田紀美、実績ゼロだった。なんで大臣になれたのか?😲 [521921834]
- この時間から飲む酒は格別やな
- 【悲報】AI競争で周回遅れの日本、パワー系AIなら勝機があると確信。高市早苗が1兆円投資 [483862913]
- ちんかわ余りまくってる
- 【実況】博衣こよりのえちえち利用規約同意🧪★5
