web-dev-qa-db-ja.com

スクリプト/ dev / nullは何をしますか?

画面を実行するために別のユーザーにsuedしましたが、エラーCannot open your terminal '/dev/pts/4' - please check.が発生しました

解決策を見つけました:script /dev/nullそしてその後、スクリーンを使用できます。なぜこれが機能するのですか?新しい擬似端末を作成しますか?

6
C1sc0

UNIXでは、これは書き込み可能な仮想ファイルです。このファイルに書き込まれたデータは破棄されます。 Windowsマシンでのファイル呼び出しNULに似ています。

キーポイント;侵入者は、マシンをルート化するときに、ロギングを/dev/nullにリダイレクトすることがよくあります。たとえば、コマンドln -s /dev/null.bash_historyにより、システムはbashコマンドのロギングを停止します。

素人の言葉で言えば、それはブラックホールとほとんど同じことを意味します。一般的な使用方法:私が言わなければならないことが気に入らない場合は、コメントを/dev/nullに送信してください。

/ dev/nullを「ブラックホール」と考えてください。これは、書き込み専用ファイルに最も近いものです。それに書かれたものはすべて永久に消えます。読み取りまたは出力を試みても何も起こりません。それにもかかわらず、/ dev/nullはコマンドラインとスクリプトの両方から非常に便利です。

  • 書き込まれたすべてのデータを破棄しますが、書き込み操作が成功したことを報告します。
  • 標準出力とエラーの両方を/dev/nullにリダイレクトすることを意味します
  • スクリプトが何も表示しないようにします。窓のような「エコーオフ」

script /dev/nullは、画面にメッセージが表示されないようにします。メッセージを「ブラックホール」に誘導することにより、メッセージを抑制します。

また、 「script」を/ dev/null /にリダイレクトすることで、「screen」が別のユーザーとしてsuになっているときに機能するのはなぜですか?

ソース:Linux辞書

10
Mitch

基本的にスクリプトはすべての端末ダイアログをファイルに保存します。ファイルとして/ dev/nullを指定すると、スクリプトがファイルに保存するすべての内容がブラックホールに保存されます。

0
TMKCodes