Команда printf
будет повторять формат столько раз, сколько необходимо, поэтому мы можем просто выполнить
print "%s\0"
Мы можем увидеть это в действии:
$ printf "%s\0" hello there | hdump -8
00000000 68 65 6C 6C 6F 00 74 68 hello.th
00000008 65 72 65 00 ere.
$ printf "%s\0" hello there everyone out there | hdump -8
00000000 68 65 6C 6C 6F 00 74 68 hello.th
00000008 65 72 65 00 65 76 65 72 ere.ever
00000010 79 6F 6E 65 00 6F 75 74 yone.out
00000018 00 74 68 65 72 65 00 .there.
Обратите внимание, что также помещает терминальный NUL в конец строки. Если вы этого не хотите, мы можем удалить его, например, с помощьюsed 's/.$//'
$ printf "%s\0" hello there everyone out there | sed 's/.$//' | hdump -8
00000000 68 65 6C 6C 6F 00 74 68 hello.th
00000008 65 72 65 00 65 76 65 72 ere.ever
00000010 79 6F 6E 65 00 6F 75 74 yone.out
00000018 00 74 68 65 72 65 .there
Версия nano для macOS не любит, когда ее стандартным выводом является канал. Ну, ничего страшного. Просто убей. Откройте другую вкладку терминала и запустите
pgrep nano
Если на выходе одно число, есть только один нанопроцесс, так что уничтожьте его.
pkill nano
Если pgrep
показывает несколько процессов, вам нужно определить, какой из них нужно убить. Беги
ps -eww |grep nano
Найдите строку, содержащую nano ps -e
. Первое число в этой строке — это идентификатор процесса. Скопируйте -, вставьте этот номер и передайте его команде kill
. Например, если вы видите
27629 ttys000 0:00.00 nano ps -e
, затем запустите
kill 27629
Процесс grep завершится автоматически, когда -левая сторона конвейера умрет.
Вы могли бы сделать все это и вернуть свой терминал. Вы все еще можете сделать это сейчас, это убьет некоторые бесполезные процессы (, но, конечно, это не вернет ваш терминал ).
Процесс агента ssh -работает нормально. Это идет с вашей сессией macOS. Вы не должны запускать ssh-agent -k
в macOS, и система не устанавливает SSH_AGENT_PID
так, что если вы запустите ssh-agent -k
, это фактически ничего не сделает.