команда yes в linux

Команда yes

команда yes в linux

Описание команды yes

Синтаксис

Без аргументов

Если выполнить команду yes без каких либо аргументов, то на экран бесконечно будет выводиться символ «y» (каждый символ на новой строке). Данное поведение используется для автоматического подтверждения запросов, при выполнении других команд (см. примеры ниже).

С указанием строки

Опции

У команды yes всего 2 опции:

Примеры использования команды yes

Обычно команда yes используется для того, чтобы при выполнении других команд или скриптов, которые выдают пользователю запросы, требующие ввести y (yes) или n (no), автоматически вводилось y (yes) на каждый запрос. То есть, чтобы избавить пользователя от необходимости самостоятельно отвечать y (Да) на каждый запрос.

Отвечаем Да на каждый запрос при восстановлении файловой системы

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

Отвечаем Да при удалении файлов

Данная команда эквивалентна команде:

Создание большого файла

Команда yes может использоваться для создания больших файлов, заполненных данными. Например, это может потребоваться при тестировании программ.

Источник

Команда YES

команда yes в linux

Описание команды yes

Синтаксис

Без аргументов

Если выполнить команду yes без каких либо аргументов, то на экран бесконечно будет выводиться символ «y» (каждый символ на новой строке). Данное поведение используется для автоматического подтверждения запросов, при выполнении других команд (см. примеры ниже).

С указанием строки

Опции

У команды yes всего 2 опции:

—helpВывести информацию о команде yes.—versionВывести версию утилиты yes.

Примеры использования команды yes

Обычно команда yes используется для того, чтобы при выполнении других команд или скриптов, которые выдают пользователю запросы, требующие ввести y (yes) или n (no), автоматически вводилось y (yes) на каждый запрос. То есть, чтобы избавить пользователя от необходимости самостоятельно отвечать y (Да) на каждый запрос.

Отвечаем Да на каждый запрос при восстановлении файловой системы

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

Отвечаем Да при удалении файлов

Данная команда эквивалентна команде:

Создание большого файла

Команда yes может использоваться для создания больших файлов, заполненных данными. Например, это может потребоваться при тестировании программ.

Источник

Небольшая история о команде `yes` в Unix

Хотя на первый взгляд команда кажется бессмысленной, но иногда она бывает полезной:

Когда-нибудь устанавливали программу, которая требует ввести «y» и нажать Enter для установки? Команда yes приходит на помощь! Она аккуратно выполнит эту задачу, так что можете не отвлекаться от просмотра Pootie Tang.

Пишем yes

Вот базовая версия на… хм… BASIC.

А вот то же самое на Python:

Кажется простым? Погодите!

Как выясняется, такая программа работает довольно медленно.

Сравните со встроенной версией на моём «маке»:

Так что я попытался написать более быструю версию на Rust. Вот моя первая попытка:

Упс, ничего особенно не улучшилось. Она даже медленнее, чем версия на Python! Это меня заинтересовало, так что я поискал исходники реализации на C.

Вот самая первая версия программы, которая вышла в составе Version 7 Unix за почётным авторством Кена Томпсона 10 января 1979 года:

Сравним со 128-строчной версией из комплекта GNU coreutils, зеркало которого есть на Github. После 25 лет программа всё ещё в активной разработке! Последнее изменение кода произошло около года назад. Она довольно быстрая:

Важная часть находится в конце:

Я расширил свою программу Rust:

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

Такая программа выдаёт 51,3 МиБ/с. Быстрее, чем версия, установленная в моей системе, но намного медленнее чем вариант от автора найденного мной поста на Reddit. Он говорит, что добился скорости 10,2 ГиБ/с.

Дополнение

Как обычно, сообщество Rust не подкачало. Как только эта статья попала в подреддит о Rust, пользователь nwydo указал на предыдущее обсуждение этой темы. Вот их оптимизированный код, который пробивает 3 ГБ/с на моей машине:

Так это же совсем другое дело!

Извлечённые уроки

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

Переработка стандартных инструментов Unix — увлекательное занятие и оно заставляет ценить те изящные трюки, которые делают наши компьютеры быстрыми.

Источник

Как использовать команду yes в Linux

от sasza

команда yes в linux

Команда yes кажется слишком простой, чтобы иметь какое-либо практическое применение, но в этом руководстве мы покажем вам ее применение и то, как извлечь выгоду из ее отложенного положительного результата в Linux и macOS.

Команда yes

Но не списывайте это на простую маленькую команду. Его можно использовать несколькими интересными и полезными способами.

Что делает да?

При использовании без каких-либо параметров командной строки команда yes ведет себя так, как если бы вы вводили «y» и нажимали Enter, снова и снова (и снова и снова) снова. Очень быстро. И это будет продолжаться, пока вы не нажмете Ctrl + C, чтобы прервать его.

команда yes в linux

Фактически, yes можно использовать для многократной генерации любого сообщения по вашему выбору. Просто введите да, пробел, строку, которую вы хотите использовать, а затем нажмите Enter. Это часто используется, чтобы заставить yes генерировать выходной поток строк «да» или «нет».

команда yes в linux

команда yes в linux

Но что в этом толку?

Вывод yes может быть передан в другие программы или сценарии.

Звучит знакомо? Вы запускаете долгий процесс и уходите, оставляя его работать. Когда вы вернетесь к своему компьютеру, процесс вообще не завершится. В ваше отсутствие он задал вам вопрос и сидит в ожидании ответа «да» или «нет».

Если вы заранее знаете, что все ваши ответы будут положительными («да» или «y») или отрицательными («нет» или «n»), вы можете использовать «да», чтобы предоставить вам эти ответы. Затем ваш долгий процесс будет доведен до завершения без присмотра, и вы получите ответы на все вопросы, которые задает процесс.

Использование да со скриптами

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

Этот сценарий задает вопрос и ожидает ответа. Логический поток в сценарии определяется вводом пользователя.

«Да» или «y» означает положительный ответ.
Любой другой ввод считается отрицательным ответом.
Нажатие Enter без ввода текста ничего не делает.

Чтобы проверить это, скопируйте сценарий в файл и сохраните его как long_script.sh. Используйте chmod, чтобы сделать его исполняемым.

Запустите сценарий с помощью следующей команды. Попробуйте ввести «yes», «y» и что-нибудь еще в качестве ввода, включая нажатие Enter без ввода текста.

команда yes в linux

Чтобы получить «да», чтобы предоставить наш ответ на вопрос сценария, направьте вывод «да» по конвейеру.

команда yes в linux

Некоторые сценарии более жесткие в своих требованиях и принимают только полное слово «да» как положительный ответ. Вы можете указать «да» в качестве параметра для «да» следующим образом:

команда yes в linux

Не говори «да», не задумываясь об этом

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

Логика в сценарии, команде или программе может не соответствовать вашим ожиданиям. В нашем примере сценария вопрос мог быть таким: «Вы хотите остановиться? [y,n]. » Если бы это было так, отрицательный ответ позволил бы сценарию продолжить работу.

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

Использование yes с командами

В младенчестве да будет использоваться с другими командами Linux. С тех пор большинство этих других команд Linux работают по-своему, без вмешательства человека. Да больше не требуется для этого.

В качестве примера возьмем диспетчер пакетов Ubuntu apt-get. Чтобы установить приложение, не нажимая «y» в середине процесса установки, можно было бы использовать yes следующим образом:

команда yes в linux

команда yes в linux

Вы увидите, что apt-get даже не спрашивал своего обычного: «Вы хотите продолжить? [Y/n]»Вопрос. Он просто предполагал, что ответ будет «да».

В других дистрибутивах Linux ситуация такая же. В Fedora вы бы использовали этот тип команды диспетчера пакетов за один раз:

Неужели кажется, что yes было отнесено к работе только со скриптами? Не совсем. В старой собаке есть еще несколько уловок.

Некоторые дополнительные да хитрости

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

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

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

команда yes в linux

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

Вы можете быстро создавать большие файлы с помощью yes. Все, что вам нужно сделать, это дать ему длинную строку текста для работы и перенаправить вывод в файл. Не ошибитесь; эти файлы будут быстро расти. Будьте готовы нажать Ctrl + C в течение нескольких секунд.

команда yes в linux

Сгенерированный здесь файл занял около пяти секунд на тестовой машине, использованной для исследования этой статьи. ls сообщает, что его размер составляет 557 Мб, а мы сообщаем, что в нем 12,4 миллиона строк.

команда yes в linux

Как только в файле test.txt будет 50 строк, процесс остановится. Вам не нужно использовать Ctrl + C. Он изящно останавливается по собственной воле.

wc сообщает, что в файле ровно 50 строк, 400 слов и его размер составляет 2350 байт.

Несмотря на то, что она по-прежнему полезна для подачи ответов в долго выполняющиеся скрипты (и несколько других приемов), команда yes не станет частью вашего повседневного набора команд. Но когда оно вам действительно понадобится, вы обнаружите, что это сама простота — и все это в шести строках золотого кода.

Источник

Как использовать команду yes в Linux

команда yes в linux

Команда yes кажется слишком простой, чтобы иметь какое-либо практическое применение, но в этом руководстве мы покажем вам ее приложение и как извлечь выгоду из положительного положительного эффекта в Linux и macOS.

Команда да

Но не списывайте это на то, чтобы быть простой маленькой командой. Это может быть использовано несколькими интересными и полезными способами.

Что да делает?

Используемая без каких-либо параметров командной строки, команда yes ведет себя так, как будто вы вводите «y» и снова нажимаете Enter, снова и снова (и снова, и снова). Очень быстро. И это будет продолжаться до тех пор, пока вы не нажмете Ctrl + C, чтобы прервать его.

команда yes в linux

Но что это значит?

Вывод yes может быть передан в другие программы или сценарии.

Это звучит знакомо? Вы запускаете длинный процесс и уходите, оставляя его работать. Когда вы вернетесь к компьютеру, процесс еще не завершен. В ваше отсутствие он задал вам вопрос и ждет ответа «да» или «нет».

Если вы заранее знаете, что все ваши ответы будут положительными («да» или «у») или отрицательными («нет» или «n»), вы можете использовать « yes чтобы предоставить эти ответы для вас. После этого ваш длительный процесс будет завершен без присмотра, если вы ответите « yes предоставив ответы на любые вопросы, которые задает процесс.

Использование yes со скриптами

Посмотрите на следующий скрипт оболочки Bash. (Нам нужно представить, что это часть гораздо большего скрипта, выполнение которого займет значительное время.)

Этот скрипт задает вопрос и ожидает ответа. Логический поток в скрипте определяется входом от пользователя.

Запустите скрипт с помощью следующей команды. Попробуйте ввести «yes», «y» и все остальное в качестве ввода, включая нажатие клавиши «Enter» без ввода текста.

команда yes в linux

Чтобы получить « yes чтобы предоставить наш ответ на вопрос сценария, направьте вывод « yes в сценарий.

команда yes в linux

Некоторые сценарии более жесткие в своих требованиях и принимают только полное слово «да» как положительный ответ. Вы можете указать «да» в качестве параметра « yes следующим образом:

команда yes в linux

Не говори да, не думая об этом

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

Логика в сценарии, команде или программе может не соответствовать вашим ожиданиям. В нашем примере сценария вопрос мог звучать так: «Вы хотите остановиться? [y, n]. »Если бы это было так, отрицательный ответ позволил бы продолжить выполнение сценария.

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

Использование yes с командами

команда yes в linux

команда yes в linux

Вы увидите, что apt-get даже не спрашивает, как обычно: «Хотите продолжить? [Да / Нет] »вопрос. Предполагалось, что ответ будет «да».

На других дистрибутивах Linux ситуация такая же. В Fedora вы бы использовали команду такого типа сразу:

Таким образом, кажется, что yes было отнесено к работе только со сценариями? Не совсем. У старой собаки еще есть несколько уловок.

Некоторые Дальнейшие да Уловки

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

Этот однострочник выводит сгенерированные цифры в окно терминала, а затем вызывает sleep течение одной секунды.

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

команда yes в linux

команда yes в linux

команда yes в linux

Как только в файле test.txt будет 50 строк, процесс остановится. Вам не нужно использовать Ctrl + C. Это происходит изящно по собственному желанию.

wc сообщает, что в файле содержится ровно 50 строк, 400 слов и его размер составляет 2350 байт.

Даже при том, что это все еще полезно для подачи ответов в длительные сценарии (и некоторые другие уловки), команда yes не будет частью вашего ежедневного набора команд команд. Но когда вам это нужно, вы обнаружите, что это сама простота — и все в шести строках золотого кода.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *