как работать в терминале linux
Справочник 70 основных команд Linux: полное описание с примерами
Содержание:
Одним из коренных отличий семейства ОС Linux от ОС Windows является ведущая роль командной строки или терминала в администрировании системы. Для успешной работы с «Линукс» одного графического интерфейса недостаточно. Полноценное управление тут возможно только через терминал. А в работе с терминалом никак не обойтись без изучения основных команд Linux.
В Linux насчитывается несколько сотен основных команд и их модификаций. Они группируются по нескольким категориям. По расположению — могут быть утилитами командной строки или встроенной функцией командной оболочки. По частоте применения – используемыми постоянно, эпизодически и редко. По типам действий – от получения справки до управления файлами и процессами. Именно третья, функциональная составляющая и станет основой группировки утилит в этой статье.
В обзоре собраны все важнейшие команды Linux, которые могут пригодиться для администрирования ОС Linux. Статья рассчитана как на новичков, так и на продвинутых пользователей, уже знакомых с основным функционалом терминала. Эту своеобразную шпаргалку можно смело добавлять в закладки всем, кто хочет извлечь из «Линукс» максимум полезных свойств и повысить свою продуктивность в несколько раз.
Справочная информация / документация
(Manual). Показывает инструкцию к программам и командам Linux. Чтобы получить руководство для программы, наберите:
Для инструкции по команде, введите:
whatis
Выводит краткое описание программы. Пример:
whereis
Показывает полный путь к исполняемому файлу и другим файлам программы. Пример:
Также даёт информацию о связанной с программой справочной информации.
Показывает к какому типу относится файл. Особенность Linux в том, что рабочие файлы могут и не иметь расширения. Поэтому у пользователя могут возникнуть проблемы с идентификацией файлов, которые снимает эта команда.
Вся необходимая информация о команде будет доступна, если набрать:
whoami
Команда показывает действительный идентификатор пользователя (UID).
Показывает варианты автозавершения команды. Нажатие клавиши табуляция после определённой команды или их последовательности выводит подсказку с вариантами возможного продолжения команды.
Ctrl + R
Права суперпользователя
Большое число базовых команд Linux, например, установка программ или создание файлов в корневой системе, требуют для исполнения права пользователя root или суперпользователя. Применение данного режима несёт серьёзные изменения для операционной системы, поэтому нужно точно понимать, как сработает запущенная команда.
Способы получить права root в Linux
О втором варианте расскажем подробнее.
(Super User Do). Позволяет исполнять команды с правами суперпользователя. Перед переходом в режим root администратора система выполнит запрос пароля и логина root. Пример:
sudo su
Инструмент применяется, когда нужно запустить несколько «суперпользовательских» команд. Все следующие вводимые команды будут запускаться в режиме суперпользователя до закрытия командной строки.
sudo gksudo
Команда применяется, если нужно перезапустить с правами root уже отданную (от имени обычного пользователя) команду.
Максимальную производительность приложений Linux зависит от правильного подбора платформы для ОС. Мощный виртуальный сервер от Eternalhost обеспечит интернет-ресурсу стабильную работу и пространство для развития.
Управления файлами и каталогами
(List). С помощью этой утилиты можно посмотреть, что содержится в папке. Без указания конкретного пути показывает текущий каталог. Если путь указан, то переход совершиться в конечный его каталог. Чтобы вывести каталог в виде списка с дополнительной поясняющей информацией введите:
Для показа скрытых файлов:
(Concatenate / Catenate). Команда двойного назначения. Показывает на экране что содержит файл или стандартный ввод. Также к «склеивает» несколько переданных подряд файлов в один. Если нужно посмотреть содержимое одного файла, вводим:
Если нужно узнать содержимое нескольких файлов подряд:
Для «склейки» файлов, вводим:
Чтобы задать нужное количество строк в показанном:
(Change Directory). Меняет текущий каталог, в котором работает терминал на указанный. Когда терминал запущен, он использует по умолчанию корневой каталог (root), вернуться в который можно, набрав:
Чтобы указать другую папку для работы с файлами, нужно ввести:
Чтобы подняться по древу каталогов на уровень вверх набираем:
Чтобы вернуться к предыдущей директории:
Двойной амперсанд – не полноценная команда, а управляющий оператор. Он предназначен для выполнения последовательного ряда команд. Чтобы терминал выполнил команды одну за другой, нужно разделить их следующим образом:
Число команд в такой последовательности не ограничено.
mkdir
(Make Directory). Создаёт новую директорию. Можно также создать полную структуру подкаталогов, если ввести сочетание:
(Copy). Утилита, позволяющая скопировать файл или каталог. Копирование файлов и каталогов. Чтобы копирование прошло рекурсивно, т. е. включало все поддиректории и файлы в них, надо добавить к команде:
(Move). Эта команда в Linux одновременно отвечает за перемещение и переименование файла или каталога. При переименовании файл перемещается в ту же папку, но уже названную по-новому.
(Remove). Отвечает за удаление папок и файлов. Использовать оператор rm следует крайне осторожно. В Linux файлы удаляются не в корзину, откуда их можно восстановить, а стираются безвозвратно. Для рекурсивного удаления используйте сочетание:
(Link). Создаёт программные ссылки на файлы. По функционалу это похоже на ярлыки в Windows.
Типы ссылок Linux
chmod
(Change Mode). Изменяет разрешения доступа к файлу. Под доступом имеется в виду классическая триада: чтение r, изменение w и запуск x. Общий вид:
При этом, «разрешения» могут быть указаны буквенным, символьным (rwx) или цифровым кодом. Кроме того, эта переменная может включать информацию о владельце ( u / g / o / a ) и операции с правами ( + / — / = ).
Популярные комбинации разрешений для команды chmod
Вид разрешения | Символьный код | Числовой код |
Нет допуска | — | 0 |
Чтение | r— | 4 |
Изменение | -w- | 2 |
Запуск | —x | 1 |
Запуск + Изменение | -wx | 3 |
Чтение + Запуск | r-x | 5 |
Чтение + Изменение | rw- | 6 |
Запуск + Изменение + Запуск | rwx | 7 |
chown
(Change Owner). Команда для смены владельца файла и его группы. Для смены владельца используем синтаксис:
Для смены группы файла:
Если надо поменять оба параметра:
Команду можно применить только с правами суперпользователя. Чтобы изменить владельца/группу рекурсивно добавляем:
chgrp
(Change Group). Меняет группу файла. В отличие от chown, эта команда позволяет менять группы, только тем, кто в ней состоит.
(Disk Free). Даёт полную информацию о свободном пространстве на диске. Анализ включает перечисление файловых систем смонтированных разделов, обзор занятого и свободного места на диске. Для более удобного вывода информации, лучше применять сочетание:
mount / umount
Команды Linux для монтажа и отключения любых файловых систем — от CD-диска и USB-флешки до ядер ОС. Тип файловой системы обычно определяется командой самостоятельно, путём чтения суперблока. Опция используется только с правами суперпользователя.
Навигация
Осуществляет поиск в файловой системе, файлах и папках. Для результатов поиска можно выполнять дополнительные команды.
Отображает на экране текущий каталог.
clear
Команда полной очистки окна терминала удаляет все ранее выведенные сообщения.
history
Показывает ранее введённые пользователем команды. Перемещаться по списку введённых команд можно, нажимая на клавиатуре «Вверх» и «Вниз».
locate
Быстрый поиск файлов по базе данных updatedb для шаблонов имён файлов. Эта БД работает со снимком файловой системы, что многократно ускоряет процесс поиска. Но тут есть и существенный минус. Точность поиска зависит от того, насколько актуальны данные о файловой системе в текущей версии снимка.
zcat / zless / zmore
Утилиты для просмотра сжатых файлов. С помощью zcat можно найти увидеть список сжатых файлов, zless выводит их списком постранично с возможностью листать вперёд и назад, а zmore — только вперёд.
Точка с запятой — ещё один оператор для последовательного запуска нескольких команд в одной строке. Если нужно, чтобы команды выполнялись параллельно, используйте оператор так:
Управление сетью
Команда проверяет наличие и качество интернет-подключения.
nethogs
Утилита мониторинга сетевой активности устройств в системе. Чтобы задать сетевой интерфейс, введите:
traceroute
Утилита отслеживания интернет-подключения, отслеживая маршруты следования пакетов данных в сетях TCP/IP. Более совершенный инструмент для отслеживания проблем с подключением к Сети, чем упомянутая выше команда ping. Запускается только с правами суперпользователя.
Работа с процессами
kill / xkill / pkill / killall
Ctrl +C
Данное сочетание клавиш — еще один быстрый способ завершить выполнение любого процесса в терминале Linux.
Ctrl +Z
ps / pgrep
(Process Status / Process-ID Global Regular Expressions Print). Команды находят по заданным параметрам и выводят информацию об активных процессах. Самый доступный способ найти идентификатор процесса (PID). Модификация pstree показывает весь список («древо») исполняемых процессов.
top / htop / atop
(Table of Processes). Три варианта команды, вызывающую консольную программу мониторинга активных процессов в системе. Информация отображается в виде таблицы со списком процессов в реальном времени. Рекомендуется использовать две последних модификации программы – в них больше возможностей и продвинутых функций.
crontab
Выполнение Cron (Command Run ON) — задач по расписанию в Linux.
Сделать время исполнения процесса ОС Linux минимальным поможет VPS сервер от Eternalhost! Универсальное решение по доступной цене!
Работа с архивами
gunzip
Управление пользователями
useradd / userdel / usermod
Команды управления учётными записями пользователей. Позволяют добавлять, удалять и редактировать пользовательские профили. Пример:
passwd
Позволяет менять пароли учётных записей. Обычный пользователь может поменять только пароль, связанный с его именем: passwd имя_пользователя.В режиме суперпользователя можно «вслепую» сбросить все пользовательские пароли в системе.
Работа с текстом
Ctrl + A / Ctrl + E
Клавиши быстрого перехода в начало ( А ) и конец ( E ) строки.
Ctrl + Shift + C / Ctrl + Shift + V
Это сочетание клавиш в Linux позволит быстро скопировать ( C ) и вставить ( V ) текст в терминале.
more / less
Две команды для облегчения просмотра больших текстов, не умещающихся на одном экране эмулятора терминала. Т.к. функционально команды одинаковы, но less — новее и поддерживает больше опций, рекомендуется использовать именно её.
head / tail
(Global Regular Expression and Print). Ищет текст по заданному шаблону. Это очень полезно, когда надо проанализировать работу команды, которая сопровождается большим объёмом текстовой информации. Шаблон может заполняться строкой или регулярным выражением. Пример:
(Word Count). Программа для подсчета заданных параметров в тексте. Считает такие показатели, как символы, слова, строки и байты.
(Difference). Производит построчное сравнение двух текстовых файлов, выводя различия между ними. Алгоритм работы:
Окружение пользователя
su / sudo
(Switch User / Substitute User & Do). Две команды для запуска процессов от имени другого пользователя без завершения текущего сеанса. При использовании su по умолчанию происходит переход на пользователя root. Команда sudo способна не только активировать режим суперпользователя (о чём упоминалось выше), но и выполнить команду от имени другого пользователя без реального переключения на него. Поэтому второй вариант считается более безопасным.
Команда Linux, сообщающая информацию о времени. Отдельными переменными можно задать удобный формат вывода и число отображаемых параметров, вплоть до миллисекунд.
alias
Команда для создания синонимов названий незаменяемых команд для их сокращения. Она изменяет длинное название на удобное пользователю короткое или аббревиатуру. Пример:
uname
Утилита, выводящая информацию об операционной системе. Без дополнительных параметров она выдаст только название ядра. Чтобы получить всю возможную системную информацию, введите:
uptime
Показывает аптайм – время непрерывной работы системы.
sleep
Задаёт таймер выключения системы.
Утилита автозаполнения поля согласия в команде или скрипте. Введите: yes название_команды и вам не придётся делать подтверждение вручную, когда этого потребует сценарий взаимодействия программы с пользователем.
Пакетные менеджеры
Пакетные менеджеры (ПМ) в Linux отвечают за установку, обновление и удаление приложений. Принцип их работы – загрузка программных пакетов из собственных сетевых репозитариев. Данные утилиты работают только с правами суперпользователя. Для различных дистрибутивов Linux существуют свои версии ПМ.
ПМ для Debian, Ubuntu и Mint. Чтобы установить приложение, введите:
Чтобы удалить приложение:
dnf / yum
Два самых распространённых ПМ для операционных систем Red Hat, Fedora и CentOS. Чтобы установить приложение, введите:
pacman
Пакетный менеджер дистрибутивов Arch и Manjaro. Чтобы установить приложение, введите:
Чтобы удалить приложение:
Заключение
Полный список команд для дистрибутивов Linux — материал скорее для объемной книги, чем для одной статьи. Однако, в данном обзоре мы постарались собрать самые важные из них. Эти команды будут гарантированно полезны как в повседневных задачах, так и для раскрытия продвинутых возможностей этой операционной системы.
У каждого пользователя Linux есть свой список must have команд. Наверняка и вам есть чем дополнить данный обзор? Делитесь своими любимыми командами Linux в комментариях!
Хотите, чтобы операционка работала как швейцарские часы? Надёжная и мощная платформа для развёртывания любых дистрибутивов Linux — VDS от Eternalhost!
Команды терминала Linux для начинающих. Часть первая
Авторизуйтесь
Команды терминала Linux для начинающих. Часть первая
Основы в терминале Linux
Ниже представлена схема типичной команды в терминале ОС Linux:
Следующие команды позволят вам лучше узнать систему:
Работа с процессами
Для начала создайте список процессов по имени, идентификационного номеру процесса и т. д. (обычно используемый признак состояния aux ).
Учитывайте особенности реализации программных потоков: POSIX, GNU и BSD, а также то, что они отличаются в работе и применении. Вышеуказанные реализации отличаются различными опциями: POSIX (-), GNU (–), BSD (без тире).
15–17 ноября, Онлайн, Беcплатно
Чтобы аннулировать процесс, введите 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»