Команды для терминала linux

Обновлено: 04.07.2024

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

  1. sudo . Эта команда даст вам права суперпользователя. Введите sudo перед нужной командой (например, sudo apt upgrade ), чтобы выполнить её от имени администратора. Система спросит у вас пароль.
  2. sudo su . После этой команды все введённые вами команды будут исполняться от имени суперпользователя, пока вы не закроете терминал. Используйте её, если вам нужно выполнить много команд с правами администратора.
  3. sudo gksudo . Команда для запуска с правами администратора приложения с графическим интерфейсом. Например, если вы хотите переместить или изменить системные файлы, введите sudo gksudo nautilus (укажите тот файловый менеджер, которым пользуетесь).
  4. sudo !! . Эта команда запустит ранее введённую команду с правами администратора. Полезно, если вы набрали команду без sudo .

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

Команды Linux для управления пакетным менеджером

Установку и удаление приложений в Linux выполняют пакетные менеджеры. В Ubuntu и Debian пакетный менеджер называется apt, в Fedora — dnf, в Arch и Manjaro — pacman. Они загружают приложения из сетевых репозитариев, источников пакетов. Давать им команды следует с правами суперпользователя.

apt (Debian/Ubuntu/Mint)

  1. sudo apt install имя_пакета . Установить нужный пакет.
  2. sudo apt-add-repository адрес_репозитария . Добавить сторонний репозитарий.
  3. sudo apt update . Обновить сведения о пакетах.
  4. sudo apt upgrade . Обновить все пакеты до самых свежих (выполнять после apt update ).
  5. sudo apt remove имя_пакета . Удалить ненужный пакет.
  6. sudo apt purge имя_пакета . Удалить ненужный пакет со всеми зависимостями, если хотите освободить больше места.
  7. sudo apt autoremove . Удалить все ненужные зависимости, бесхозные пакеты и прочий мусор.

dnf (Red Hat/Fedora/CentOS)

  1. sudo dnf install имя_пакета . Установить нужный пакет.
  2. sudo dnf config-manager --add-repo адрес_репозитария . Добавить сторонний репозитарий.
  3. sudo dnf upgrade . Обновить все пакеты до самых свежих.
  4. sudo dnf remove имя_пакета . Удалить ненужный пакет.
  5. sudo dnf autoremove . Удалить все ненужные зависимости.

pacman (Arch/Manjaro)

  1. sudo pacman -S имя_пакета . Установить нужный пакет.
  2. sudo yaourt -S имя_пакета . Установить пакет из AUR, если его нет в основном репозитарии.
  3. sudo pacman -Sy . Обновить сведения о пакетах.
  4. sudo pacman -Syu . Обновить все пакеты до самых свежих.
  5. sudo pacman -R имя_пакета . Удалить ненужный пакет.
  6. sudo pacman -Rs имя_пакета . Удалить ненужный пакет со всеми зависимостями.

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

sudo apt install firefox clementine vlc

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

Команды Linux для управления процессами

  1. kill . Эта команда служит для принудительного завершения процессов. Нужно ввести kill PID_процесса . PID процесса можно узнать, введя top .
  2. xkill . Ещё одна команда для завершения процессов. Введите её, затем щёлкните по тому окну, которое нужно закрыть.
  3. killall . Убивает процессы c определённым именем. К примеру, killall firefox .
  4. top . Отображает перечень запущенных процессов, сортируя в зависимости от потребления ресурсов CPU. Своего рода терминальный «Системный монитор».

Команды Linux для управления файлами

Просмотр и изменение файлов

  1. cat . Когда команда используется с одним текстовым файлом (вот так: cat путь_к_файлу ), она отображает его содержимое в окне терминала. Если указать два и больше файлов, cat путь_к_файлу_1 путь_к_файлу_2 , она склеит их. Если ввести cat путь_к_файлу_1 > новый_файл , она объединит содержимое указанных файлов в новый файл.
  2. chmod . Позволяет изменять права доступа к файлу. Может пригодиться, если вы хотите внести изменения в системный файл.
  3. chown . Изменяет владельца файла. Следует выполнять с правами суперпользователя.
  4. file . Выводит информацию об указанном файле.
  5. nano . Открывает простой текстовый редактор. Можно создать новый текстовый файл или открыть существующий: nano путь_к_файлу .
  6. rename . Переименовывает файл или несколько файлов. Команду можно использовать и для массового переименования файлов по маске.
  7. touch . Изменяет дату последнего открытия или модификации указанного файла.
  8. wget . Загружает файлы из интернета в терминальную папку.
  9. zip . Распаковывает и сжимает архивы.

Создание и удаление файлов и папок

  1. mkdir . Создаёт новую папку в текущей терминальной папке или в указанной папке: mkdir путь_к_папке .
  2. rmdir . Удаляет указанную папку.
  3. rm . Удаляет файлы. Может удалить как отдельный файл, так и группу, соответствующую определённым признакам.

Копирование и перемещение файлов

  1. cp . Создаёт копию указанного файла в папке терминала: cp путь_к_файлу . Или вы можете указать назначение cp путь_к_файлу путь_для_копии .
  2. mv . Перемещает файл из одной папки в другую. Вы можете указать имя для перемещаемого файла. Забавно, но в Linux эта команда может использоваться и для переименования файлов. Просто укажите ту же папку, где находится файл, и другое имя.

Поиск файлов

  1. find . Поиск файлов по определённым критериям, таким как имя, тип, размер, владелец, дата создания и модификации.
  2. grep . Поиск текстовых файлов, содержащих определённые строки. Критерии очень гибко настраиваются.
  3. locate . Поиск файлов и папок, чьи названия подходят запросу, и отображение их путей в файловой системе.

Команды Linux для работы с разделами

  1. lsblk . Эта команда демонстрирует, какие диски есть в вашей системе и на какие разделы они поделены. Также команда отображает имена ваших разделов и накопителей, в формате sda1, sda2 и так далее.
  2. mount . Монтирует накопители, устройства или файловые системы Linux, чтобы вы могли с ними работать. Обычно устройства подключаются автоматически, как только вы щёлкнете по ним в файловом менеджере. Но иногда может понадобиться примонтировать что-то вручную. Вы можете подключать что угодно: диски, внешние накопители, разделы и даже ISO-образы. Эту команду нужно выполнять с правами суперпользователя. Чтобы примонтировать имеющийся диск или раздел, введите mount sdX .
  3. umount . Демонтирует файловые системы. Команда umount sdX отключит файловую систему внешнего носителя, чтобы вы могли извлечь его.
  4. dd . Эта команда копирует и преобразовывает файлы и разделы. У неё множество различных применений. Например, dd if=/dev/sda of=/dev/sdb сделает точную копию раздела sda на разделе sdb. dd if=/dev/zero of=/dev/sdX затрёт содержимое указанного носителя нулями, чтобы информацию было невозможно восстановить. А dd if=

Команды Linux для управления системой

  1. df . Отображает объём вашего диска, и сколько на нём осталось свободного места.
  2. free . Отображает объём доступной и занятой оперативной памяти.
  3. uname . Отображает сведения о системе Если ввести uname , терминал сообщит только Linux. Но команда uname -a выводит сведения об имени компьютера и версии ядра.
  4. uptime . Сообщает, как долго запущена ваша система.
  5. whereis . Отображает расположение исполняемого файла нужной программы.
  6. whoami . Называет имя пользователя.

Команды Linux для управления пользователями

  1. useradd . Регистрирует нового пользователя. Введите useradd имя_пользователя , и пользователь будет создан.
  2. userdel . Удаляет учётную запись и файлы пользователя.
  3. usermod . Изменяет учётную запись пользователя. Может переместить домашнюю папку пользователя или назначить дату, когда учётная запись будет заблокирована.
  4. passwd . Изменяет пароли учётных записей. Обычный пользователь может изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой учётной записи.

Команды Linux для управления сетью

  1. ip . Многофункциональная команда для работы с сетью. Команда ip address show выводит сведения о сетевых адресах, ip route управляет маршрутизацией и так далее. Давая команды ip link set ethX up , ip link set ethX down , можно включать и выключать соединения. У команды ip много применений, так что перед её использованием лучше ознакомиться с руководством или ввести ip --help
  2. ping . Показывает, подключены ли вы к сети, и помогает определить качество связи.

И ещё кое-что

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

  1. cowsay что_угодно . Корова произнесёт то, что вы ей скажете.
  2. fortune | cowsay . Корова выдаст умную (или не очень) мысль или цитату.
  3. cowsay -l . Выводит список всех животных, которые могут быть отображены в терминале. Если вы вдруг не любите коров.
  4. fortune | cowsay -f животное_из_списка . Животное на ваш выбор начинает сыпать цитатами, иногда уместными.
  5. sudo apt-get install fortunes fortune-mod fortunes-min fortunes-ru . Заставит весь зоопарк говорить по-русски. Без этого животные цитируют Твена и Уайльда в оригинале.

Это далеко не все команды Linux. Если вам нужно узнать в деталях параметры и способы применения команд Linux, вы можете воспользоваться встроенным руководством. Наберите man ваша_команда или ваша_команда --help .

Справочник основных команд Linux

Одним из коренных отличий семейства ОС Linux от ОС Windows является ведущая роль командной строки или терминала в администрировании системы. Для успешной работы с «Линукс» одного графического интерфейса недостаточно. Полноценное управление тут возможно только через терминал. А в работе с терминалом никак не обойтись без изучения основных команд Linux.

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

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

Справочная информация / документация

(Manual). Показывает инструкцию к программам и командам Linux. Чтобы получить руководство для программы, наберите:

Для инструкции по команде, введите:

whatis

Выводит краткое описание программы. Пример:

whereis

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

Вся необходимая информация о команде будет доступна, если набрать:

whoami

Ctrl + R

Права суперпользователя

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

Способы получить права root в Linux

О втором варианте расскажем подробнее.

(Super User Do). Позволяет исполнять команды с правами суперпользователя. Перед переходом в режим root администратора система выполнит запрос пароля и логина root. Пример:

sudo su

sudo gksudo

Максимальную производительность приложений Linux зависит от правильного подбора платформы для ОС. Мощный виртуальный сервер от Eternalhost обеспечит интернет-ресурсу стабильную работу и пространство для развития.

Управления файлами и каталогами

(List). С помощью этой утилиты можно посмотреть, что содержится в папке. Без указания конкретного пути показывает текущий каталог. Если путь указан, то переход совершиться в конечный его каталог. Чтобы вывести каталог в виде списка с дополнительной поясняющей информацией введите:

Для показа скрытых файлов:

(Concatenate / Catenate). Команда двойного назначения. Показывает на экране что содержит файл или стандартный ввод. Также к «склеивает» несколько переданных подряд файлов в один. Если нужно посмотреть содержимое одного файла, вводим:

Если нужно узнать содержимое нескольких файлов подряд:

Для «склейки» файлов, вводим:

Чтобы задать нужное количество строк в показанном:

(Change Directory). Меняет текущий каталог, в котором работает терминал на указанный. Когда терминал запущен, он использует по умолчанию корневой каталог (root), вернуться в который можно, набрав:

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

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

Чтобы вернуться к предыдущей директории:

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

mkdir

(Make Directory). Создаёт новую директорию. Можно также создать полную структуру подкаталогов, если ввести сочетание:

(Copy). Утилита, позволяющая скопировать файл или каталог. Копирование файлов и каталогов. Чтобы копирование прошло рекурсивно, т. е. включало все поддиректории и файлы в них, надо добавить к команде:

А если надо дополнить рекурсивное копирование сохранением всех атрибутов, сведения о владельце и временный штамп, добавляем «архивную» опцию -a, чтобы получилось:

(Remove). Отвечает за удаление папок и файлов. Использовать оператор rm следует крайне осторожно. В Linux файлы удаляются не в корзину, откуда их можно восстановить, а стираются безвозвратно. Для рекурсивного удаления используйте сочетание:

(Link). Создаёт программные ссылки на файлы. По функционалу это похоже на ярлыки в Windows.

Типы ссылок Linux

  • символические ( -s ) – указание на адрес файла ил папки без метаданных;
  • твёрдые или жёсткие ( -P ) – содержат сведения о физическом адресе на диске, где хранится файл.
    Удалить ссылку в Linux можно при помощи атрибута –f .

chmod

(Change Mode). Изменяет разрешения доступа к файлу. Под доступом имеется в виду классическая триада: чтение r, изменение w и запуск x. Общий вид:

Популярные комбинации разрешений для команды chmod

chown

(Change Owner). Команда для смены владельца файла и его группы. Для смены владельца используем синтаксис:

Для смены группы файла:

Если надо поменять оба параметра:

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

chgrp

(Disk Free). Даёт полную информацию о свободном пространстве на диске. Анализ включает перечисление файловых систем смонтированных разделов, обзор занятого и свободного места на диске. Для более удобного вывода информации, лучше применять сочетание:

основные команды linux в терминале

Список команд в «Терминале» Linux

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

Управление файлами

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

  • ls – позволяет просматривать содержимое активного каталога. Имеет две опции: -l – выводит содержимое в виде списка с описанием, -a – показывает файлы, которые скрыты системой.

команда ls в терминале linux

команда file в терминале linux

Примечание: чтобы получить права суперпользователя (root-права), перед выполнением команды необходимо ввести «sudo su» (без кавычек).

команда find в терминале linux

Работа с текстом

    more – позволяет просматривать текст, не помещающейся в область рабочего поля. При отсутствии скроллинга терминала применяется более современная функция less.

команда more в терминале linux

команда wc в терминале linux

Управление процессами

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

    ps, pgrep – первая команда выводит всю информацию об активных процессах системы (функция «-е» выводит один определенный процесс), вторая выводит ID процесса после ввода его названия пользователем.

команда ps в терминале linux

Окружение пользователя

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

    date – выводит дату и время в различных форматах (12 ч, 24 ч), в зависимости от опции.

команда date в терминале linux

Управление пользователями

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

  • useradd, userdel, usermod – добавить, удалить, редактировать учетку пользователя, соответственно.
  • passwd – служит для смены пароля. Запуск от имени СуперПользователя (sudo su в начале команды) позволяет сбросить пароли всех учетных записей.

команда passwd в терминале linux

Просмотр документов

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

команда man в терминале linux

Управление сетью

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

команда ping в терминале linux

Заключение

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

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Возможно, вы уже знаете некоторые команды терминала Linux, умеете работать с файлами, каталогами и осуществлять редактирование, например: cd , ls , pwd , cat . Но в данном обзоре всё изложено как можно конкретнее, чтобы предусмотреть распространённые вопросы.

Основы в терминале Linux

Ниже представлена схема типичной команды в терминале ОС Linux:

Построение команды терминала Linux

Следующие команды позволят вам лучше узнать систему:

  • id — если вы хотите получить информацию касательно вашей учётной записи;
  • w — чтобы понимать, кто на данный момент находится в системе ( -f — для того, чтобы узнать, откуда был совершен вход);
  • lsblk — если вы хотите открыть список блочных устройств хранения данных;
  • lscpu — отображает информацию о процессорах;
  • lstopo — предоставляет доступ к топологии аппаратного ПО отображения информации (требуются пакеты hwloc , hwloc-gui );
  • free — показывает объём свободной и уже используемой памяти (используйте также free -g );
  • lsb_release -a — если вы хотите получить информацию о распределении данных;

Примечание Для PS0: используйте Ctrl+C, чтобы деактивировать неактуальные команды. Что касается PS1: некоторые команды могут быть недоступны. Чтобы проверить, какие именно, введите which <cmdname> .

Работа с процессами

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

Учитывайте особенности реализации программных потоков: POSIX, GNU и BSD, а также то, что они отличаются в работе и применении. Вышеуказанные реализации отличаются различными опциями: POSIX (-), GNU (–), BSD (без тире).

Индикаторы процесса в данной системе: top , htop , atop .

Sportmaster Lab , Санкт-Петербург , От 170 000 до 250 000 ₽

Понижайте приоритет процесса, используя nice . Например, следующим образом:

nice -n 19 tar cvzf archive.tgz large_dir

Чтобы аннулировать процесс, введите kill <pid> . Данная команда используется для завершения процессов-зомби или прекращения зависших сеансов.

Далее идут команды терминала Linux, которые спасут положение в затруднительных ситуациях:

Работа с файлами

Следующие команды потребуются вам при работе с файлами разного типа и объёма:

  • cat — для относительно коротких файлов:
    cat states.txt ;
  • less — считывает текст не полностью, а небольшими фрагментами:
    less /etc/ntp.conf ;
  • more — для длинных файлов;
  • tail -f — используется для просмотра растущего файла в окне интерактивного запуска кода.

Что вы можете сделать с двоичными файлами? На самом деле, вариантов не очень много:

  • strings — команда выведет готовые к печати строки файла;
  • od — позволит вам напечатать файл в восьмеричном формате;
  • cmp — даёт возможность побайтно сравнивать файлы.

Если вам требуется сравнить текстовые файлы друг с другом, введите следующие команды:

  • comm — отсортированные файлы будут строка за строкой;
  • diff — позволяет построчно выявить различия. Эта команда используется наиболее часто в силу богатого набора опций.

Интернет в командной строке

При работе в терминале Linux с интернет-ресурсами применяйте следующие команды:

Горячие клавиши

Навигация

Навигация в терминале Linux

Ctrl+] <char> перемещает курсор на первое вхождение <char> вправо.

Ctrl+alt+] <char> перемещает курсор на первое вхождение <char> влево.

Удаление

Удаление в терминале Linux

Используйте Ctrl+Y, чтобы вставить обратно удалённые файлы.

Дополнительно

Подстановочные символы

Далее приведены подстановочные символы, которые расширяют объём команды терминала Linux во время её выполнения:

  • * позволяет расширить команду до любого количества символов:
    ls -lh /etc/*.conf — все элементы с расширением .conf;
  • ? позволяет расширить команду до одного символа:
    ls -ld ? ?? . — сюда относятся элементы, длина которых составляет 1, 2 или 3 символа;
  • ! — отрицание:
    ls -ld [!0-9]* — элементы, которые не начинаются с числовых значений;
  • Экранирование и цитирование с целью предотвращения расширения:
    • \ для экранирования подстановочного знака;
    • ' для цитирования подстановочного знака.

    Хитрости, которые сэкономят время

    Этот список полезных знаков позволит вам в разы ускорить работу с командами:

    • !! — повторяет последнюю команду;
    • !$ — позволяет изменить команду, сохраняя последний аргумент:
      • cat states.txt — используется, если файл слишком длинный, чтобы поместиться на экране;
      • less !$ — используется для повторного открытия в меньшем объёме;
      • head states.txt | grep '^Al' — при использовании должен быть хвост;
      • tail !* — нет необходимости вводить остальную часть команды;

      Потоки ввода-вывода терминала и переадресация

      В терминале Linux работа осуществляется через три потока ввода-вывода: вход ( stdin ), выход ( stdout ) и ошибка ( stderr ).

      Данные потоки представлены файловыми дескрипторами. Их также принято считать идентификаторами: 0 для stdin , 1 для stdout , 2 для stderr .

      Использование угловых скобок применяется для перенаправления (переадресации) команд и файлов в них и из них:

      • > для отправления в поток;
      • < для получения из потока;
      • >> для добавления в поток;
      • << для непосредственного присоединения потока (используется в «heredoc»);
      • <<< используется в «herestring» (на сегодняшний день не особо распространенная команда);
      • & используется для записи в поток, например &1 для записи в stdout .

      Анатомия командной строки переадресации с использованием потоков

      Анатомия командной строки переадресации с использованием потоков

      Дополнительные примеры переадресации приведены ниже:

      Каналы

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

      • find .| less — позволяет прокручивать длинный список файлов постранично;
      • head prose.txt | grep -i 'little' echo $PATH | tr ':' '\n' — переводит на новую строку;
      • history | tail — отображает последние 10 команд;
      • free -m|grep Mem:|awk '' — отображает доступную память;
      • du -s *|sort -n|tail — отображает 10 наиболее больших файлов/каталогов в pwd.

      Расшифровка и отладка команд каналов

      Приведённая выше команда эквивалентна выполнению следующих 4 команд:

      • free -m > tmp1.txt
      • grep Mem: tmp1.txt > tmp2.txt
      • awk '' tmp2.txt
      • rm tmp1.txt tmp2.txt

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

      Ниже приведено ещё несколько примеров каналов:

      Чтобы получить доступ к pdf-файлам страниц справочника man :

      man -t diff | ps2pdf - diffhelp.pdf

      Чтобы получить актуальные на сегодняшний день файлы:

      ls -al --time-style=+%D | grep `date +%D`

      Топ-10 самых часто используемых команд:

      Далее будут команды терминала Linux, которые принимают только литеральные аргументы.

      Большинство команд получают входные данные, например, из stdin (канала) и файла:

      Однако, существуют определённые исключения. Например, некоторые команды получают входные данные только из stdin , а не из файла:

      Некоторые команды не получают входные данные ни из stdin , ни из файла. Например, следующие:

      • echo < states.txt — не подходит. Предполагается, что вы собираетесь распечатать содержимое файла;
      • echo states.txt — не подходит. Предполагается, что вы собираетесь распечатать содержимое файла;
      • echo «Привет, как дела?» — принимает литеральные аргументы.

      cp , touch , rm , chmod относятся к другим примерам.

      Xargs: когда канала недостаточно

      Некоторые команды не считываются из стандартного входа, канала или файла. Им, как правило, требуются аргументы. Кроме того, некоторые системы ограничивают количество аргументов в командной строке.

      Например команда rm tmpdir/*.log завершится ошибкой, если файлов .log будет слишком много.

      Итак, команда xargs решает сразу обе проблемы: преобразует стандартный поток ввода команды в литеральные аргументы и разбивает args на допустимое число, многократно запуская команду.

      Например, можно попробовать создать файлы с именами в somelist.txt:

      xargs touch < somelist.txt

      Параллельность в GNU

      В данном случае речь идёт о параллельном выполнении задач из командной строки. В некотором смысле похожее на xargs . Что по итогу это даёт?

      • Позволяет обрабатывать параметры как независимые аргументы команды и выполнять параллельно команду.
      • Осуществляет синхронизированный вывод — как если бы команды в Linux-терминале выполнялись последовательно.
      • Обеспечивает настраиваемое количество параллельных заданий.
      • Хорошо подходит для выполнения простых команд или скриптов на вычислительных узлах для использования многоядерной архитектуры.

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

      Примеры параллельного выполнения в GNU:

      Для того, чтобы найти все html-файлы и переместить их в каталог:

      find . -имя '*.html' | parallel mv <> web/

      Для того, чтобы удалить файл pict0000.jpg и заменить его на pict9999.jpg (здесь подразумевается одновременное выполнение 16 параллельных заданий):

      seq -w 0 9999 | parallel -j 16 rm pict<>.jpg

      Создание миниатюр для всех файлов изображений (требуется программное обеспечение imagemagick):

      ls *.jpg | parallel convert -geometry 120 <> thumb_<>

      Загрузка из списка URL-адресов и отчёт о неудачных загрузках:

      cat urlfile | parallel "wget <> 2>errors.txt"

      Для дополнительной информации можно ознакомиться с книгой GNU parallel 2018.

      Классические инструменты для программирования: find, grep, awk, sed

      Особенности find

      Особенности find в терминале Linux

      Путь: может иметь несколько вариантов, например .find /usr /opt -iname "*.so" .

      • -name, -iname, -type (f, d, l), -inum <Н> ;
      • -user<uname>, -group<gname>, -perm (ugo+/-rwx) ;
      • -size +x[c], -empty, -newer <fname> ;
      • -atime +x, -amin +x, -mmin -x, -mtime -x ;
      • критерии могут быть объединены с логическими и (- а) и или (-о) .
      • -print — действие по умолчанию — отображать;
      • -ls — выполните команду ls -lids для каждого результирующего файла;
      • -exec cmd — выполнить команду;
      • -ok cmd — используется как exec , за исключением того, что команда выполняется после подтверждения пользователем.

      Примеры команд для поиска:

      • find . -type f -iname "*.txt" — xt-файлы в curdir ;
      • find . -maxdepth 1 — эквивалент ls ;
      • find ./somedir -type f -size +512M -print — все файлы размером более 512M в ./somedir ;
      • find /usr/bin ! -type l — не символьная ссылка в /usr/bin ;
      • find $HOME -type f -atime +365 -exec rm <> + — позволяет удалить все файлы, которые не были доступны в течение года;
      • find . \( -name "*.c" -o -name "*.h" \) — все файлы, имеющие расширение .c или .h.

      Grep: поиск шаблонов в тексте

      Grep изначально представлял собой команду global regular expression print или «g/re/p» в текстовом редакторе ed. Данная функция оказалась настолько полезной, что была разработана отдельная утилита под названием grep.

      Grep позволяет извлекать строки из текста, который соответствует определённому шаблону. Также можно находить строки с определённым рисунком в большом объёме текста. Сюда относится:

      • поиск в списке процессов;
      • выборочная проверка большого количества файлов на наличие паттерна;
      • исключение некоторого фрагмента текста из большого текстового объёма.

      Анатомия командной строки с использованием grep

      Анатомия командной строки с использованием grep

      Полезные опции grep:

      • -i : игнорировать случай;
      • -n : отображение номеров строк вместе со строками;
      • -v : инвертированный вывод. Отберутся те строки, которые не совпадают с регулярным выражением;
      • -c : печать конкретного количества совпадающих строк;
      • -A<n> : включение n-строк после совпадения;
      • -B<n> : включение n-строк перед совпадением;
      • -o : печать только совпадающего выражения (а не всей строки);
      • -E : позволяет использовать «расширенные» регулярные выражения.

      Регулярные выражения в терминале Linux

      Регулярные выражения (regex) — это язык описания шаблона строк.

      Точка « . » является специальным символом, который будет соответствовать любому символу (кроме новой строки). Например, b.t будет соответствовать bat, bbt, b%t и так далее, но при этом сюда не подойдут bt, xbt.

      Класс символов: один из элементов в квадратных скобках [ ] будет совпадать, при этом допускаются последовательности:

      [Cc]at — соотносится с Cat и cat.
      [f-h]ate — соотносится с fate, gate, hate.

      Символ « ^ » внутри класса символов означает отрицание, например:

      b[^eo]at будет соответствовать brat, но не boat или beat.

      Расширенные выражения запускаются с помощью egrep или grep -E , при этом:

      « * » соответствует нулю или более, « + » соответствует одному или более, « ? » соответствует нулю или разовому появлению предыдущего символа, например:

      [hc]+at будет соответствовать hat, cat, hhat, chat, cchhat и т. д.

      « | » является разделителем для нескольких шаблонов, а « ( » и « ) » позволяют группировать шаблоны, например:

      ([cC]at)|([dD]og) будет соответствовать cat, Cat, dog и Dog.

      « <> » может использоваться для указания диапазона повторения, например:

      bat будет соответствовать baat, baaat и baaaat, но не bat.

      Примеры grep

      Строки, которые заканчиваются двумя гласными:

      grep '[aeiou][aeiou]$' prose.txt

      Проверка 5 строк до и после строки, где встречается «little»:

      grep -A5 -B5 'little' prose.txt

      Комментируйте команды и выполняйте поиск последних использованных в истории:

      Удостоверьтесь, что вы правильно написали все команды в терминале Linux и избежали возможных двусмысленностей:

      grep -E '^ambig(uou|ou|ouo)s$' /usr/share/dict/linux.words

      find + grep — ещё одна очень полезная комбинация вам на заметку.

      find . -iname "*.py" -exec grep 'add[_-]item' <> +

      awk: извлечение и использование данных

      awk — это специальный программируемый фильтр, который считывает и обрабатывает входные данные строку за строкой. Он располагает широким спектром встроенных функций:

      • явные поля ( $1 . $NF ) и управление записями;
      • функции (математические, построчная обработка и т. д.);
      • синтаксический анализ и фильтрация регулярных выражений.

      Этот фильтр также позволяет работать с переменными, циклы, условными обозначениями, массивами ассоциативных элементов, пользовательскими функциями.

      Анатомия awk

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

      awk ‘awk_prog’ file.txt

      command | awk ‘awk_prog’

      Где awk_prog это:

      • BEGIN — выполнить определённое действие один раз перед чтением и обработкой входных данных;
      • шаблон или условие — выполнить действие для каждой строки входных файлов и/или stdin , которые удовлетворяют шаблону или условию;
      • END — выполнить определённое действие один раз после прочтения и обработки входных данных.

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

      Шаблоны, условия и действия

      Шаблон — это регулярное выражение, которое соответствует (или не соответствует) входной строке, например:

      • /New/ — любая строка, содержащая New;
      • /^1+ / — строка, начинающаяся с цифр;
      • /(POST|PUT|DELETE)/ — строка, которая содержит определённые слова;

      Условие — это булевое выражение, которое выбирает входные строки, например:

      $3>1 — строки, для которых третье поле больше, чем 1

      Действие — это последовательность операций, например:

      • — печать первого и последнего поля/столбца;
      • — получить журнал второго поля/столбца;
      • > — получить суммарное значение.

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

      Полезные однострочные awk-команды терминала Linux

      sed: синтаксический анализ и преобразование текста

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

      Данный редактор может быть в том числе пакетным или неинтерактивным редактором. Его функции заключаются в том, что он считывает из файла или из stdin (при наличии каналов) по одной строке за раз. При этом исходный входной файл остается неизменным (так как sed также является фильтром), после чего результаты преобразуются в стандартные выходные данные.

      Читайте также: