Не самые распространенные, но полезные команды Linux

0
474
views

На основе статьи “9 really odd Linux commands” и обсуждений на Quora.

Основные команды Linux, необходимые для «выживания», встречаются в статьях довольно часто. Сюда относятся создание (копирование, перемещение) файлов и директорий, поиск по файловой системе, установка прав доступа к файлам (это уже реже). Также есть статьи о странных командах, запускаемых, главным образом, ради развлечения. А вот команды полезные, но выходящие за пределы базовых, встречаются в статьях нечасто. Автор блога hexx.in.ua решила найти упоминания таких команд в англоязычных статьях и скомпилировать в один пост.


shuf

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

Команда shuf — сокращение от «shuffle» («смешивать», «перемешивать») — реорганизовывает строки файла псевдорандомным образом. Например, можно «скормить» команде список коллег и определить очередность, с которой они должны приносить в офис печенье.

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

Также можно задавать диапазон чисел, которые хотите рандомизировать. Для этого используется опция -i.

shuf linux command

rev

При помощи команды rev можно развернуть строки, переданные в качестве аргумента.

rev linux command

tac

Команда tac это будто оборотная сторона команды cat. Она, как и cat, объединяет файлы, но строки этих файлов размещаются в обратном порядке.

Также может выводить содержимое файла, причем начиная с последней строки.

look

Команда look может понадобиться, если вам нужно найти в файле строки, начинающиеся с определенного слова. Если не передать команде файл в качестве аргумента, будет использоваться системный файл /usr/share/dict/words.

look linux command

yes

Выводит заданную строку (или букву “y”) в бесконечном цикле. Кажется, что в этом нет никакого смысла, но команда имеет практическое применение, в частности, в конвейерах, для подтверждения действий.

yes linux command

Пример использования приводит Билл Томпсон на сайте Quora:

«Скажем, у вас в директории есть пара сотен файлов, которые вы хотите удалить (интерактивно). Вы вводите команду “rm -i *”. Операционная система будет вас переспрашивать по каждому файлу: “rm: remove regular file ‘filename’?” Для ответа вы должны будете вводить “y”. Можно проделать это 200 раз, а можно использовать конвейер:

yes | rm -i *

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

factor

factor command

Команда factor предназначена для разложения чисел на простые множители.

mmv

Команда mmv предназначена для копирования, перемещения (переименования), создания ссылок на несколько файлов одновременно. Для всего этого используются специальные символы. Что именно можно сделать при помощи этой команды?

Например, можно изменить расширение всех файлов в директории:

mmv '*.jpeg' '#1.jpg'

Можно удалить третью (например) букву из имени каждого файла:

mmv "???*" "#1#2#4"

Можно поменять местами части расширения файлов, заменив .html.en, .html.de на .en.html, .de.html:

 mmv '*.html.??' '#1.#2#3.html'

С опцией -c команда будет не переименовывать, а копировать файлы.

mmv

comm

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

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

Команда особенно полезна для сравнения списков. Например, списков пользователей двух разных систем. Главное — не забыть сначала отсортировать эти списки.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here