Предположим, что я имею
export MY_VAR=0
в~/.bashrc
.Это - Ваша ошибка тут же. Необходимо определить переменные среды в
~/.profile
, который читается, когда Вы входите в систему.~/.bashrc
читается каждый раз, когда Вы запускаете оболочку; при запуске внутренней оболочки она переопределяетMY_VAR
. Если бы Вы не сделали этого, Ваша переменная среды распространила бы вниз.Для получения дополнительной информации о
~/.bashrc
по сравнению с~/.profile
, посмотрите мой назад сообщения на это тема.Обратите внимание, что восходящее распространение (получение измененного значения от подоболочки, автоматически отраженной в родительской оболочке), не является возможной, точкой.
Telnet является очень простым протоколом, куда все, что Вы вводите в своем клиенте (за редким исключением), переходит к проводу и всему, что прибывает из провода, показан в Вашем терминале. Исключением является 0xFF байт, который устанавливает некоторые специальные состояния связи. Пока Ваша коммуникация не содержит этот байт, можно использовать telnet в качестве вида необработанного коммуникационного клиента по любому порту TCP.
IOW: Это просто для удобства.
Это для удобства, но это - также lower-than-user-level диагностика. Можно изолировать проблему, у Вас есть с сервисом тот путь, например: у Joe есть сервер базы данных и клиент. Они не связываются. Проблема в сети? Сервер? Клиент?
Joe переходит к клиентской машине и открывает оболочку. Он использует telnet, как Вы описали:
telnet server.ip.com 3333
и вводит команду, как будто он был клиентской программой
WHO;
Сервер отвечает с
'11','JOE.CORP.COM'
(Это - очень немой сервер),
Таким образом Joe знает, что сетевой канал к работам сервера, и что его клиент, вероятно, не настроен правильно.
Почему точно можно соединиться с помощью telnet с smtp портом, например?
Поскольку оба smtp
и протоколы telnet реализованы как простой текст. Таким образом с a telnet
клиент, можно в основном пойти подключение к любому порту с определенным протоколом, который реализует простой текст, и Вы знаете, как передать использование протокола.
Telnet был разработан как приложение удаленного терминала, использующее сокет, простой текст и несколько управляющих символов. Его использование таким образом было главным образом заменено ssh. Любой клиент telnet может использоваться для взаимодействия через интерфейс с любым протоколом, который реализован в простом тексте, и это - то, как он обычно используется сегодня.
Хотя telnet не был разработан с этой целью, он работает отлично с помощью него этот путь. Netcat на самом деле был разработан для этого точного использования (открывающий сокет и плюющийся необработанными данными по нему для любой цели). Я обычно предпочитаю netcat, но telnet в значительной степени универсально доступен.
Почему бы не использовать netcat nc
вместо telnet?
Мы используем netcat в нашем тестовом инструменте dda -serverspec -точная команда
nc [host] [port] -z -w [timeout]