Перенаправление ввода вывода linux

Параметры команды ping и их описание

В зависимости от используемой операционной системы опции команды будут иметь разные назначения. Поэтому, если мы хотим понять все возможности, стоит ознакомиться с опцией help.

Независимо от системы, команду ping можно применять так:

ping <имя сервера или IP-адрес>

Windows

Для просмотра в Windows также используйте команду ping /?

Используются часто:

Параметр Описание
-t Команда будет отправлять запросы на проверку постоянно, пока ее не прервать клавишами Ctrl + C. Удобно, если сеть не работает и чтобы постоянно не проверять, появилась ли связь.
-a Пытается определить имя узла через DNS.
-n Задает определенное число попыток отправки запроса.
-l Размер пакета. Используется для проверки стабильности сети, создания тестовой нагрузки и так далее.
-f По умолчанию ping разрешает фрагментацию, то есть пакет может быть разбит на несколько для соответствия минимальному пропускаемому размеру (MTU). Данный флаг это запрещает. Используется для определения вышеупомянутого MTU.
-i Задает срок жизни пакета (количество сетевых устройств, через которые может пройти сигнал). Может использоваться в случаях, когда количество оборудования слишком велико. Также можно определить его количества. 
-w Устанавливает время ожидания. Применяется, если существуют проблемы производительности на сети или расстояние до узла очень большое.
-S Позволяет выполнить проверку сети с определенного источника. Может быть использовано с узла с несколькими сетевыми адаптерами и отправкой запроса с определенного.
-4 Использовать только IPv4.
-6 Использовать только IPv6.

Используются редко

Параметр Описание
-r Записывает маршрут для указанного числа прыжков.
-s Задает метку времени для указанного числа прыжков.
-j Задает свободный выбор маршрута по списку узлов.
-k Задает жесткий выбор маршрута по списку узлов.
-R Использует заголовок маршрута для проверки и обратного маршрута.

Linux

При минимальной инсталляциии данной системы или использовании docker, утилиты ping может не быть. В таком случае мы увидим ошибку:

bash: ping: command not found

Для ее установки можно воспользоваться менеджером установки пакетов. В зависимости от типа операционной системы, наши команды будут немного отличаться.

а) для систем на базе deb (Debian, Ubuntu, Mint):

apt install iputils-ping

б) для систем на базе RPM (Rocky Linux, CentOS, Red Hat, Fedora):

yum install iputils

Готово, теперь можно пользоваться командой ping.

Список ключей можно посмотреть так:

ping -h

Комбинирование команд с операторами перенаправления

Комбинируя команды-фильтры с другими командами и именами файлов, можно создавать команды на
заказ. Например, для сохранения имен файлов, содержащих строку «LOG», используется следующая
команда:

dir /b | find «LOG» > loglist.txt

Выход команды dir отсылается в команду-фильтр find. Имена файлов, содержащие
строку «LOG», хранятся в файле Loglist.txt в виде списка (например, NetshConfig.log,
Logdat.svd и Mylog.bat).

При использовании более одного фильтра в одной команде их необходимо отделять с помощью
канала (|). Например, следующая команда ищет в каждом каталоге диска C файлы, в названии
которых присутствует строка «Log», и выводит их постранично на экран:

dir c:\ /s /b | find «LOG» | more

Наличие канала (|) указывает cmd.exe,
что выход команды DIR нужно отправить
команде-фильтру find. Команда find
выбирает только те имена файлов, в которых
содержится строка «LOG». Команда more
выводит на экран имена файлов, полученные
командой find с паузой после заполнения каждого экрана. Дополнительные сведения о
командах-фильтрах смотри в разделе Использование фильтров.

Оператор добавления перенаправления

Оператор двойной стрелки добавляет, а не заменяет файл:

Добавление результатов «ipconfig» в существующий файл журнала.

В этом примере используется оператор перенаправления >>, который работает почти так же, как оператор > , но вместо перезаписи выходного файла, если он существует, он добавляет вывод команды в конец файла.

Вот пример того, как может выглядеть этот файл LOG после экспорта в него команды:

Файл журнала результатов командной строки.

Оператор перенаправления >> полезен, когда вы собираете похожую информацию с разных компьютеров или команд и хотите, чтобы все эти данные были в одном файле.

Приведенные выше примеры операторов перенаправления находятся в контексте командной строки, но вы также можете использовать их в файле BAT . Когда вы используете BAT-файл для передачи вывода команды в текстовый файл, используются те же самые команды, описанные выше, но вместо нажатия Enter для их запуска вам просто нужно открыть .BAT-файл.

Примеры команды Ping

ping -n 5 -l 1500 www.google.com

В этом примере команда ping используется для проверки состояния хоста www.google.com. Опция -n указывает команде ping на необходимость отправить пять echo-запросов ICMP вместо стандартных четырех, а опция —l задаёт размер пакета для каждого запроса в 1500 байт вместо 32 байт по умолчанию. При таком запросе вы получите следующий результат:

Pinging www.google.com  with 1500 bytes of data:
Reply from 74.125.224.82: bytes=1500 time=68ms TTL=52
Reply from 74.125.224.82: bytes=1500 time=68ms TTL=52
Reply from 74.125.224.82: bytes=1500 time=65ms TTL=52
Reply from 74.125.224.82: bytes=1500 time=66ms TTL=52
Reply from 74.125.224.82: bytes=1500 time=70ms TTL=52

Ping statistics for 74.125.224.82:
    Packets: Sent = 5, Received = 5, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 65ms, Maximum = 70ms, Average = 67ms

Пункт 0% loss в статистике проверки состояния 74.125.224.82 говорит о том, что все посланные к www.google.com echo-запросы были возвращены. Это значит, что до тех пор, пока сеть активна, можно взаимодействовать с сайтом без каких-либо проблем.

Ping 127.0.0.1

В этом примере использования команды ping в cmd проверяется состояние 127.0.0.1, который также известен как IP-адрес localhost в протоколе IPv4.

Ping 127.0.0.1 – отличный способ проверить работоспособность всех функций Windows. Но с помощью этого запроса не получится узнать о состоянии своего или удаленного компьютера. Существует и IPv6-версия этой проверки — ping ::1.

ping -a 192.168.1.22

В этом примере мы пытаемся узнать имя хоста, привязанное к IP-адресу 192.168.1.22. При этом проверка должна быть проведена в штатном режиме, даже если имя хоста выяснить не удастся.

Pinging J3RTY22  with 32 bytes of data:
Reply from 192.168.1.22: bytes=32 time<1ms TTL=64
Reply from 192.168.1.22: bytes=32 time<1ms TTL=64
Reply from 192.168.1.22: bytes=32 time=1ms TTL=64
Reply from 192.168.1.22: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.1.22:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 1ms, Average = 0ms

Как видно из приведенного выше примера, команда ping в Windows 7 определила проверяемый IP-адрес как имя хоста J3RTY22, после чего осуществила проверку состояния при стандартных настройках.

ping -t -6 SERVER

В этом примере мы, при помощи опции -6, включаем принудительное использование протокола IPv6, а затем приступаем к бесконечной проверке состояния SERVER (при помощи опции -t).

Pinging SERVER  with 32 bytes of data:
Reply from fe80::fd1a:3327:2937:7df3%10: time=1ms
Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms
Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms
Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms
Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms
Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms
Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms

Ping statistics for fe80::fd1a:3327:2937:7df3%10:
    Packets: Sent = 7, Received = 7, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 1ms, Average = 0ms
Control-C
^C

После семи полученных ответов мы намеренно прервали проверку состояния. Вспоминаем, как остановить команду ping? При помощи Ctrl+C. Также -6 привела к использованию адресов по протоколу IPv6.

Совет: число после знака % в сгенерированных в данном примере ответах указывает на Zone ID протокола IPv6, которая определяет используемый сетевой шлюз. Можно сгенерировать таблицу из Zone ID, совпадающих с названием вашего сетевого шлюза, при помощи netsh interface ipv6 show interface. IPv6 Zone ID отображается числом в колонке Idx.

Проверка сети и интернета с помощью команды ping

Предположим, что вам нужно проверить связь с компьютером в соседнем кабинете, для этого вам нужно знать его IP адрес (сетевой адрес) или имя этого компьютера. Пускай его IP адрес будет 192.168.88.1 и имя в сети SPA. Заходим в Пуск, выбираем пункт Выполнить. Так же  можно и с помощью горячих клавиш. Для этого нажимаем Windows + R. В открывшемся окне пишем команду для вызова командной строки cmd.

выполнить и пишем cmd

После нажатия кнопки OK появится окно командной строки, в котором пишем команду ping 192.168.1.100 или ping spa, где после команды ping идет сетевой адрес или сетевое имя компьютера с которым проверяем связь.

пинг адреса в сети

При получение команды ping ваш компьютер начинает посылать пакеты удаленному компьютеру, удаленный компьютер приняв эти пакеты отсылает ответ о принятых пакетах. С скриншотов выше мы видим. Что ваш компьютер отослал четыре пакета по 32 байта и получил ответ с задержкой 1 мс.

Если место ответов удаленного компьютера вы получаете сообщение Превышен интервал для запроса. Это для Windows Xp или  Заданный узел не доступен для Windows 7 — 10. Значит связи с удаленном компьютером нету. Либо если частично ответ есть а частично выдает сообщение как описано выше значит связь с компьютером плохая. Причиной этого может быть: поврежденный сетевой кабель, неправильно или плохо обжатый коннектор.

Рабочий пример когда пропали пинги:

Внезапно стал тормозить outlook, письма не переключаются и не отправляются. Все висит. Открыл cmd вбил адрес outlook и написал команду

Вот результат что я увидел

плохой и прерывистый пинг

Такая картина предстала на моем мониторе. Была потеря пакетов и 250+ мс задержки до сервера. Пришлось писать тикет в майкрософт и провайдеру.

В продолжении времени ответа хочу сказать, чем меньше время ответа от удаленного ресурса тем стабильнее связь.

нормальный пинг до сервера microsoft outlook

А так же хочу добавить, что количество и размер отправляемых пакетов можно увеличить. Делается это для тестов стабильности канала.  Введя в командной строке команду

Где -t означает количество отправляемых пакетов. (Если после -t не указать число то пакеты будут отправляться бесконечно).

И где  -l 50 означает, что размер отправляемых пакетов будит 50 байт.

Для теста интернета и его стабильности я использую команду

ping яндекса

Можно писать и ip адрес, но на мой взгляд так быстрее. Кстати кто-то пишет ip google 8.8.8.8, на мой взгляд это долго.

Описание

В случае, если необходимо просто сохранить все, что вывела командная строка в текстовый файл, то нужно после введенной команды добавить символ «>», что приведет к созданию текстового файла и весь вывод командной строки отправится туда. Пример:

Как видно, командная строка не вывела никакого результата введенной команды на экран, но зато сохранила все в файл ping.txt. К сожалению, существуют ограничения перенаправления вывода, которые не позволяют одновременно отображать вывод и в окне командной строки, и сохранять их в текстовый файл. Однако, можно воспользоваться хитростью — сразу по завершению выполнения команды вывести содержимое текстового файла на экран с помощью команды type. Получится что-то следующее:

Если требуется файл не записывать (существующий текстовый файл будет перезаписан), а дописывать (существующий текстовый файл будет дополнен), нужно вместо одного символа «>» использовать два — «>>».

Почитать о том, как сделать тоже самое в LinuxBSD системах можно в этой статье.

6 ответов

17

Используйте перенаправление, например:

Это перенаправит весь (стандартный) вывод из программы в , который будет создан, если он не существует и перезаписан если это произойдет.

Вы можете использовать вместо , чтобы перенаправить вывод в файл и добавить результаты в конец файла, вместо перезаписывания (благодаря @ Jane T для напоминания) .

Обратите внимание, что вы будете not получать нормальный экранный вывод, если вы это сделаете

Обновление в ответ на комментарий

Чтобы задержать между пингом и записать время каждого из них, вы можете выполнить некоторые сценарии.

Вот быстрый командный файл Windows, который я выбрал вместе. Он печатает время, пинги Google, а затем ждет 3 секунды перед повторением. Я не эксперт командного файла, поэтому, если у кого-либо возникают проблемы, пожалуйста, отметьте их! И это, вероятно, не «лучший» способ добиться того, что вам нужно, — это может сделать отдельный вопрос.

Сохраните это в файле где-нибудь, отредактируйте цель ping и время задержки по мере необходимости, затем запустите , используя перенаправление, чтобы перекачать вывод всей вещи в файл.

Обратите внимание, что этот командный файл никогда не заканчивается , но может быть завершен Ctrl + C , а затем Y если выполняется из. (Вы должны нажимать Y, потому что он спрашивает, хотите ли вы остановить пакетный файл, даже если вы не видите этот вопрос, потому что вы перенаправили вывод!). 3

3

Вы можете использовать:

2

Если вы используете командную строку, просто перенаправьте ее в текстовый файл, используя этот формат

Это сделает это.

1

:: PIng ISP Каждые 1 секунда и дата, время и результат записи в текстовый файл

1

Я написал сценарий, который pings google.com каждые 5 секунд и регистрирует результаты с текущим временем. Здесь вы можете найти выходные данные для переменных «commandLineStr» (с индексами)

Команда пинг (ping) и tracert (traceroute) — как правильно использовать?

Команда ping — специальная программа для проверки доступности сетевых ресурсов. Специалисты по сетевым технологиям используют команду ping чаще любой другой команды, хотя действие, выполняемое этой командой — самое элементарное. Команда ping посылает на указанный хост пакет заданного размера, который затем возвращается обратно.

Выполняется команда пинг очень просто — «ping ya.ru». Здесь «ya.ru» — имя пингуемого сервера. Можно также использовать IP-адрес, например «ping 213.180.204.3». После запуска команды ping, вам остается только посмотреть на величину задержки.

Как уменьшить пинг?

От людей, играющих в сетевые игры, часто можно слышать об их желании уменьшить пинг. Это достаточно логично, так как маленькое время пинга означает меньшие задержки при игре. Соответственно, игрок с минимальным временем пинга может получить преимущество в игре. Наиболее популярная игра, для которой пользователи любят померить пинг — Counter Strike или сокращенно CS.

Вариантов по уменьшению времени пинга на самом деле не так уж и много. Время прохождения пинга зависит от загруженности канала пользователя и от маршрута, по которому пакеты проходят от маршрутизатора провайдера до игрового сервера.

Прежде всего, если вы испытываете проблемы с пингом, попробуйте отключить все программы для закачки файлов. Причем нужно не просто остановить закачку, а закрыть программу для закачки файлов.

Если вы делите интернет-канал с кем-либо еще, например если у вас дома несколько компьютеров, то канал может загружать другой компьютер. Для проверки попробуйте отключить другой компьютер и запустите пинг еще раз.

Если расчистка канала не помогает уменьшить пинг, можно попробовать сменить игровой сервер, т.к. пинг до различных серверов может отличаться в несколько раз. Наиболее предпочтительны в плане уменьшения пинга сервера, находящиеся в России.

Если расчистка канала и смена сервера не помогают уменьшить пинг, может помочь вариант со сменой провайдера. Обращаться к своему провайдеру с жалобой на пинг бесполезно, т.к. переписывать маршруты ради вас никто не будет, да и не факт, что у вашего провайдера есть несколько параллельно функционирующих каналов к провайдерам верхнего уровня.

Команда tracert (traceroute)

Очень часто пользователи задаются вопросом, с чем связана разница в написании tracert и traceroute? На самом деле, команда tracert применяется в операционных системах Windows, а traceroute — в операционных системах Linux и в операционной системе маршрутизаторов Cisco.

Простейший и самый распространенный пример использования команды tracert — «tracert ya.ru». При использовании команды tracert с буквенным адресом проверяемого хоста, автоматически проверяется еще и работоспособность и доступность DNS — сервера. Ведь для того, чтобы начать процесс трассировки, команда tracert должна сначала связаться с сервером DNS и получить IP-адрес проверяемого хоста.

Пример вывода информации командой tracert:

c:\windows\system32>tracert ya.ru Трассировка маршрута к ya.ru с максимальным числом прыжков 30: 1    1 мs     1 мs      1 ms   psk-cr1-fe-0-0-v03.ellink.ru 2    1 мs     1 мs      1 мs   ge-2-2-0-v2.1g.m20-1-pskv.nwtelecom.ru 3    4 ms     4 ms      4 ms   ae0.20g.mx960-1-210.nwtelecom.ru 4    4 ms     4 ms      4 ms   as13238-yandex.gateway.

Трассировка завершена.

Команда tracert последовательно опрашивает и измеряет время задержки до всех маршрутизаторов на пути прохождения пакета, пока не будет достигнут целевой хост. Если между какими-либо двумя маршрутизаторами наблюдается большой рост задержки, значит этот участок маршрута влияет на увеличение пинга.

Следует также учитывать, что основная задача маршрутизаторов — это передавать пакеты с полезной информацией, а не отвечать на команды tracert и ping. Поэтому, некоторые маршрутизаторы на пути следования пакета могут пинговаться даже с потерей пакетов, но при этом целевой хост будет доступен без потери пакетов. Поэтому прежде чем звонить в техподдержку провайдера с криком «Я знаю, где у вас пропадают пакеты!», убедитесь, что целевой хост также пингуется с потерей пакетов. Иначе вам попросту расскажут то, о чем написано выше.

Обновление в ответ на комментарий

Чтобы задержать между пингом и записать время каждого из них, вы можете выполнить некоторые сценарии.

Вот быстрый командный файл Windows, который я выбрал вместе. Он печатает время, пинги Google, а затем ждет 3 секунды перед повторением. Я не эксперт командного файла, поэтому, если у кого-либо возникают проблемы, пожалуйста, отметьте их! И это, вероятно, не «лучший» способ добиться того, что вам нужно, — это может сделать отдельный вопрос.

Сохраните это в файле где-нибудь, отредактируйте цель ping и время задержки по мере необходимости, затем запустите , используя перенаправление, чтобы перекачать вывод всей вещи в файл.

Обратите внимание, что этот командный файл никогда не заканчивается , но может быть завершен Ctrl + C , а затем Y если выполняется из. (Вы должны нажимать Y, потому что он спрашивает, хотите ли вы остановить пакетный файл, даже если вы не видите этот вопрос, потому что вы перенаправили вывод!)

Использование оператора «>&» для перенаправления ввода и дублирования

При перенаправлении вывода в файл и задании существующего имени файла интерпретатор команд
Cmd.exe открывает файл с доступом только для записи и переписывает его содержимое. Если
дескриптор задан, интерпретатор команд Cmd.exe дублирует файл в существующий дескриптор.

Для дублирования определенного пользователем дескриптора 3 в дескриптор 1 введите:

> &3

Для перенаправления всех выходных данных, включая выходные данные дескриптора 2 (STDERR),
команды ipconfig в дескриптор 1 (STDOUT) и последующего перенаправления выходных
данных в Output.log введите:

ipconfig.exe>>output.log 2>&1

Перенаправление ввода команд (

Для перенаправления ввода команд с цифровой клавиатуры на файл или на устройство используйте
оператор «<». Например, для ввода команды sort из файла List.txt введите:

sort<file.txt

Содержимое файла File.txt появится в командной строке в виде списка в алфавитном порядке.

Оператор «<» открывает заданное имя файла с доступом только для чтения. Поэтому с его
помощью нельзя записывать в файл. Например, при запуске программы с оператором <&2 все
попытки прочитать дескриптор 0 ни к чему не приведут, так как изначально он был открыт с
доступом только для записи.

Примечание

Дескриптор 0 задан по умолчанию для оператора перенаправления ввода «

Обновление за декабрь 2021 года:

Теперь вы можете предотвратить проблемы с ПК с помощью этого инструмента, например, защитить вас от потери файлов и вредоносных программ. Кроме того, это отличный способ оптимизировать ваш компьютер для достижения максимальной производительности. Программа с легкостью исправляет типичные ошибки, которые могут возникнуть в системах Windows — нет необходимости часами искать и устранять неполадки, если у вас под рукой есть идеальное решение:

  • Шаг 1: (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
  • Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
  • Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.

Обновление в ответ на комментарий

Чтобы задерживать между эхо-запросами и записывать время каждого, вы можете создать скрипт.

Вот быстрый командный файл Windows, который я собрал. Он печатает время, пингует Google, затем ждет 3 секунды перед повторением. я не эксперт по пакетным файлам, поэтому, если кто-то обнаружит какие-либо проблемы, пожалуйста, отметьте их! И это, вероятно, не лучший способ добиться того, чего вы хотите — это действительно может стать отдельным вопросом.

Сохраните это в файл где-нибудь, отредактируйте цель ping и время задержки, как вам нужно, затем запустите использование перенаправления для перекачки вывода всего этого в файл. Возможно, вам потребуется заменить команда с в зависимости от вашей версии Windows.

Обратите внимание, что этот командный файл никогда не заканчивается, но может быть прекращено Ctrl + C а потом Y если бежать от. (Вы должен нажмите Y, потому что он спрашивает, хотите ли вы остановить командный файл — даже если вы не видите вопрос, потому что вы перенаправили вывод!)

  • благодаря! работает хорошо, могу ли я показывать текущее время вместе с каждым пингом, или я могу изменить продолжительность между двумя пингами
  • 2 Для этого вам придется написать сценарий, ping не сможет сделать это за вас.
  • Азз опередил меня — для этого вам нужно изменить сам, чтобы вывести что-то другое, или выполнить некоторые интересные сценарии, например, чтобы вывести отметку времени, пинг, подождать 10 секунд, повторить.
  • рад слышать, что это возможно. жду большего. скрипты Windows должны что-то делать с этим
  • 2 «, чтобы я мог сохранить результаты проверки связи за весь день в текстовом файле» Вам нужно будет использовать >> для добавления данных в выходной файл.

Вы можете использовать:

1 Использование > Как ваш PS1 приглашение оболочки действительно сбивает с толку, когда команда также включает> для перенаправления.

Если вы используете командную строку, просто перенаправьте ее в текстовый файл в этом формате.

Это сработает.

Я написал сценарий, который проверяет google.com каждые 5 секунд и записывает результаты с текущим временем. Здесь вы можете найти вывод в переменные commandLineStr (с индексами)

Также, если вы хотите видеть результаты пинга на дисплее, вы можете использовать этот код

:: PIng ISP Каждую 1 секунду и запись даты, времени и результата в текстовый файл

Попробуй это

1 (1) @AndrewMorton: Я не уверен, что ваш комментарий полностью верен, поскольку вопрос указывает на то, что Cygwin доступен. Но (2) saxjax: что с -i? Моя Windows ping говорит: «Неверное значение параметра -i, допустимый диапазон от 1 до 255». и мой Cygwin ping не признает -i вообще. Кроме того, (3) мы не любим ответы, состоящие только из кода. Лучше объяснить, что делает ваш код и как он это делает.

Использование операторов перенаправления в пакетных файлах

Операторы перенаправления работают в пакетных файлах, включая команду так же, как и в командной строке:

@ECHO OFF:: Вывести tracert в текстовый файл.TITLE Журнал Tracerttracert yahoo.com> Z: yahootracert.txt

Выше приведен пример того, как создать командный файл, в котором используется оператор перенаправления с командой tracert.

Файл yahootracert.txt (показанный выше) будет создан на диске Z: через несколько секунд после выполнения файла sample.bat. Как и в приведенных выше примерах, в файле показано все, что могла бы раскрыть командная строка, если бы не использовался оператор перенаправления.

Проверка пинга

Для проверки пинга используется одноименная команда ping, которую необходимо вводить в командной строке. Запустить командную строку можно следующими способами:

Windows:

1) Пуск -> Все программы -> Стандартные -> Командная строка

2) Пуск -> Выполнить -> cmd

Linux:

В данной ОС существует множество терминалов, поэтому для этих целей можно использовать любой из установленных на ПК. Обычно стандартный терминал можно запустить сочетанием клавиш CTRL+ALT+T.

Итак, чтобы пропинговать определенный сервер, необходимо выполнить команду:

ping <IP или домен>

Например, для пинга адреса 11.222.33.44 необходимо выполнить команду:

ping 11.222.33.44

Ниже приведён пример результатов выполнения пинга одного из IP адресов.

Как видно из результатов, было передано и получено 4 пакета размером 32 байта. Время обмена одним пакетом составило 47 милисекунд.

Стоит отметить, что в Windows по умолчанию выполняется отправка только 4 пакетов. В Linux обмен пакетами продолжается до тех пор, пока пользователь самостоятельно не остановит процесс сочетанием клавиш CTRL+C. Чтобы запустить ping аналогичным образом в Windows, необходимо использовать параметр -t. Например:

ping -t 11.222.33.44

Остановка обмена пакетами выполняется тем же сочетанием клавиш – CTRL+C.

Установка количества отправляемых пакетов

Чтобы задать максимальное количество отправляемых пакетов, необходимо использовать команду следующего вида:

Windows:

ping -n <число_пакетов> <IP или домен>

например:

ping -n 5 11.22.33.44

Linux:

ping -c <число_пакетов> <IP или домен>

например:

ping -c 5 11.22.33.44

Изменение размера отправляемых пакетов

Чтобы выполнить ping с использованием пакетов определенного размера (в байтах), необходимо использовать следующую команду:

Windows:

ping -l <размер_пакетов> <IP или домен>

например:

ping -l 64 11.22.33.44

Linux:

ping -s <размер_пакетов> <IP или домен>

например:

ping -s 64 11.22.33.44

В данном случае производилась отправка пакетов размером в 64 байта.

Вариант 1: только перенаправляем вывод терминала в файл

В этом случае весь результат работы любой команды будет записан в текстовый файл, без отображения его на экране. То есть, мы в прямом смысле перенаправим информацию с экрана в файл. Для осуществления этого нужно использовать операторы > и >> и путь к файлу в который нужно писать, в конце выполняемой команды.

Оператор > сохранит результат работы команды в указанный файл и, если в нем уже будет находиться какая-либо информация, перезапишет ее.

Оператор >> перенаправит вывод команды в файл, и если в нем также будет находиться информация, новые данные будут добавлены в конец файла.

Рассмотрим на примере команды ls, которая отображает список файлов и папок в указанной директории. Давайте запишем результат ее работы в текстовый файл. Нам нужно написать команду, поставить оператор и указать путь к файлу:

ls &amp;gt; /home/ruslan/пример

Теперь посмотрим, все ли сработало. Для этого можно воспользоваться любым текстовым редактором, какой у вас есть. Также это можно сделать прямо в терминале при помощи команды cat:

cat /home/ruslan/пример

Все работает.

Допустим, что после того, как мы перенаправили вывод команды ls в файл “пример” мы решили узнать версию ядра системы и также сохранить вывод в тот же файл. Чтобы узнать версию ядра воспользуемся командой uname и параметром -a, затем говорим Bash как и куда нужно сохранить результат ее выполнения:

uname -a &amp;gt;&amp;gt; /home/ruslan/пример

Снова проверим результат:

cat /home/ruslan/пример

Как видим, у нас сохранились результаты работы и ls, и uname.

Как работает перенаправление ввода вывода

Все команды, которые мы выполняем, возвращают нам три вида данных:

  • Результат выполнения команды, обычно текстовые данные, которые запросил пользователь;
  • Сообщения об ошибках — информируют о процессе выполнения команды и возникших непредвиденных обстоятельствах;
  • Код возврата — число, которое позволяет оценить правильно ли отработала программа.

В Linux все субстанции считаются файлами, в том числе и потоки ввода вывода linux — файлы. В каждом дистрибутиве есть три основных файла потоков, которые могут использовать программы, они определяются оболочкой и идентифицируются по номеру дескриптора файла:

  • STDIN или 0 — этот файл связан с клавиатурой и большинство команд получают данные для работы отсюда;
  • STDOUT или 1 — это стандартный вывод, сюда программа отправляет все результаты своей работы. Он связан с экраном, или если быть точным, то с терминалом, в котором выполняется программа;
  • STDERR или 2 — все сообщения об ошибках выводятся в этот файл.

Перенаправление ввода / вывода позволяет заменить один из этих файлов на свой. Например, вы можете заставить программу читать данные из файла в файловой системе, а не клавиатуры, также можете выводить ошибки в файл, а не на экран и т д. Все это делается с помощью символов «<« и «>».

Перенаправить вывод в файл

Все очень просто. Вы можете перенаправить вывод в файл с помощью символа >. Например, сохраним вывод команды top:

Опция -b заставляет программу работать в не интерактивном пакетном режиме, а n — повторяет операцию пять раз, чтобы получить информацию обо всех процессах. Теперь смотрим что получилось с помощью cat:

Символ «>» перезаписывает информацию из файла, если там уже что-то есть. Для добавления данных в конец используйте «». Например, перенаправить вывод в файл linux еще для top:

По умолчанию для перенаправления используется дескриптор файла стандартного вывода. Но вы можете указать это явно. Эта команда даст тот же результат:

Перевод вывода на ввод

Перенаправлять стандартные ввод и вывод в файлы мы уже умеем. Но еще можно вывод одной команды подать на ввод другой. Это наиболее полезный и удобный функционал переадресации ввода вывода. Таким образом можно объединить в цепочку несколько команд, последовательно создавая канал между выводом одной команды и вводом следующей. Такая переадресация ввода вывода одной команды в другую называется каналом (англ. pipeline или pipe). Для присоединение ввода команды к выводу другой команды, используется обозначение «|» (вертикальная черта, «труба» (англ. pipe)). После полного описания команды, вывод которой следует перенаправить на ввод другой команде, ставится символ «|» (вертикальная черта) и следует описание второй команды. Цепочка может содержать сразу несколько команд.

Посмотрим как это работает. Если мы помним, в директории /usr/bin слишком много файлов. Мы хотим посмотреть детальную информацию по каждому, но список не помещается на экране. Для решения подобной задачи мы перенаправляли вывод команды ls в файл, а затем открывали его через удобную программу для просмотра текстовых файлов less. А ведь можно сразу без сохранения результата в файл открыть его через less. Сделаем это.

1
2
3

 
$ ls -l /usr/bin | less
 

Теперь мы можем видеть весь результат и перемещаться по нему при помощи прокрутки в less и даже выполнять поиск текста. Для выхода из less нажмем клавишу «q». Я надеюсь, к текущему моменту мы запомнили нужные нам команды управления, особенно выход из less, поэтому далее про «q» упоминаний не будет.

Не забудем удалить созданную директорию test. Все помнят как это сделать? Если возникают сложности, советую вновь ознакомиться и понять основные методы воздействия на файлы и директории в Linux.

Более подробно о применении цепочек из команд будет рассказано в следующих материалах. А пока вновь заморозим виртуальную машину. О заморозке и разморозке в будущем я тоже упоминать не буду, как и о многом очевидном. И не бойтесь отклоняться от инструкций в материалах и ставить опыты с командной строкой — это только пойдет на пользу

Вариант 2: перенаправляем вывод в файл и отображаем его на экране

Не всем и не всегда удобно пользоваться операторами > и >>, так как все же лучше когда волнение команд можно наблюдать в реальном времени в окне терминала. В таком случае мы можем воспользоваться командой tee, которая и отобразит выполнение команд на экране, и сохранит его в файл. Синтаксис ее такой:

команда | tee /путь/к/файлу

Этот вариант подобен оператору > из предыдущего пункта, то есть при записи в файл, все старые данные будут удалены. Если вам нужно дописать в файл, в конструкцию нужно добавить параметр -a:

команда | tee -a /путь/к/файлу

В Bash есть еще несколько операторов и команд, выполняющих идентичные задачи, их часто используют во время написания различных скриптов, но для обычного пользователя, которому нужно сохранить вывод команды чтобы запостить его на форуме, вполне достаточно и этих вариантов. Надеюсь, что помог вам, до новых постов!

Метки Linux терминалХаки Linux

Перенаправление вывода команд (>)

Выходные данные практически всех команд высвечиваются в окне командной строки. Даже команды,
выводящие данные на диск или принтер, выдают сообщения и запросы в окне командной строки.

Для перенаправления вывода команд из окна командной строки в файл или на устройство
применяется оператор «>». Этот оператор используется с большинством команд. Например, для
перенаправления вывода команды dir в файл Dirlist.txt введите:

dir>dirlist.txt

Если файл Dirlist.txt не существует, интерпретатор команд Cmd.exe создаст его. Если файл
существует, Cmd.exe заменит информацию в файле на данные, полученные от команды dir.

Для запуска команды netsh routing dump и последующей отправки результатов ее работы в
Route.cfg введите:

netsh routing dump > c:\route.cfg

Оператор «>» открывает заданный файл с доступом только для записи. Поэтому с помощью
данного оператора файл прочитать нельзя. Например, при запуске программы с оператором
перенаправления <&0 все попытки записать дескриптор 1 ни к чему не приведут, так как
изначально дескриптор 0 был открыт с доступом только для чтения.

Примечание.

Дескриптор 1 задан по умолчанию для оператора перенаправления вывода «>».

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: