Dquote в терминале что значит
20 приёмов работы в командной строке Linux, которые сэкономят уйму времени
Тема полезных приёмов работы в терминале Linux неисчерпаема. Казалось бы — всё устроено очень просто: приглашение оболочки, да введённые с клавиатуры команды. Однако, в этой простоте кроется бездна неочевидных, но полезных возможностей. Именно поэтому мы регулярно публикуем материалы, посвящённые особенностям работы в командной строке Linux. В частности, сегодня это будет перевод статьи, автор которой увлечён экономией времени через повышение продуктивности труда.
Если вас интересует работа в командной строке Linux — вот некоторые из наших материалов на эту тему:
Приёмы работы в командной строке Linux и экономия времени
Вам когда-нибудь доводилось видеть, как коллега использует некие простые команды Linux для решения задач, решение которых занимает у вас несколько строк? Должно быть, когда подобное случалось, вы только и могли сказать себе: «Ну ничего ж себе! Я и не знал, что это можно сделать так просто».
В этом материале я покажу вам некоторые профессиональные приёмы работы в командной строке Linux, которые сэкономят вам уйму времени и в некоторых случаях избавят от плохого настроения. Мало того, что ваши друзья или коллеги скажут: «Ну надо же!», глядя на вас. Эти приёмы, кроме того, помогут вам увеличить личную продуктивность, так как вам понадобится вводить меньше команд и даже делать меньше щелчков мышью.
Нельзя сказать, что эти советы по Linux предназначены только для начинающих. Вполне возможно, что даже опытные пользователи найдут здесь что-нибудь полезное, то, о чём они не знали несмотря на то, что пользовались Linux многие годы. Linux изучают на основе опыта. Тут сгодится и собственный опыт, и опыт других людей.
Прежде чем мы начнём, хочется отметить, что некоторые из приведённых здесь методов зависят от настройки командной оболочки.
0. Автозавершение команд с использованием клавиши Tab
Использование клавиши Tab для автозавершения ввода
Клавишу Tab можно использовать и для автозавершения команд.
1. Переход в последнюю рабочую директорию
Представьте, что вы работали в директории, до которой не так уж и просто добраться, а потом перешли в другую директорию, расположенную совершенно в другом месте. Потом вы поняли, что вам нужно вернуться в предыдущую директорию. В этом случае достаточно воспользоваться следующей командой:
Она позволит вам оказаться в последней рабочей директории. Теперь в подобных ситуациях вам не нужно больше будет вводить длинные пути, или пользоваться копированием и вставкой.
Простое переключение между директориями
2. Возврат в домашнюю директорию
Этот приём тоже весьма очевиден. Вы можете использовать нижеприведённую команду для того, чтобы вернуться в домашнюю директорию из любого места:
Самый быстрый способ перехода в домашнюю директорию
3. Вывод на экран содержимого директории
Работоспособность этой команды зависит от дистрибутива Linux и от настройки оболочки, но весьма вероятно, что вы сможете воспользоваться ей в большинстве дистрибутивов.
4. Вызов нескольких команд в одной строке
Представьте, что вам нужно последовательно выполнить несколько команд. Наверное, вы вводите одну команду, потом ждёте, когда она завершится, дальше — вводите следующую?
В подобной ситуации полезным окажется разделитель команд ; (точка с запятой). При таком подходе вы можете ввести несколько команд в одной строке. При этом, в отличие от обычного ввода команд, для выполнения следующей команды не надо ждать завершения предыдущей.
5. Выполнение нескольких команд в одной строке и условие на успешное завершение предыдущей команды
Только что мы рассмотрели способ вызова нескольких команд в одной строке. Это экономит время. Но что если вам нужно, скажем, при вызове двух команд, чтобы следующая команда была выполнена только в том случае, если предыдущая завершится без ошибок?
Вот хороший пример использования && :
6. Простой поиск и использование ранее введённых команд
Представьте себе, что вы, пару минут или пару часов назад, вводили длинную команду, и вам снова нужна эта команда. Причём, проблема заключается в том, что вспомнить точно эту команду вы не можете.
В подобной ситуации вас спасёт обратный поиск. Данная методика позволяет проводить поиск в истории команд по ключевому слову. Тут достаточно использовать комбинацию клавиш Ctrl + R для запуска обратного поиска и ввести что-то, имеющее отношение к команде. Система просмотрит историю команд и покажет команды, соответствующие введённому запросу.
Обратный поиск по истории команд
7. Разблокировка терминала после случайного нажатия Ctrl + S
Возможно, вы привыкли пользоваться комбинацией клавиш Ctrl + S для сохранения файлов. Но если нажать эти клавиши в терминале Linux, вы его заблокируете.
8. Перемещение к началу или концу строки
Представьте себе, что вы вводите длинную команду и где-нибудь посередине понимаете, что должны что-нибудь изменить в её начале. Вероятно, вы используете клавиши-стрелки для того, чтобы сначала переместиться в начало строки, а потом вернуться в конец.
Перемещение к началу или концу строки
9. Чтение лог-файлов в режиме реального времени
Кроме того, вы можете использовать команду grep в её обычном виде для отображения только тех строк, которые вас интересуют:
10. Чтение сжатых лог-файлов без их распаковки
Серверные журналы обычно сжаты с помощью gzip для экономии места на диске. Это может привести к некоторым неудобствам при анализе логов разработчиками или системными администраторами. Вам может понадобиться использовать команду scp для копирования файла в свою локальную директорию, а после этого извлечь файл из архива для того, чтобы его просмотреть, так как у вас может не быть разрешения на запись туда, где хранится интересующий вас файл.
Кстати, когда я рассказал об этих «секретных» командах коллеге, мне досталась чашка кофе.
11. Использование команды less для чтения файлов
Во время сеанса работы с less можно искать нужные фрагменты текста по ключевым словам, перемещаться по страницам, выводить данные с номерами строк, и так далее.
Во многих ситуациях очень кстати оказывается возможность использования аргумента предыдущей команды.
Ещё лучше то же самое делается с помощью сочетания клавиш Alt +. (точка). Точку можно использовать несколько раз для перебора опций последней команды.
Воспользуйтесь. для подстановки последней команды в качестве аргумента
14. Использование псевдонимов для исправления ошибок ввода
Теперь вам не придётся перенабирать эту команду если вы введёте её имя неправильно.
15. Копирование и вставка в терминале Linux
Этот совет несколько неоднозначен, так как он зависит от дистрибутива Linux и от терминала.
Но обычно команды копирования и вставки можно вызывать следующим образом:
16. Завершение работы команды или процесса
Возможно, то, что я тут хочу посоветовать, совершенно очевидно, однако, всё равно об этом расскажу. Если команда выполняется на переднем плане и вы хотите из неё выйти, можете нажать клавиши Ctrl + C для того, чтобы её остановить.
17. Использование команды yes для автоматизации интерактивных команд или скриптов
18. Очистка содержимого файла без удаления самого файла
Если вы хотите очистить содержимое текстового файла, не удаляя сам файл, можете использовать следующую команду:
19. Выяснение наличия в директории файлов, содержащих определённый текст
Командная строка Linux поддерживает множество способов поиска информации. Однако, если вам просто нужно узнать, имеются ли в некоей директории файлы, которые содержат определённый текст, вы можете воспользоваться такой командой:
20. Вызов справки для любой команды
Хочу завершить этот материал одним весьма очевидным, но, тем не менее, очень важным «трюком», который заключается в вызове справки для команды или инструмента командной строки.
Практически все средства командной строки содержат справочную информацию, раскрывающую особенности их использования. Обычно чтение справки помогает разобраться с основами команды. Вызвать справку можно так:
Итоги: делитесь полезными советами!
Уважаемые читатели! Возможно, вы уже знакомы с некоторыми из приведённых здесь методов использования команд Linux, а может и знаете их все. В любом случае, приглашаем вас поделиться вашими любимыми приёмами в комментариях.
Основные команды терминала macOS, которые вам нужно знать [Guide]
Терминал — это приложение в операционных системах на основе Unix, которое предоставляет интерфейс командной строки (или CLI), поэтому вы можете взаимодействовать с оболочкой операционной системы и получать доступ к ее различным службам и управлять ими.
В macOS терминал, соответственно, называется Терминалом, и он использует оболочку Z (Zsh) в качестве оболочки входа по умолчанию. Используя Терминал, вы можете легко перемещаться по системным каталогам, копировать / перемещать файлы, получать системную информацию, безопасно удаленно входить в другие системы и эффективно автоматизировать задачи / действия на вашем Mac.
Однако для выполнения любого из этих действий вам необходимо знать команды терминала (и их синтаксис). В этом руководстве мы перечислим все основные команды терминала macOS и способы их использования, чтобы вы могли эффективно использовать их на своем Mac.
Основные команды терминала macOS
Для выполнения команд в любой операционной системе требуется терминал. macOS уже поставляется с одним из них, и вы можете найти его в Приложения> Утилиты.
Кроме того, вы также можете добавить его в свою док-станцию для быстрого доступа. Для этого запустите Терминал, щелкните правой кнопкой мыши его значок в доке и выберите Параметры > Хранить в доке.
Теперь, когда на вашем Mac запущен Терминал, все, что вам нужно сделать, это ввести команду терминала и нажать «Return», чтобы выполнить ее.
Для вашего удобства мы разделили команды на несколько категорий, чтобы им было легче следовать:
1. Основные команды терминала
Прежде чем перейти к командам Терминала для конкретных действий, ниже приведены некоторые основные команды, которые вам следует знать.
я. человек
Команда man отображает руководство пользователя команды, для которой вы делаете запрос. Используя его, вы можете получить дополнительную информацию о команде, такую как ее описание, использование, доступные параметры и варианты, среди прочего.
предоставит вам всю необходимую информацию о команде cd (сменить каталог).
II. Чисто
Как следует из названия, команда clear очищает оболочку и дает вам пустое окно для ввода ваших команд. Поэтому, если у вас есть окно терминала, заполненное результатами всех ваших предыдущих команд, просто запустите clear, чтобы получить чистый лист.
iii. судо
sudo — самая мощная команда терминала. Он дает вам права администратора (root) для выполнения действий в macOS. Вам нужно будет использовать его, если вы хотите выполнить команду, требующую доступа суперпользователя.
Например, если вы хотите выключить Mac через Терминал, вам нужно запустить:
и введите свой пароль пользователя для выполнения команды.
iv. история
Команда history пригодится, когда вы хотите узнать все команды, которые вы выполняли в прошлом. Например, если вы отключили / включили какую-либо службу на своем Mac, но точно не помните ее имя или команду, которую вы использовали, вы можете использовать эту команду, чтобы узнать службу и отменить свое действие.
2. Навигация по каталогам
Перемещение между разными каталогами — одно из основных действий, которые вам необходимо выполнить для навигации по файловой системе. Вам нужно будет выполнить это, когда вы хотите создать новый файл, переместить файл между каталогами или запустить программы в каталоге.
Однако, прежде чем менять каталоги, важно знать ваш текущий рабочий каталог. Для этого запустите:
Точно так же вам может потребоваться просмотреть содержимое каталога, чтобы определить, содержит ли он файл / каталог, к которому вы хотите получить доступ. Используйте следующую команду и ее варианты, чтобы сделать это эффективно:
Для подробной разбивки:
Чтобы просмотреть все содержимое каталога, включая скрытые файлы и каталоги:
После того, как вы определили текущий рабочий каталог и каталог, к которому хотите перейти, команда cd поможет вам перемещаться между каталогами. Ниже приводится объяснение того, как его использовать.
Чтобы перейти в домашний каталог:
Если вы хотите перейти в конкретный каталог:
Чтобы перейти в родительский каталог:
Если вы хотите вернуться в предыдущий рабочий каталог:
Наконец, когда вам нужно перейти в корневой каталог, запустите:
3. Управление каталогом
Как только вы перейдете к желаемому каталогу, вы сможете выполнять там несколько операций, начиная от создания и редактирования новых каталогов и заканчивая удалением существующих.
Чтобы создать каталог, запустите:
Если вы хотите создать сразу несколько каталогов:
mkdir directory_name_1 directory_name_2 directory_name_3
Если вы хотите удалить / удалить каталог, запустите:
4. Управление файлами
Подобно управлению каталогами, Terminal также позволяет выполнять файловые операции, поэтому вы можете создавать новые файлы, редактировать их и удалять те, которые вам не нужны.
Чтобы создать файл:
Если вы хотите создать и отредактировать файл, запустите:
который откроет файл в текстовом редакторе Nano. В качестве альтернативы, если вы предпочитаете использовать какой-либо другой текстовый редактор, замените nano на имя этого редактора в приведенной выше команде.
Чтобы просмотреть тип файла на вашем Mac:
Если вы хотите скопировать файл из текущего каталога в другой каталог, запустите:
cp file_name directory_name
Если необходимо скопировать файл в тот же каталог, но с другим именем:
cp file_name new_file_name
Помимо копирования, иногда необходимо перемещать файлы между разными каталогами. Когда возникают такие потребности, вы можете переместить файл из вашего текущего каталога в другой каталог с помощью:
mv file_name directory_name
Более того, команда mv также может использоваться как команда переименования. Чтобы использовать его для переименования файла, используйте следующий синтаксис:
mv current_file_name new_file_name
Если вы хотите удалить / удалить файл, запустите:
5. Установка программ
macOS поставляется с предустановленным менеджером пакетов Homebrew, который позволяет устанавливать программы на Mac с помощью Терминала. В некотором смысле это намного более простой способ установки приложений на ваш компьютер, в отличие от традиционного способа, при котором вам нужно будет выполнить ряд шагов.
Чтобы обновить репозиторий Homebrew, запустите:
brew update
Если вы хотите обновить все установленные пакеты в вашей системе:
brew upgrade
Если это программа без графического интерфейса:
brew install program_name
Обратите внимание, что не все пакеты / программы могут быть установлены сразу: вам может потребоваться добавить их исходный репозиторий, чтобы получить их перед запуском команды установки.
Наконец, если вы хотите удалить программу, используйте:
brew uninstall program_name
6. Управление сетью
macOS позволяет просматривать подробную информацию о конфигурации сети прямо из окна Терминала. Хотя вы можете использовать графический интерфейс для просмотра такой информации, подход CLI делает весь процесс быстрым и легким и избавляет вас от лишних действий.
Одна из самых основных сетевых операций — это проверка связи с веб-сайтом / IP-адресом для проверки возможности подключения. Для этого введите:
Если вы хотите просмотреть IP-адрес и MAC-адрес вашего устройства, запустите:
Чтобы узнать IP-адрес и MAC-адрес всех устройств, подключенных к вашей сети:
Если вам нужна информация о входящих и исходящих подключениях к вашему Mac, используйте:
Чтобы найти все запущенные процессы на вашем Mac, у которых есть активное подключение к Интернету:
Чтобы получить дополнительную информацию о домене, используйте:
Если вы хотите определить путь (и переходы), пройденный пакетами от вашего устройства до их адреса назначения, запустите:
7. Управление процессами
Если вы когда-либо открывали приложение Activity Monitor на своем Mac, вы бы видели все активные процессы, запущенные в вашей системе. Эти процессы могут быть системными приложениями, сторонними приложениями или другими фоновыми службами, необходимыми операционной системе.
Хотя, как правило, вы не столкнетесь с проблемами с этими процессами, но иногда, когда на вашем устройстве работает много из них — до точки, когда она находится на границе, близкой к максимальному пределу памяти / ЦП — вы можете столкнуться с некоторой задержкой на вашем устройстве. система.
Один из способов справиться с этим — использовать приложение Activity Monitor. Однако гораздо более простой способ сделать это — использовать Терминал.
Первый шаг — определить запущенные процессы в вашей системе. Для этого запустите:
В качестве альтернативы, если вы хотите узнать статус основных процессов, которые в настоящее время запущены, вы можете сделать это с помощью:
Нажмите q или же Ctrl + C остановиться.
Теперь, если вы заметили незнакомый процесс или процесс, который потребляет много ваших ресурсов в выводе любой из вышеперечисленных команд, вы можете получить дополнительную информацию об этом, запустив:
Здесь вы можете увидеть имя приложения в столбце CMD. Обычно указывается абсолютный путь к программе / приложению.
Узнав больше о процессе, если вы обнаружите необходимость его прервать, запустите:
sudo killall program_name
Поскольку мы запускаем команду kill / killall с sudo, вам нужно будет ввести свой пароль пользователя после ввода команды для ее выполнения.
8. Управление разрешениями
Разрешения в операционной системе определяют, кто может получать доступ и изменять файлы / каталоги на компьютере. Если у вас есть несколько пользователей, использующих одну и ту же систему, вы можете установить разрешения для каждого пользователя, чтобы ограничить их доступ и запретить им просматривать или изменять ваши системные (или другие) файлы.
Установить разрешения в Терминале довольно просто, если вы разберетесь с его синтаксисом. Однако, прежде чем перейти к нему, первое, что вам нужно сделать, это определить права доступа к файлу, который вы хотите изменить. Для этого наберите:
Вы должны увидеть права доступа к файлам в левой части вывода. Разрешение файла / каталога обычно состоит из одиннадцати символов: первый символ указывает, является ли он файлом или каталогом, следующие девять символов обозначают разрешения (и делятся на группы по три, а последний символ указывает, содержит ли файл / каталог расширенный атрибуты.
Первым символом всегда является дефис (—) или буквой (d): первый представляет файл, а второй означает каталог. Переходя к следующим девяти символам, они делятся на три группы: владелец файла / каталога, группа и другие права пользователя. Каждое из этих девяти мест занято следующими персонажами: — (отсутствует разрешение на), р (читать), ш (написать), или Икс (выполнять).
Собирая эти символы вместе, вы можете установить разрешения для файла / каталога. Вот как могут быть сформированы разрешения:
В качестве альтернативы вы также можете использовать числовую нотацию, в которой указанные выше символы заменяются числами. Всего он состоит из восьми чисел, и вот разбивка того, что они обозначают:
Наконец, одиннадцатый символ в обозначении разрешений — @. Он называется расширенным атрибутом и уникален для определенных файлов и каталогов.
С основами, вот как включить приведенную выше информацию для установки разрешений.
Чтобы настроить разрешения на чтение, запись и выполнение для всех трех классов доступа, запустите:
chmod ugo+rwx file_name
В числовом представлении вам нужно будет использовать:
chmod 777 file_name
Чтобы сделать то же самое для всех текстовых файлов в каталоге:
Когда необходимо предоставить всем пользовательским классам одно и то же разрешение:
chmod a+rwx file_name
Если вы хотите установить разрешения таким образом, чтобы класс пользователя получал все три доступа, в то время как группа получала доступ для чтения и записи, а другие пользователи получали доступ только для чтения, вам необходимо использовать следующую команду:
chmod ugo+rwxrw-r— file_name
В числовом представлении:
chmod 764 file_name
Чтобы удалить разрешения на запись и выполнение для группы и других классов пользователей, введите:
chmod go-wx file_name
chmod 744 file_name
Если вам сложно использовать числовое представление, вы можете использовать калькулятор chmod, чтобы определить обозначение разрешений для ваших требований к разрешениям.
Эффективное использование Mac с помощью команд терминала
В этом списке мы едва коснулись поверхности команд терминала: есть множество других команд, которые вы можете использовать для выполнения практически всех видов действий на вашем Mac.
Тем не менее, перечисленные выше команды наверняка помогут вам заполучить Терминал и позволят вам эффективно использовать его для быстрого и эффективного выполнения тривиальных действий на вашем Mac. И со временем, когда вы познакомитесь с ним, вы сможете использовать его более эффективно.
Команды терминала Linux для начинающих. Часть первая
Авторизуйтесь
Команды терминала Linux для начинающих. Часть первая
Основы в терминале Linux
Ниже представлена схема типичной команды в терминале ОС Linux:
Следующие команды позволят вам лучше узнать систему:
Работа с процессами
Для начала создайте список процессов по имени, идентификационного номеру процесса и т. д. (обычно используемый признак состояния aux ).
Учитывайте особенности реализации программных потоков: POSIX, GNU и BSD, а также то, что они отличаются в работе и применении. Вышеуказанные реализации отличаются различными опциями: POSIX (-), GNU (–), BSD (без тире).
Чтобы аннулировать процесс, введите kill
. Данная команда используется для завершения процессов-зомби или прекращения зависших сеансов.
Далее идут команды терминала Linux, которые спасут положение в затруднительных ситуациях:
Работа с файлами
Следующие команды потребуются вам при работе с файлами разного типа и объёма:
Что вы можете сделать с двоичными файлами? На самом деле, вариантов не очень много:
Если вам требуется сравнить текстовые файлы друг с другом, введите следующие команды:
Интернет в командной строке
При работе в терминале Linux с интернет-ресурсами применяйте следующие команды:
Горячие клавиши
Навигация
Ctrl+] перемещает курсор на первое вхождение вправо.
Ctrl+alt+] перемещает курсор на первое вхождение влево.
Удаление
Используйте Ctrl+Y, чтобы вставить обратно удалённые файлы.
Дополнительно
Подстановочные символы
Далее приведены подстановочные символы, которые расширяют объём команды терминала Linux во время её выполнения:
Хитрости, которые сэкономят время
Этот список полезных знаков позволит вам в разы ускорить работу с командами:
Потоки ввода-вывода терминала и переадресация
В терминале Linux работа осуществляется через три потока ввода-вывода: вход ( stdin ), выход ( stdout ) и ошибка ( stderr ).
Использование угловых скобок применяется для перенаправления (переадресации) команд и файлов в них и из них:
Анатомия командной строки переадресации с использованием потоков
Дополнительные примеры переадресации приведены ниже:
Каналы
Канал — это особая концепция системы Linux, которая автоматизирует перенаправление вывода одной команды посредством использования входных данных на следующую команду. Такое использование каналов приводит к эффективным комбинациям независимых команд. Ниже приведены некоторые из них:
Расшифровка и отладка команд каналов
Приведённая выше команда эквивалентна выполнению следующих 4 команд:
Сокращение этапов работы с командами зачастую является эффективным и более простым способом, который позволяет сэкономить время и упростить процесс. Например, вышеупомянутый конвейер можно уменьшить следующим образом:
Ниже приведено ещё несколько примеров каналов:
Чтобы получить доступ к pdf-файлам страниц справочника man :
Чтобы получить актуальные на сегодняшний день файлы:
Топ-10 самых часто используемых команд:
Далее будут команды терминала Linux, которые принимают только литеральные аргументы.
Большинство команд получают входные данные, например, из stdin (канала) и файла:
tr ‘N’ ‘n’ states.txt #работать не будет
Xargs: когда канала недостаточно
Некоторые команды не считываются из стандартного входа, канала или файла. Им, как правило, требуются аргументы. Кроме того, некоторые системы ограничивают количество аргументов в командной строке.
Итак, команда xargs решает сразу обе проблемы: преобразует стандартный поток ввода команды в литеральные аргументы и разбивает args на допустимое число, многократно запуская команду.
Например, можно попробовать создать файлы с именами в somelist.txt:
Параллельность в GNU
Необходимо учитывать, что, возможно, потребуется специальная установка, так как по умолчанию это недоступно.
Примеры параллельного выполнения в GNU:
Для того, чтобы найти все html-файлы и переместить их в каталог:
Для того, чтобы удалить файл pict0000.jpg и заменить его на pict9999.jpg (здесь подразумевается одновременное выполнение 16 параллельных заданий):
Создание миниатюр для всех файлов изображений (требуется программное обеспечение imagemagick):
Загрузка из списка URL-адресов и отчёт о неудачных загрузках:
cat urlfile | parallel «wget <> 2>errors.txt»
Для дополнительной информации можно ознакомиться с книгой GNU parallel 2018.
Классические инструменты для программирования: find, grep, awk, sed
Особенности find
Примеры команд для поиска:
Grep: поиск шаблонов в тексте
Grep изначально представлял собой команду global regular expression print или «g/re/p» в текстовом редакторе ed. Данная функция оказалась настолько полезной, что была разработана отдельная утилита под названием grep.
Grep позволяет извлекать строки из текста, который соответствует определённому шаблону. Также можно находить строки с определённым рисунком в большом объёме текста. Сюда относится:
Анатомия командной строки с использованием grep
Полезные опции grep:
Регулярные выражения в терминале Linux
Регулярные выражения (regex) — это язык описания шаблона строк.
Класс символов: один из элементов в квадратных скобках [ ] будет совпадать, при этом допускаются последовательности:
[Cc]at — соотносится с Cat и cat.
[f-h]ate — соотносится с fate, gate, hate.
Символ « ^ » внутри класса символов означает отрицание, например:
b[^eo]at будет соответствовать brat, но не boat или beat.
[hc]+at будет соответствовать hat, cat, hhat, chat, cchhat и т. д.
« | » является разделителем для нескольких шаблонов, а « ( » и « ) » позволяют группировать шаблоны, например:
([cC]at)|([dD]og) будет соответствовать cat, Cat, dog и Dog.
« <> » может использоваться для указания диапазона повторения, например:
ba<2,4>t будет соответствовать baat, baaat и baaaat, но не bat.
Примеры grep
Строки, которые заканчиваются двумя гласными:
grep ‘[aeiou][aeiou]$’ prose.txt
Проверка 5 строк до и после строки, где встречается «little»:
Комментируйте команды и выполняйте поиск последних использованных в истории:
history | grep ‘#success’
Удостоверьтесь, что вы правильно написали все команды в терминале Linux и избежали возможных двусмысленностей:
find + grep — ещё одна очень полезная комбинация вам на заметку.
awk: извлечение и использование данных
awk — это специальный программируемый фильтр, который считывает и обрабатывает входные данные строку за строкой. Он располагает широким спектром встроенных функций:
Этот фильтр также позволяет работать с переменными, циклы, условными обозначениями, массивами ассоциативных элементов, пользовательскими функциями.
Анатомия awk
В большинстве случае используется в качестве однострочной идиомы следующего вида:
awk ‘awk_prog’ file.txt
command | awk ‘awk_prog’
В команде нужно указывать хотя бы один из вышеперечисленных разделов.
Шаблоны, условия и действия
Шаблон — это регулярное выражение, которое соответствует (или не соответствует) входной строке, например:
Условие — это булевое выражение, которое выбирает входные строки, например:
$3>1 — строки, для которых третье поле больше, чем 1
Действие — это последовательность операций, например:
При этом пользовательские функции могут быть определены и указаны в любом блоке действий.
Полезные однострочные awk-команды терминала Linux
sed: синтаксический анализ и преобразование текста
sed — это специальный потоковый редактор, который ищет шаблон в тексте и применяет к нему необходимые изменения.
Данный редактор может быть в том числе пакетным или неинтерактивным редактором. Его функции заключаются в том, что он считывает из файла или из stdin (при наличии каналов) по одной строке за раз. При этом исходный входной файл остается неизменным (так как sed также является фильтром), после чего результаты преобразуются в стандартные выходные данные.
Анатомия типичной sed-команды Linux-терминала
Полезные примеры sed:
В следующей части разберём основные инструменты терминала Linux.
Ксения Широкова
Перевод материала «Linux Terminal Tools»