接続シェルコマンドの違い

接続シェルコマンドの違い

私のタブが完了しましたBASHdebian) は、2 つのコマンドを組み合わせた異なる数字を示しています。いくつかの点では、権限が高いほど、より多くのコマンドを実行できます(例:sudo

;明らかにとのつながり方&&は若干異なります。

  • それらの違いは何ですか?
  • 権限を持つユーザーがアクセスできるコマンドの数の違いが減るのはなぜですかroot?私は数字が増加すると予想します(違い)。 (最も可能性が高い/一般的な理由)
nepumuk@nepumuk:~$  
Display all 2216 possibilities? (y or n)
nepumuk@nepumuk:~$ date ; 
Display all 2214 possibilities? (y or n)
nepumuk@nepumuk:~$ date && 
Display all 2216 possibilities? (y or n)
nepumuk@nepumuk:~$ date ; sudo 
Display all 2729 possibilities? (y or n)
nepumuk@nepumuk:~$ date && sudo 
Display all 2730 possibilities? (y or n)
nepumuk@nepumuk:~$ date ; man 
Display all 8127 possibilities? (y or n)
nepumuk@nepumuk:~$ date && man 
Display all 8127 possibilities? (y or n)

編集1:また、このクエリを実行して再起動すると、「可能性の数」が1つまたは2つ増加するという事実も見つかりました(ある程度予測可能なマニュアルの数に加えて).....

再現可能な動作が発生してから数回そうしました。

nepumuk@nepumuk:~$
Display all 2221 possibilities? (y or n)
nepumuk@nepumuk:~$ date ;
Display all 2221 possibilities? (y or n)
nepumuk@nepumuk:~$ date &&
Display all 2221 possibilities? (y or n)
nepumuk@nepumuk:~$ date ; sudo
Display all 2735 possibilities? (y or n)
nepumuk@nepumuk:~$ date && sudo
Display all 2735 possibilities? (y or n)

編集2sudo:「enable」を使用して一部のコマンドを実行することはできません。

nepumuk@nepumuk:~$ sudo alias
sudo: alias: command not found

sudoしたがって、コマンドの数(より正確にはコマンドセット)を使用するかどうかによって異なります。

答え1

私は表示された「可能性」が必ず実行できるプログラムではないと思います。たとえば、と入力すると、man実行できるタスクがたくさんあることが示されますman(例man ls:)。ルートかどうかに関係なく、実行できるコマンドの数は非常に似ている必要があります。ルートでない場合でも同じプログラムを実行できます。プログラムがroot権限を取得できない場合、エラーが報告されます。

&&との違いは;簡単です。&&右側のコマンドは、左側のコマンドが正常に完了した場合にのみ実行されます。;右側のコマンドは、左側のコマンドの完了方法に関係なく実行されます。行動は&&いわゆる話すことによって起こります。段落評価

具体的には、&&右側のコマンドは次の場合にのみ実行されます。終了コード左コマンドの値は 0 です。対照&&的に||、右側のコマンドは、左側のコマンドがゼロ以外の終了コードを返す場合にのみ実行されます。

関連情報