Відповідь на це залежить від того, яку оболонку ви використовуєте. Багато оболонки мають echo
як вбудована команда означає , що він не породжує окремий процес , і , отже , не буде доступний широкому в процесі лістингу. Однак якщо ви введете /bin/echo
або ./echo
вимкнете вбудовані enable -n echo
команди за допомогою команди, оболонка не буде використовувати свою вбудовану команду, а натомість використовуватиме двійкову версію. Це з’явиться в списку процесів.
Якщо ви використовуєте двійковий, а не вбудований оболонку, команда echo відображатиметься стільки часу, скільки потрібно для переміщення даних у буфер STDIN іншого процесу. Цей буфер має обмежений розмір, тому якщо в буфері буде більше даних, ніж вміститься, команда echo доведеться зависати деякий час, поки інший процес не зможе прочитати деякі дані з буфера. У більшості випадків (наприклад, два приклади, які ви подали вище) цей часовий період становитиме мікросекунди. Якщо ви випадково вставляєте дамп 20MB SQL в MySQL за допомогою echo, це може бути довше. Незалежно від того, наскільки короткий час, якщо ви використовуєте двійковий файл замість вбудованої оболонки, і хтось отримає правильний час, вони зможуть побачити процес у списку процесів.
Цього можна уникнути, ввівши секретні дані у файл (з відповідними дозволами) та використовуючи файл як STDIN таким чином:
mysql -u root -p < file_with_secret.sql