ついに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/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:xOIYo2js2020/07/12(日) 00:03:51.97ID:8IVU8OYq
この板に来る奴の多くはシェルスクリプトしか(それも少しだけしか)できなくて他に選択の余地ない奴が多いだろ
2020/07/12(日) 00:05:51.50ID:7U4pPq4C
>>302
それはsedやawkじゃあかんのか?
それはsedやawkじゃあかんのか?
2020/07/12(日) 00:05:55.44ID:X6+2ZbgQ
>>303
そういうやつがわざわざここに来るとは思えんけどなぁ...
そういうやつがわざわざここに来るとは思えんけどなぁ...
2020/07/12(日) 00:17:51.66ID:s6Bmu8gK
2020/07/12(日) 00:29:09.06ID:8IVU8OYq
2020/07/12(日) 00:34:27.31ID:s6Bmu8gK
簡単だからこそ、用途に応じて使い分けるということは理解できないかな?
309login:Penguin
2020/07/12(日) 00:34:34.83ID:5U5bHZ+6 fzf などのインクリメンタルサーチで選択した文字列をそのまま端末の出力バッファに送り込みたい場合、bash環境ではPerlが使われる。
以下に端末の出力バッファに文字列を送る例を示す。0x5412は、bash環境におけるTIOCSTIの実値。
$ perl -e 'ioctl STDOUT, 0x5412, $_ for split //, do{ "echo hello\necho world\necho foobar" };'
以下に端末の出力バッファに文字列を送る例を示す。0x5412は、bash環境におけるTIOCSTIの実値。
$ perl -e 'ioctl STDOUT, 0x5412, $_ for split //, do{ "echo hello\necho world\necho foobar" };'
310309
2020/07/12(日) 00:41:10.00ID:5U5bHZ+6 訂正。
0x5412は、Linux環境におけるTIOCSTIの実値。
0x5412は、Linux環境におけるTIOCSTIの実値。
311login:Penguin
2020/07/12(日) 02:29:56.32ID:DN64b1Du 決まった処理させるのにコマンド羅列で済むから最初はbatにするんだけど
扱う対象が増えたりで少し便利にしたいと思ったら途端に面倒になるので
Perlに組み込むなんてことは普通によくある
扱う対象が増えたりで少し便利にしたいと思ったら途端に面倒になるので
Perlに組み込むなんてことは普通によくある
312login:Penguin
2020/07/12(日) 12:08:18.23ID:b0mOmfy0 Ubuntuの初心者ですが
皆さんはデスクトップは何を使用しているのでしょうか
良かったらお勧めのデスクトップを教えてください
皆さんはデスクトップは何を使用しているのでしょうか
良かったらお勧めのデスクトップを教えてください
2020/07/12(日) 12:12:35.50ID:lPaBZYh6
2020/07/12(日) 12:14:03.59ID:lPaBZYh6
書き込んでから気づいたがWSLスレだった。すまん
2020/07/12(日) 12:14:32.11ID:I0Hzl5QJ
可読性の高い、Ruby が確実。
漏れは、パッケージの更新も、Ruby スクリプトでやってる
#!/usr/bin/env ruby
# sudo のパスワードを自動入力する
puts `echo パスワード | sudo -S apt-get update`
puts `sudo apt-get upgrade -yV`
漏れは、パッケージの更新も、Ruby スクリプトでやってる
#!/usr/bin/env ruby
# sudo のパスワードを自動入力する
puts `echo パスワード | sudo -S apt-get update`
puts `sudo apt-get upgrade -yV`
316login:Penguin
2020/07/12(日) 13:13:20.26ID:5U5bHZ+6 パスワードをファイルにベタ書きしたらだめでしょ。
visudo でパスワードなし実行するユーザとコマンドを設定したほうがい。
visudo でパスワードなし実行するユーザとコマンドを設定したほうがい。
2020/07/12(日) 13:45:35.95ID:IgrSJcin
パッケージの更新とかならMakefileがお手軽じゃない?
2020/07/12(日) 14:16:56.67ID:7I/a/XJM
>>304
AWKには"文字"の置換はない("文字列"の置換はある)。Sedは内部に tr コマンドがない代わりに y コマ
ンドで"文字"の置換を行え、原理的に速いが、trコマンドやPerlの tr 演算子のように、文字の範囲指定
([0-9]で数字を構成する文字全て、等)ができないので、使い勝手で劣る。
AWKには"文字"の置換はない("文字列"の置換はある)。Sedは内部に tr コマンドがない代わりに y コマ
ンドで"文字"の置換を行え、原理的に速いが、trコマンドやPerlの tr 演算子のように、文字の範囲指定
([0-9]で数字を構成する文字全て、等)ができないので、使い勝手で劣る。
2020/07/12(日) 15:27:21.95ID:gM0oNR+O
2020/07/13(月) 03:50:31.62ID:z3yut/lS
>>301
それperlからシェル呼んでるだけだろ
それperlからシェル呼んでるだけだろ
2020/07/13(月) 05:28:24.03ID:Mfeh6D4T
コマンドを関数と同じように使える言語があってもいいと思うんですけどね
それがシェルなんだろうけど、言語なんでインタラクティブシェル機能ははなくていいw
なぜかみんなPOSIXシェルの代替を目指す。
そんなん無理だろうに
それがシェルなんだろうけど、言語なんでインタラクティブシェル機能ははなくていいw
なぜかみんなPOSIXシェルの代替を目指す。
そんなん無理だろうに
2020/07/13(月) 07:11:54.65ID:6r2RwdRo
シェルを介さずに外部コマンド呼ぶ方法なんてperlにもpythonにも普通にあるだろ
2020/07/13(月) 07:28:25.76ID:Mfeh6D4T
シェルを介さずに外部コマンド呼ぶことはできるが
パイプのように出力側と入力側でブロックせずに並列で処理を実行できる機能がない
パイプのように出力側と入力側でブロックせずに並列で処理を実行できる機能がない
2020/07/13(月) 07:31:30.16ID:6r2RwdRo
2020/07/13(月) 07:50:17.85ID:Mfeh6D4T
2020/07/13(月) 07:53:44.80ID:6r2RwdRo
>>325
子プロセス作ればいいだけじゃん
子プロセス作ればいいだけじゃん
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【MLB】大谷翔平無冠のメジャー9年目、MVP絶望的…シーズン成績確定 6年連続30発も…軒並み昨季下回る ILから復帰後21打数5安打8三振 [征夷大将軍★]
- 旧ジャニーズ、STARTO社��紅白ボイコット�&�道──「出演引きあげ」「共演NG」による��戦前�♂�帰 [征夷大将軍★]
- 【ボクシング】井上拓真が那須川天心を返り討ち 7回にダウン奪われるも「那須川天心を倒す」有言実行 WBC世界バンタム級 ★3 [鉄チーズ烏★]
- 【毎日世論調査】内閣支持率45%、3カ月ぶりに不支持率を上回る 改造の評価は [蚤の市★]
- 【速報】首相、日米は最も信頼し合える同盟国と伝達 ★6 [蚤の市★]
- ロシア外相 「日本とドイツは軍国主義」 国連で声明 ★4 [お断り★]
- トランプのイラン地上軍派遣作戦指示書、「地上」が聖書の語彙で「地上に天使の軍勢を遣わす」の意味だった。高市「自衛隊は天使軍よ!」 [784319933]
- 【動画】日産ディーラーさん、業績ボロボロなのに客が生配信しているという理由だけでブチギレ途中で商談終わらせ帰らせる [668024367]
- 【確定版】2026年大谷翔平(32歳DH専) .275 30本 81打点 OPS.889 野手WAR3.7
- 「Wi-Fi4以降の新規格は無意味で体感差もない」「アンテナも飾り」という家電量販店・無線LAN業界の不都合な真実 [422186189]
- 【悲報】今日も雨、金曜までずっと雨。来週月曜からまた雨が再開。流石におかしくないか? [793187428]
- タイの大洪水でHDD大幅値上げへ [838847604]