回答:
スイッチのこのような場合には重要性を持っていません。それぞれ、彼らが行うことは次のとおりです。-S-psudo
-Sスイッチが原因sudoSTDINからパスワードを読み取ること。これにより、たとえば、またはにパスワードをパイプするsudoことがechoできcatます。この
-pスイッチを使用すると、デフォルトのパスワードプロンプトを上書きして、カスタムのパスワードプロンプトを使用するか、まったく使用しないことができます。
重要な違いは、によって発行される2つのコマンドにありますsudo。
この
haltコマンドを-pスイッチなしで呼び出すと、OSが停止し、すべてのCPUが停止します。システムが完全に停止したら、ユーザーは手動でコンピューターの電源ボタンを安全に押すことができます。
poweroff、shutdown -h now、およびhalt -pコマンドは、すべて同じことを行うhalt、さらに主電源を切断する電源部をシグナリングするACPIコマンドを送信しながら、単独で。これにより、コンピューターの電源ボタンを物理的に押す必要がなくなります。
haltではなくshutdown、それらは異なるコマンドです。前者は、-pオプションが使用されない限り、電源をオフにしません
マニュアルから(man halt):「-p、--poweroff:停止コマンドに代わりに電源オフとして動作するよう指示します。」
そして、あなたのケースでは、-pしていないで使用しhalt、したがって、コンピュータがして、コマンドではない電源オフ。
この-pとfromを混同しないでください。これsudoは、異なるコマンドの異なるパラメーターです。からman sudo:
-S -S(stdin)オプションを使用すると、sudoは端末デバイスではなく標準入力からパスワードを読み取ります。パスワードの後には改行文字が必要です。-p prompt -p(プロンプト)オプションを使用すると、デフォルトのパスワードプロンプトを上書きして、カスタムパスワードプロンプトを使用できます。あなたの場合、prompt空です(パスワードを要求するときにsudoに対してメッセージは表示されません)、-Sはsudoにrootパスワードvi stdinを受け入れさせます(したがって、パスワードは入力せずに他のコマンドからのパイプとリダイレクトを使用して提供されます)
Unix SEサイトでshutdownvs halt問題についての良い答えがあります:HaltコマンドとShutdownコマンドの違いは何ですか?
sudo -S -p ''部分に関しては、これはターミナルでパスワードを尋ねることについてのメッセージを削除します(ただし、まだパスワードを入力しています)
たとえば、実行sudo <some_command>すると、このコマンドを実行する前にこの出力が得られます。
[sudo]パスワード:
ただし、実行sudo -S -p '' <some_command>するとそのメッセージは非表示になります。
実際、引用符で囲んだメッセージは、前のメッセージを置き換えています。
先に進み、以下を試して、違いを確認してください。
sudo -S -p 'Hey, I am a custom message.' ls
shutdown -h now必ずしも電源を切るわけでもありません。ごとman shutdownに、システムに依存します。shutdown -H now(上のキャップに注意してくださいH)と同等であることが保証されているhalt