Команда yes в linux
Команда yes кажется слишком простой, чтобы иметь какое-либо практическое применение, но в этом руководстве мы покажем вам ее применение и покажем, как извлечь выгоду из ее отложенного положительного результата в Linux и macOS.
Команда yes
Команда yes - одна из самых простых команд в Linux и других Unix-подобным системам, таких как macOS. Под простым мы подразумеваем простоту в использовании и первоначальной реализации. Исходный код исходной версии, выпущенной в System 7 Unix и написанной Кеном Томпсоном, составляет всего шесть строк кода.
Но не списывайте это на простую маленькую команду. Его можно использовать несколькими интересными и полезными способами.
Что делает да?
При использовании без каких-либо параметров командной строки команда yes ведет себя так, как если бы вы набирали «y» и нажимали Enter снова и снова (и снова и снова) снова. Очень быстро. И он будет продолжать это делать, пока вы не нажмете Ctrl + C, чтобы прервать его.
Но что в этом толку?
Вывод yes можно передать в другие программы или сценарии.
Звучит знакомо? Вы запускаете долгий процесс и уходите, оставляя его работать. Когда вы вернетесь к компьютеру, процесс еще не завершен. В ваше отсутствие он задал вам вопрос и сидит в ожидании ответа «да» или «нет».
Если вы заранее знаете, что все ваши ответы будут положительными («да» или «y») или отрицательными («нет» или «n»), вы можете использовать yes , чтобы предоставить эти ответы для ты. Затем ваш долгий процесс будет доведен до завершения без присмотра, а yes предоставит ответы на любые вопросы, которые задает процесс.
Использование да со скриптами
Взгляните на следующий сценарий оболочки Bash. (Нам нужно представить, что это часть гораздо более крупного скрипта, выполнение которого потребует значительного времени.)
Этот сценарий задает вопрос и ожидает ответа. Логический поток в сценарии определяется вводом пользователя.
- «Да» или «y» означает положительный ответ.
- Любой другой ввод считается отрицательным ответом.
- Нажатие Enter без ввода текста ничего не делает.
Чтобы проверить это, скопируйте сценарий в файл и сохраните его как long_script.sh . Используйте chmod , чтобы сделать его исполняемым.
Запустите сценарий с помощью следующей команды. Попробуйте ввести «yes», «y» и что-нибудь еще в качестве ввода, включая нажатие Enter без ввода текста.
Чтобы получить yes для предоставления нашего ответа на вопрос сценария, перенаправьте вывод yes сценарию.
Некоторые сценарии более жесткие в своих требованиях и принимают только полное слово «да» как положительный ответ. Вы можете указать «yes» в качестве параметра для yes следующим образом:
Не говори "да", не задумываясь об этом
Вы должны быть уверены, что ввод, который вы собираетесь ввести в сценарий или программу, определенно даст вам ожидаемый результат. Чтобы принять это решение, вы должны знать вопросы и свои ответы.
Логика сценария, команды или программы может не соответствовать вашим ожиданиям. В нашем примере сценария вопрос мог быть таким: «Вы хотите остановиться? [y, n] ». Если бы это было так, отрицательный ответ позволил бы сценарию продолжить работу.
Вы должны быть знакомы со сценарием, командой или программой, прежде чем беспечно вставлять в нее yes .
Использование yes с командами
В начальной стадии yes можно было использовать с другими командами Linux. С тех пор большинство этих других команд Linux работают по-своему, без вмешательства человека. yes для этого больше не требуется.
Возьмем в качестве примера диспетчер пакетов Ubuntu apt-get . Чтобы установить приложение, не нажимая «y» в середине процесса установки, можно было бы использовать yes следующим образом:
Тот же результат может быть достигнут с помощью параметра -y (при условии, что да) в apt-get :
Вы увидите, что apt-get даже не спросил обычного: «Продолжить? [Д / Н] »вопрос. Он просто предполагал, что ответ будет «да».
В других дистрибутивах Linux ситуация такая же. В Fedora вы бы использовали этот тип команды диспетчера пакетов за один раз:
Менеджер пакетов dnf заменил yum , а dnf имеет собственный параметр -y (предположим, что да).
То же самое относится к cp , fsck и rm . Каждая из этих команд имеет свои собственные параметры -f (принудительно) или -y (предположим, что да).
Неужели кажется, что yes был переведен только на работу со скриптами? Не совсем. В старой собаке есть еще несколько уловок.
Некоторые дополнительные да хитрости
Вы можете использовать yes с последовательностью цифр, сгенерированной seq , чтобы управлять циклом повторяющихся действий.
Этот однострочник отображает сгенерированные цифры в окне терминала, а затем вызывает sleep на одну секунду.
Вместо того, чтобы просто выводить цифры в окно терминала, вы можете вызвать другую команду или скрипт. В этой команде или сценарии даже не нужно использовать цифры, и они нужны только для запуска каждого цикла цикла.
Иногда бывает полезно иметь большой файл для тестирования. Возможно, вы хотите попрактиковаться в использовании команды zip или иметь файл большого размера для тестирования загрузка по FTP.
Сгенерированный здесь файл занял около пяти секунд на тестовой машине, использованной для исследования этой статьи. ls сообщает, что его размер составляет 557 МБ, а wc сообщает нам, что в нем 12,4 миллиона строк.
Мы можем ограничить размер файла, включив head в нашу командную строку. Мы сообщаем ему, сколько строк включить в файл. -50 означает, что head пропустит всего 50 строк в файл test.txt .
Как только в файле test.txt будет 50 строк, процесс остановится. Вам не нужно использовать Ctrl + C. Он изящно останавливается по собственной воле.
wc сообщает, что в файле ровно 50 строк, 400 слов и его размер составляет 2350 байт.
Как автоматически отвечать на Да или Нет в командах Linux-Unix
Метод 1: Повторять да или нет
Вы могли бы использовать этот метод, вторя да или нет до фактической команды или сценария и размещения трубы «|» между этими двумя командами. Для разработки этой методики покажем пример.
Допустим, у вас есть пять текстовых файлов в каталоге «/tmp/AndreyEx», как показано ниже.
Теперь вы хотите удалить все или только один файл «1.txt» в этом каталоге. Ответ прост, команда rm. Однако эта команда попросить да или нет, прежде чем приступить к удалению файла. Как показано ниже:
В описанном выше способе мы обеспечили ввод «у» для команды rm. Чтобы этого можно было избежать, укажем перед командой rm, как показано ниже:
Мы сделали автоматический ответ на команду, но есть еще проблема. Команда echo не может использоваться для ответа как непрерывный ответ да или нет на команды. В этой ситуации вам необходимо использовать следующий метод.
Метод 2: команда yes.
Да команда является другим вариантом, если вам надо автоматически отвечать Yes или No на команды в Linux-Unix.
В основном то, что команда yes делает, он непрерывно выводит строки, передаваемые в них или даже передать строку yes в одиночку. Следовательно, мы можем использовать эту возможность для автоматического ответа да или нет в команды Linux/Unix/скрипты. Давайте рассмотрим пример. У нас есть пять файлов, как раньше, и мы хотим удалить все эти файлы, не отвечая на вопрос о подтверждении Да или Нет. Тогда попробуйте ниже метод, который использует команду «Yes».
Вот то, что произошло, когда команда yes дается непрерывный ответ, как Yes для следующей команды rm. Результат удаления всех файлов без ручного вмешательства. Это не может быть достигнуто с помощью метода эхо-да, поскольку он дает ввод как Да только один раз .
Способ 3: команда yes с другим входом.
Допустим, вы не хотите ответы, вместо Да. В этот раз, когда вы хотите ответить no для всех подтверждений, заданные командой. Далее следует ниже пример. Здесь мы не ответили no на все ответы. Следовательно, никакие файлы не были удалены системой.
Даже вы можете использовать следующую команду вместо выше.
Вывод:
Таким образом, мы можем использовать команду yes для автоматического ответа Да или Нет для команд Linux-Unix. Это очень помогает сисадмину выполнять команды в непрерывной форме, что делает их жизнь легкой и комфортной.
Команда yes кажется слишком простой, чтобы иметь какое-либо практическое применение, но в этом руководстве мы покажем вам ее применение и то, как извлечь выгоду из ее отложенного положительного результата в Linux и macOS.
Команда yes
Но не списывайте это на простую маленькую команду. Его можно использовать несколькими интересными и полезными способами.
Что делает да?
При использовании без каких-либо параметров командной строки команда yes ведет себя так, как если бы вы вводили «y» и нажимали Enter, снова и снова (и снова и снова) снова. Очень быстро. И это будет продолжаться, пока вы не нажмете Ctrl + C, чтобы прервать его.
Но что в этом толку?
Вывод yes может быть передан в другие программы или сценарии.
Звучит знакомо? Вы запускаете долгий процесс и уходите, оставляя его работать. Когда вы вернетесь к своему компьютеру, процесс вообще не завершится. В ваше отсутствие он задал вам вопрос и сидит в ожидании ответа «да» или «нет».
Если вы заранее знаете, что все ваши ответы будут положительными («да» или «y») или отрицательными («нет» или «n»), вы можете использовать «да», чтобы предоставить вам эти ответы. Затем ваш долгий процесс будет доведен до завершения без присмотра, и вы получите ответы на все вопросы, которые задает процесс.
Проверь это - 5 лучших тем загрузчика Grub2 для использования в LinuxИспользование да со скриптами
Взгляните на следующий сценарий оболочки Bash. (Нам нужно представить, что это часть гораздо более крупного скрипта, выполнение которого займет значительное время.)
Этот сценарий задает вопрос и ожидает ответа. Логический поток в сценарии определяется вводом пользователя.
«Да» или «y» означает положительный ответ.
Любой другой ввод считается отрицательным ответом.
Нажатие Enter без ввода текста ничего не делает.
Чтобы проверить это, скопируйте сценарий в файл и сохраните его как long_script.sh. Используйте chmod, чтобы сделать его исполняемым.
Запустите сценарий с помощью следующей команды. Попробуйте ввести «yes», «y» и что-нибудь еще в качестве ввода, включая нажатие Enter без ввода текста.
Чтобы получить «да», чтобы предоставить наш ответ на вопрос сценария, направьте вывод «да» по конвейеру.
Некоторые сценарии более жесткие в своих требованиях и принимают только полное слово «да» как положительный ответ. Вы можете указать «да» в качестве параметра для «да» следующим образом:
Вы должны быть уверены, что ввод, который вы собираетесь ввести в сценарий или программу, определенно даст вам ожидаемый результат. Чтобы принять это решение, вы должны знать вопросы и свои ответы.
Логика в сценарии, команде или программе может не соответствовать вашим ожиданиям. В нашем примере сценария вопрос мог быть таким: «Вы хотите остановиться? [y,n]. » Если бы это было так, отрицательный ответ позволил бы сценарию продолжить работу.
Вы должны быть знакомы со сценарием, командой или программой, прежде чем беспечно вставлять в них «да».
Использование yes с командами
В младенчестве да будет использоваться с другими командами Linux. С тех пор большинство этих других команд Linux работают по-своему, без вмешательства человека. Да больше не требуется для этого.
В качестве примера возьмем диспетчер пакетов Ubuntu apt-get. Чтобы установить приложение, не нажимая «y» в середине процесса установки, можно было бы использовать yes следующим образом:
Тот же результат может быть достигнут с помощью опции -y (предположим, что да) в apt-get:
Вы увидите, что apt-get даже не спрашивал своего обычного: «Вы хотите продолжить? [Y/n]»Вопрос. Он просто предполагал, что ответ будет «да».
В других дистрибутивах Linux ситуация такая же. В Fedora вы бы использовали этот тип команды диспетчера пакетов за один раз:
Менеджер пакетов dnf заменил yum, а dnf имеет свой собственный параметр -y (предположим, что да).
То же самое относится к cp, fsck и rm. Каждая из этих команд имеет свои собственные параметры -f (принудительно) или -y (предположим, что да).
Неужели кажется, что yes было отнесено к работе только со скриптами? Не совсем. В старой собаке есть еще несколько уловок.
Некоторые дополнительные да хитрости
Вы можете использовать yes с последовательностью цифр, сгенерированной seq, чтобы управлять циклом повторяющихся действий.
Этот однострочник отображает сгенерированные цифры в окно терминала, а затем вызывает спящий режим на одну секунду.
Вместо того, чтобы просто выводить цифры в окно терминала, вы можете вызвать другую команду или сценарий. В этой команде или сценарии даже не нужно использовать цифры, и они нужны только для запуска каждого цикла цикла.
Иногда бывает полезно иметь большой файл для тестирования. Возможно, вы хотите попрактиковаться в использовании команды zip или иметь файл большого размера для тестирования загрузки по FTP.
Сгенерированный здесь файл занял около пяти секунд на тестовой машине, использованной для исследования этой статьи. ls сообщает, что его размер составляет 557 Мб, а мы сообщаем, что в нем 12,4 миллиона строк.
Мы можем ограничить размер файла, включив заголовок в нашу командную строку. Мы сообщаем ему, сколько строк включить в файл. -50 означает, что head пропустит всего 50 строк в файл test.txt.
Как только в файле test.txt будет 50 строк, процесс остановится. Вам не нужно использовать Ctrl + C. Он изящно останавливается по собственной воле.
wc сообщает, что в файле ровно 50 строк, 400 слов и его размер составляет 2350 байт.
Команда yes кажется слишком простой, чтобы иметь какое-либо практическое применение, но в этом руководстве мы покажем вам ее приложение и как извлечь выгоду из положительного положительного эффекта в Linux и macOS.
Команда да
Команда yes является одной из самых простых команд в Linux и других Unix-подобных операционных системах, таких как macOS. Под простым мы подразумеваем простое в его использовании и первоначальной реализации. Исходный код исходной версии, выпущенной в System 7 Unix и созданной Кеном Томпсоном, содержит всего шесть строк кода .
Но не списывайте это на то, чтобы быть простой маленькой командой. Это может быть использовано несколькими интересными и полезными способами.
Что да делает?
Используемая без каких-либо параметров командной строки, команда yes ведет себя так, как будто вы вводите «y» и снова нажимаете Enter, снова и снова (и снова, и снова). Очень быстро. И это будет продолжаться до тех пор, пока вы не нажмете Ctrl + C, чтобы прервать его.
Но что это значит?
Вывод yes может быть передан в другие программы или сценарии.
Это звучит знакомо? Вы запускаете длинный процесс и уходите, оставляя его работать. Когда вы вернетесь к компьютеру, процесс еще не завершен. В ваше отсутствие он задал вам вопрос и ждет ответа «да» или «нет».
Если вы заранее знаете, что все ваши ответы будут положительными («да» или «у») или отрицательными («нет» или «n»), вы можете использовать « yes чтобы предоставить эти ответы для вас. После этого ваш длительный процесс будет завершен без присмотра, если вы ответите « yes предоставив ответы на любые вопросы, которые задает процесс.
Использование yes со скриптами
Посмотрите на следующий скрипт оболочки Bash. (Нам нужно представить, что это часть гораздо большего скрипта, выполнение которого займет значительное время.)
Этот скрипт задает вопрос и ожидает ответа. Логический поток в скрипте определяется входом от пользователя.
- «Да» или «у» означает положительный ответ.
- Любой другой вклад считается отрицательным ответом.
- Нажатие Enter без ввода текста ничего не делает.
Чтобы проверить это, скопируйте скрипт в файл и сохраните его как long_script.sh . Используйте chmod чтобы сделать его исполняемым.
Запустите скрипт с помощью следующей команды. Попробуйте ввести «yes», «y» и все остальное в качестве ввода, включая нажатие клавиши «Enter» без ввода текста.
Чтобы получить « yes чтобы предоставить наш ответ на вопрос сценария, направьте вывод « yes в сценарий.
Некоторые сценарии более жесткие в своих требованиях и принимают только полное слово «да» как положительный ответ. Вы можете указать «да» в качестве параметра « yes следующим образом:
Не говори да, не думая об этом
Вы должны быть уверены, что входные данные, которые вы собираетесь передать в сценарий или программу, определенно дадут вам ожидаемый результат. Чтобы принять это решение, вы должны знать вопросы и каковы ваши ответы.
Логика в сценарии, команде или программе может не соответствовать вашим ожиданиям. В нашем примере сценария вопрос мог звучать так: «Вы хотите остановиться? [y, n]. »Если бы это было так, отрицательный ответ позволил бы продолжить выполнение сценария.
Использование yes с командами
В зачаточном состоянии yes будет использоваться с другими командами Linux. С тех пор большинство этих других команд Linux имеют свой собственный способ запуска без участия человека. yes , больше не требуется для этого.
Давайте возьмем в качестве примера менеджер пакетов Ubuntu apt-get . Чтобы установить приложение без необходимости нажимать «y» на полпути при установке, yes бы следующим образом:
Тот же результат может быть достигнут с помощью опции -y (предположим, да) в apt-get :
Вы увидите, что apt-get даже не спрашивает, как обычно: «Хотите продолжить? [Да / Нет] »вопрос. Предполагалось, что ответ будет «да».
На других дистрибутивах Linux ситуация такая же. В Fedora вы бы использовали команду такого типа сразу:
Менеджер пакетов dnf заменил yum а dnf имеет собственную опцию -y (предположим, да).
То же самое относится к cp , fsck и rm . Каждая из этих команд имеет свои собственные опции -f (force) или -y (предположим, да).
Таким образом, кажется, что yes было отнесено к работе только со сценариями? Не совсем. У старой собаки еще есть несколько уловок.
Некоторые Дальнейшие да Уловки
Вы можете использовать yes с последовательностью цифр, сгенерированной seq чтобы контролировать цикл повторяющихся действий.
Этот однострочник выводит сгенерированные цифры в окно терминала, а затем вызывает sleep течение одной секунды.
Вместо того, чтобы просто отображать цифры в окне терминала, вы можете вызвать другую команду или скрипт. Эта команда или сценарий даже не должны использовать цифры, и они только там, чтобы запустить каждый цикл цикла.
Иногда полезно иметь большой файл для тестирования. Возможно, вы хотите попрактиковаться в использовании команды zip , или вы хотите иметь большой файл для тестирования загрузок FTP .
Мы можем ограничить размер файла, добавив head в нашу командную строку. Мы говорим, сколько строк включить в файл. -50 означает, что head пропустит всего 50 строк в файл test.txt .
Как только в файле test.txt будет 50 строк, процесс остановится. Вам не нужно использовать Ctrl + C. Это происходит изящно по собственному желанию.
wc сообщает, что в файле содержится ровно 50 строк, 400 слов и его размер составляет 2350 байт.
Читайте также: