「はい」コマンドのポイントは何ですか?


39

ありyes、基本的には無限に印刷し、UNIX / Linuxでのコマンドyにはstdout。それのポイントは何ですか、それはどのように便利ですか?


いくつかの余分な可能性がここに

1
「yes」コマンドのポイント何ですか?...(他の新しい質問の方がよりよく尋ねられ、よりよく答えられるため、これを重複として報告します)。
アディティア


回答:


41

yesは、そうでなければ要求するコマンドに対して肯定(または否定、たとえばyes n)応答を送信し、それによってコマンドを非対話的に実行するために使用できます。

yesコマンドをheadコマンドと組み合わせて使用​​して、テスト手段用の大容量ファイルを生成できます。

yesを使用すると、シングルプロセッサを搭載したシステムで100%のプロセッサ使用率が得られるため、システムが高負荷を処理する方法をテストするためにも使用できます(マルチプロセッサシステムの場合、プロセッサごとにプロセスを実行する必要があります)。これは、たとえば、プロセッサが100%で実行されているときにシステムの冷却システムが効果的かどうかを調査するのに役立ちます。

2006年、yesコマンドは、ユーザーのMacBookが断続的なシャットダウン症候群の影響を受けているかどうかをテストする手段として宣伝されました。Mac OS Xでターミナルを介してyesコマンドを2回実行することにより、ユーザーはコンピューターのCPUを最大限に活用でき、障害が熱に関連していたかどうかを確認できました。

ウィキペディア経由:http : //en.wikipedia.org/wiki/Yes_(Unix)


9
追加の損傷については、試してくださいyes `yes yes`
sendmoreinfo


ああ、それはいいストレステストです。試してみたところ、同僚に駆け寄り、新しいvm xDを求めました
Toastgeraet

17

これは議論の余地のある意見かもしれませんが、私の意見では、コマンドラインツールのユーザーインターフェースが悪い場合のい修正です

一部のコマンドラインツールは、プロンプトでユーザーに質問し、非対話的に実行するオプションがありません。たとえば次のようなものを想像してください

$ frobnicate *
frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
...

質問への回答は標準入力から取得されるため、この問題に対する簡単な解決策は、文字列をy\n継続的に出力するアプリケーションを使用することyesです。Unix パイプを使用して、この出力を特定のコマンドへの入力として送信できます。

$ yes | frobnicate

このアプローチの問題の1つは、yes回答している質問を確認する可能性がないことです。

frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
format device /dev/sda1? (y/n) y
frobnicate file c.txt? (y/n) y

よりよい解決策は、それが利用可能であるとき、など、非対話的に実行するための具体的なオプションですrm -fapt-get -y。これにより、アプリケーションでより賢明な動作をコーディングできます。


1
他のすべての答えを読みました。私はあなたの完全にyourい修正に完全に同意します...それ高いCPU負荷に対するコンピュータの応答をテストするための有効な用途を持ってますが。
ワイルドカード

6
もちろん、プロプライエタリなソフトウェア「Microsoft Windows」を使用して、高いCPU負荷に対するコンピューターの応答をテストすることもできますが、「yes」はオープンソースです。
ワイルドカード

1
それは最も美しいい修正の1つです
-Jezzamon

4

yesすべてが同じ名前の同じファイルを含む複数の.zipファイルを解凍するときに使用するのが好きで、それぞれの場合にどうするか尋ねられます(例:ライセンス契約)。

yes | for z in *.zip; do unzip "$z"; done 

2

ちょうどそれとは別の用途に出くわしました:単なるゼロとは異なるパターンでハードディスクを一掃するのが好きで(例:dd if = / dev / zero of = / dev / sdd bs = 1M)、「yes」を使用しました:

yes UUUUUUUUUUUUU > /dev/sdd


1

同僚がこれを斬新な方法で使用してパスワードを入力した

yes password | passwd

passwdユーザーがルートまたはスーパーユーザーではない場合、古いパスワードを最初に要求し、正しいパスワードが入力されない限り続行しません。そのため、ユーザーはrootであるpassword、古いパスワードでもあり、何も変更されません。
マイケルコニエツカ

@MichaelKonietzka確かに。しかし、あなたが述べた条件では、それはまだ有用なユースケースです。
frogstarr78

3
これが平文で歴史に残ることを除いて。Crazeyyy。
グレノ14

3
bashの@Glenoでは、その前にスペースを付けて記録されないようにすることができます(stackoverflow.com/q/640403/118153のように
Iiridayn 14

2
また、これにより、プロセスリスト内の(psまたはtop適切なタイミングで)すべてのローカルユーザーにパスワードが漏洩します。
フェデリコポロニ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.