expect
может регистрировать транзакцию сеанса и может оставаться без присмотра после некоторого начального взаимодействия. Это позволит вам запустить команду, взаимодействовать с ней, а затем набрать ~.
, чтобы передать все на expect
, пока программа не завершит работу. Между тем, out.1535209800
или что-то еще можно проверить.
#!/usr/bin/env expect
log_file out.[clock seconds]
spawn -noecho sh ;# here be the command to run
interact {
~. { return } ;# type this when done interacting
~~ { send "~" } ;# or this to get a literal ~ in the shell
}
if {[catch {
expect {
eof { exit }
match_max { exp_continue }
timeout { exp_continue }
}
} oops ]} { puts stderr $oops; exit 1 }
Точный ответ на заданный вопрос — нет, оболочка не имеет ничего общего с используемыми номерами портов. Оболочка — это всего лишь интерфейс между сущностями, такими как вы (, пользователь ), и командами/приложениями/службами, предоставляемыми системой.
Службы обычно предоставляют различные средства для изменения того, какой порт они используют.:
Большинство служб, в том числе ssh
, предлагают средства для изменения используемого порта путем редактирования файла конфигурации и перезапуска службы.
В случае ssh
это будет /etc/ssh/sshd_config
.
Тем не менее, ничто не мешает вам написать собственный скрипт для внесения таких изменений. sed
и awk
предлагают простые средства управления текстовыми файлами из скрипта.