Я сам не проверил это, но google раскрыл этот возможный ответ (статья от «how-to-geek»)
Вы можете настроить клиента ssh на автоматическую отправку кодового кода протокола no-op каждый количество секунд, чтобы сервер не отключил вас.
Глобальная конфигурация
Добавьте следующую строку в файл / etc / ssh / Файл ssh_config:
ServerAliveInterval 60
Число - это количество секунд перед сервером с отправкой кода no-op.
Current User Configuration
Добавить следующие строки в файл ~ / .ssh / config (создайте, если он не существует)
Host *
ServerAliveInterval 60
Убедитесь, что во второй строке есть пробел.
Per- Конфигурация хоста
Если вы хотите включить поддержку только для одного сервера, вы можете добавить это в файл ~ / .ssh / config со следующим синтаксисом:
Host *hostname.com
ServerAliveInterval 60
В частности, для sed вы можете использовать аргумент -i in-place. Он просто сохраняет исходный файл, например:
sed -i 's/ /-/g' filename
Если вы хотите сделать что-то более жесткое, если вы делаете больше, чем sed, да, вы можете буферизировать все это с помощью sponge (из пакета moreutils), который будет «впитывать» весь stdin перед записью в файл. Это похоже на tee, но с меньшей функциональностью. Однако для базового использования это в значительной степени замена:
cat file | some_sed_command | sponge file >/dev/null
Это безопаснее? Определенно. Вероятно, у него есть ограничения, поэтому, если вы делаете что-то колоссальное (и не можете редактировать на месте с помощью sed), вы можете захотеть сделать свои изменения во втором файле, а затем mv вернуть этот файл к исходному имени файла. Это должно быть атомарным (так что все, что зависит от этих файлов, не будет ломаться, если им нужен постоянный доступ).
Вы можете использовать Vim в режиме Ex:
ex -sc '%!some_sed_command' -cx filename
% выбрать все строки ! Запустить команду x Сохранить и выйти