Что означает в терминале
Linux-шпаргалка: команды терминала для новичков
Терминал и текстовые команды — главный способ управления операционной системой Linux, особенно, если речь идёт о сервере. И хоть слово «терминал» пугает новичков, поверьте, что всё гораздо проще. Сегодня мы подготовили для вас шпаргалку с базовыми командами — сохраняйте её в закладки и повышайте свою продуктивность в сотни раз. 😉
Начнём с теории
Linux (Линукс) — это целое семейство операционных систем Unix с открытым исходным кодом, основанных на ядре Linux. Сюда входят все самые популярные системы на основе ОС, например: Ubuntu, Fedora, Mint, Debian и другие. Их ещё называют дистрибутивами. Подробнее о каждом читайте в этом посте.
Терминал (или «Bash», сокращение от «Bourne-Again shell») — это программа, которая используется для взаимодействия с командной оболочкой. Терминал применяется для выполнения административных задач, например: установку пакетов, действия с файлами и управление пользователями.
Команда — это название программы, которое пользователь вводит в терминале для выполнения определённой задачи. Команды могут иметь дополнительные данные и параметры.
В ОС есть несколько сотен команд и их модификаций. Они группируются по нескольким категориям:
Типичная команда выглядит вот так:
Команды, которые позволят узнать больше о вашей системе
id — если вы хотите получить информацию о вашей учётной записи.
w — полезная команда, если вам нужно узнать, какой пользователь сейчас находится в системе (или команда -f — для того, чтобы узнать, откуда был совершён вход).
lsblk — если вы хотите открыть список блочных устройств хранения данных.
lscpu — отображает информацию о процессорах.
Команды для работы с файлами
Содержит в себе практически все мелкие утилиты и инструменты для взаимодействия с файлами и папками.
cd — change directory, что в переводе означает «сменить директорию». Из названия понятно, что с помощью этой команды можно перемещаться между папками. Вписываем её, а потом адрес: cd /user/test/dir/111. Есть сокращенные варианты: cd- для перемещения в предыдущую директорию или cd (без аргументов) для прыжка в домашнюю папку.
pwd — укажет полный путь до директории, в которой вы находитесь. Если вы перепрыгнули на рабочий стол с помощью cd
/Desktop/, то pwd покажет что-то в духе /home/Polzovatel/Desktop.
dd — мощная утилита для взаимодействия с разделами. С её помощью можно делать копии разделов, перемещать их, удалять без возможности восстановления.
rm — опасная команда для удаления директорий и их содержимого. Стирает все данные, которые обнаружит в указанной папке без возможности к восстановлению.
-r — рекурсивный поиск
-i — игнорировать регистр (Case insensetive)
-l — вывести результат списком.
chown пользователь:группа — команда позволяет изменить владельца файла.
chmod — изменяет права на файл или каталог
find — суперполезная команда. С её помощью можно искать файлы по определённым параметрам.
Следующие команды потребуются вам при работе с файлами разного типа и объёма:
cat — показывает содержимое файлов. Также может использоваться в двух вариантах: 1) одним текстовым файлом (cat путь_к_файлу), она отображает содержимое файла в окне терминала, 2) если же указать больше элементов, то команда склеит их (cat путь_к_файлу_1 путь_к_файлу_2).
touch — эта команда создавалась для изменения времени последнего открытия файла или директории, но используют её, в основном, для создания новых файлов.
wget — загружает из интернета документы, картинки, целые страницы и прочий контент.
wc — считает количество строк, слов, знаков и байтов.
diff — сокращение от «difference». Команда показывает разницу между двумя текстовыми файлами.
Что вы можете сделать с двоичными файлами? На самом деле, вариантов не очень много:
strings — команда выведет готовые к печати строки файла;
od — позволит вам напечатать файл в восьмеричном формате;
cmp — даёт возможность побайтно сравнивать файлы.
Если вам требуется сравнить текстовые файлы друг с другом, введите эти команды:
comm — отсортированные файлы будут строка за строкой.
diff — позволяет построчно выявить различия. Эта команда используется наиболее часто в силу богатого набора опций.
Команды для управления пользователями
Linux — многопользовательская система, поэтому здесь достаточно сложная система добавления и редактирования учётных записей. Но можно упростить себе жизнь и воспользоваться этими командами:
useradd — создаёт новую учётную запись. Например, если мы захотим бы добавить нового пользователя с именем REG.RU, то нужно воспользоваться этой командой — вводим useradd REG.RU.
passwd — задаёт пароль для учётной записи. Короче говоря, работает вкупе с предыдущей командой. То есть сразу после создания аккаунта, пишем passwd REG.RU.
Для установки, удаления и обновления пакетов
Для установки программ в Linux используются менеджеры пакетов, но для каждого дистрибутива они разные. Вот команды для наиболее популярных дистрибутивов:
Debian/Ubuntu
sudo apt-get install название_пакета — устанавливает программу на выбор.
sudo apt remove название_пакета — команда, используя которую можно удалить не только ПО, но и все неиспользуемые пакеты.
sudo apt-get update — обновляет информацию о пакетах, имеющихся в системе, и тех, что хранятся в подключённых репозиториях.
sudo apt-upgrade — обновляет установленные пакеты до самых свежих версий, доступных в подключенных репозиториях.
sudo apt purge — удаляет все файлы конфигурации вместе с пакетами ПО.
Red Hat Linux/CentOS
sudo dnf install название_пакета — устанавливает программу на выбор.
sudo dnf upgrade — обновляет установленные пакеты до самых свежих версий.
sudo dnf remove название_пакета — стирает с жёсткого диска имеющийся в системе пакет.
Бонус! Хитрости, которые сэкономят время
Этот список полезных знаков в разы ускорит вашу работу с командами:
!! — повторяет последнюю команду.
!* —позволяет изменить команду, сохраняя при этом все аргументы. Например, head states.txt | grep ‘^Al’ — при использовании должен быть хвост.
>x.txt — используется для создания пустого файла или очистки существующего.
CAT(1) User Commands CAT(1) SYNOPSIS DESCRIPTION —help display this help and exit —version cat Copy standard input to standard output. |
А для выход из режима просмотра, достаточно набрать команду quit или q.
На первый взгляд может показаться, что список очень трудно запомнить, но запоминание приходит с практикой! Чем чаще вы пользуетесь теми или иными командами, тем скорее вы их запомните.
И, если вы хотите попробовать какие-то команды на настоящем сервере — попробуйте наши Облачные VPS с готовым шаблоном популярных дистрибутивов Linux: Ubuntu, CentOS и Django и почасовой оплатой от 44 копеек.
Работаем в терминале Linux как профи: подборка полезных команд
Авторизуйтесь
Работаем в терминале Linux как профи: подборка полезных команд
Видели про-юзеров Linux, которые эффективно работают в терминале? Хотите так же? Не вопрос: в этой статье мы собрали некоторые из полезных команд, которые помогут вам сэкономить время и повысить продуктивность.
Использование табов для автодополнения
Когда вы начинаете что-то вводить в терминале, вы можете нажать Tab и вам будут предложены возможные варианты продолжения, которые начинаются с введённой вами строки.
Также Tab можно использовать для автодополнения команд.
Возвращение в последнюю рабочую директорию
Представьте ситуацию, когда вы спустились глубоко по иерархии папок, затем перешли в папку, которая находится в совершенно другом месте, а потом поняли, что вам нужно вернуться обратно. В таком случае вам всего лишь нужно ввести следующую команду:
Она вернёт вас в последнюю рабочую директорию и вам не придётся вручную вводить длинный путь.
Возвращение в домашнюю директорию
Это слишком очевидно. Чтобы вернуться в домашнюю директорию из любого места, вы можете использовать следующую команду:
А вообще, можно ограничиться командой cd и получить тот же результат. В большинстве современных дистрибутивов Linux эта команда должна сработать.
Вывести содержимое каталога
Конечно, всё зависит от дистрибутива, но в большинстве случаев вы сможете воспользоваться этой командой.
Запуск нескольких команд за раз
Допустим, вам нужно запустить несколько команд одну за другой. Что вы будете делать? Подождёте завершения первой команды, а затем запустите следующую?
command_1; command_2; command_3
Запуск нескольких команд за раз при условии, что предыдущая команда была выполнена успешно
Как запускать несколько команд за раз вы уже знаете. А как убедиться, что команды не завершились с ошибкой?
Допустим, вы хотите собрать код и запустить его в случае успешной сборки.
Как пример использования && можно привести команду sudo apt update && sudo apt upgrade для обновления системы через терминал на системах, основанных на Debian.
Время убивать
Пора остановиться
Простой поиск и использование предыдущих команд
Представим ситуацию, когда вы воспользовались какой-то командой пару часов назад и снова хотите её использовать, но не можете вспомнить название.
Здесь поможет обратный поиск. С его помощью можно по заданному условию найти команду в истории.
Просто нажмите комбинацию Ctrl+R и введите часть команды. Затем вам будут показаны команды из истории, которые удовлетворяют заданному условию.
По умолчанию показывается только один результат. Чтобы увидеть больше результатов, нужно повторно нажать Ctrl+R. Чтобы выйти из поиска, нажмите Ctrl+C.
Учтите, что в некоторых оболочках Bash можно использовать Page Up и Page Down с условием поиска для автодополнения команды.
Выводим консоль из зависания после Ctrl+S
Многие привыкли использовать комбинацию Ctrl+S для сохранения. Однако после её использования в терминале, он часто зависает. Чтобы вернуть его в нормальное состояние, нажмите комбинацию Ctrl+Q.
Переход к началу или концу строки
Допустим, вы вводите длинную команду и вдруг понимаете, что вам нужно что-то изменить в её начале. Чтобы попасть в начало или конец строки вы можете несколько раз нажать клавишу стрелки влево/вправо или Home/End. А можете нажать Ctrl+A или Ctrl+E.
Чтение лог-файла в реальном времени
Чтение сжатых логов без извлечения
Серверные логи обычно сжимаются gzip’ом для сохранения дискового пространства. Это становится проблемой для разработчика или сисадмина, который анализирует эти логи. Возможно, вам придётся скопировать архив в другое место, а затем извлечь его, так как не всегда есть права на извлечение логов.
Использование less для чтения файлов
Команда cat не всегда лучший выбор для отображения содержимого файла, особенно если он большой — cat выведет сразу весь файл.
Вы можете использовать Vi, Vim или другой терминальный текстовый редактор, но если вам просто нужно прочитать файл, то команда less подойдёт гораздо лучше.
В less можно искать нужную подстроку, листать по страницам, отображать номера строк и не только. А ещё less может читать не только текстовые документы, но ещё и архивы и другие типы файлов.
Использование аргумента предыдущей команды может пригодиться во многих ситуациях. Например, вы создали директорию и вам нужно сразу в неё перейти.
Использование alias для исправления опечаток
Перезагружаемся
Вставка скопированного текста в терминал
Здесь не всё однозначно, так как между дистрибутивами Linux и терминалами есть определённая разница. Но в общем случае вставить текст можно одним из следующих способов:
Завершить работающий процесс/команду
Возможно, это слишком очевидно. Если у вас запущена команда, работу которой вы хотите завершить, просто нажмите Ctrl+C и команде будет отправлен сигнал прерывания (SIGINT). А если вы хотите быстро покинуть терминал, нажмите комбинацию Ctrl+D, которая для баша и других интерактивных программ означает окончание ввода.
Команда для скриптов или команд, которым нужен интерактивный ответ
Команда yes может пригодиться, если какой-то скрипт/команда требует взаимодействия с пользователем, которое заключается только в нажатии Y каждый раз.
Очистить файл, не удаляя его
Если вам нужно только очистить содержимое файла, а не удалить его, вы можете сделать это следующим образом:
Узнать, есть ли файл с определённым текстом
В терминале Linux можно искать разными способами. Если вам нужно узнать, есть ли файл(ы) с определённым текстом, можете воспользоваться этой командой:
Получаем справку для каждой команды
Почти все команды/инструменты командной строки содержат справку с указаниями по работе. Чтобы получить справку, воспользуйтесь этой командой:
Получаем историю команд
Быстро запускаем команды из истории
Выполняем команду в обход истории
Если вы хотите выполнить команду так, чтобы она не сохранилась в истории, просто введите пробел перед командой.
Поднимаем простой HTTP-сервер
Пишем длинные команды с удобством
Если зажать Ctrl, а затем нажать по очереди X и E, то откроется текстовый редактор, в котором можно будет спокойно записать длинную команду, а после выхода из него — выполнить её.
Восстанавливаем терминал
Информация о файловых системах
Деревья процессов
Экран блокировки
Супершелл
Быстро открываем файлы в программе по умолчанию
Команда xdg-open позволяет открыть любой файл в соответствующей программе. Например, xdg-open file.txt откроет файл в текстовом редакторе по умолчанию.
Статус системных сервисов
Быстро ищем файлы
Используем вывод одной команды в качестве аргумента другой
Календарь
Команда cal может нарисовать календарь на текущий месяц (и даже выделить текущее число) или на другой промежуток:
Планировщик задач
Чтобы выполнить какую-то команду в нужное вам время, воспользуйтесь at :
echo команда-для-выполнения | at время_выполнения
Учтите, что эта команда может отсутствовать на вашей системе, и вам придётся установить её самостоятельно.
Получаем свой внешний IP
Прогноз погоды
Введите команду curl wttr.in/ и получите красивую таблицу с прогнозом погоды:
Получаем таблицу ASCII
Простой калькулятор
Выполняем команду в другой директории и возвращаемся обратно
Узнаём, какие библиотеки нужны команде/библиотеке
Чтобы узнать, какие динамические библиотеки нужны программе или библиотеке и как они будут разрешены при запуске, используйте команду ldd :
Узнаём, что лежит внутри файла
Чтобы определить тип содержимого, находящегося в файле, используйте команду file :
Многократный запуск команды
Время на запуск команды
Системные вызовы команды
Запоминаем набираемую команду
Если вы набираете какую-то команду и вам по какой-то причине нужно прерваться и, например, ввести другую команду, вы можете «запомнить» то, что вы ввели комбинацией Ctrl+U, а затем вставить комбинацией Ctrl+Y.
Выкачиваем сайты
Проводим туннели
А какие полезные команды знаете вы? Делитесь в комментариях.
50 основных команд Linux для новичков
Терминал и текстовые команды — главный способ управления операционной системой Linux. Особенно, если речь идет о сервере – на него редко ставят графический интерфейс, и вся работа выполняется исключительно через командную строку. Поэтому любому администратору важно знать хотя бы с десяток ключевых команд для терминала Линукс, нужных для навигации в системе и базового управления файлами. В этом материале мы их как раз разберем.
Базовые команды для работы с терминалом
То, что поможет при работе с консолью в целом.
Команды для управления правами на файлы и директории
Все, что нужно для разрешения проблем, связанных с правами в Linux.
Команды для управления пользователями
Linux — многопользовательская система. Ей одновременно могут управлять несколько людей. Поэтому здесь достаточно сложная система добавления и редактирования учетных записей.
Установка, удаление и обновление пакетов
Для установки программ в Linux используются менеджеры пакетов. Они разнятся от дистрибутива к дистрибутиву, поэтому команды для управления ими тоже отличаются. Рассмотрим наиболее популярные.
Debian/Ubuntu
Red Hat Linux/CentOS
Команды для навигации и базовой работы с файлами
Самый крупный список в статье. Содержит в себе практически все мелкие утилиты и инструменты для взаимодействия с файлами и папками. Причем речь идет не только об их изменении, но и о получении информации о них.
Вот, что написано в тестовом документе
Что в терминал выводит cat
И что выводит grep
Команды для отображения базовой информации и управления системой
Утилиты, делящиеся разного рода справочной информацией с администратором компьютера.
На этом все. Это список команд, которыми я хотел бы поделиться с новичками. Я разобрал основное, что будет важно в самом начале работы. Ну а вы всегда можете воспользоваться документацией, открывающейся через man, и подробнее ознакомиться с любой из команд или утилит.
Команды терминала Linux для начинающих. Часть первая
Авторизуйтесь
Команды терминала Linux для начинающих. Часть первая
Основы в терминале Linux
Ниже представлена схема типичной команды в терминале ОС Linux:
Следующие команды позволят вам лучше узнать систему:
Работа с процессами
Для начала создайте список процессов по имени, идентификационного номеру процесса и т. д. (обычно используемый признак состояния aux ).
Учитывайте особенности реализации программных потоков: POSIX, GNU и BSD, а также то, что они отличаются в работе и применении. Вышеуказанные реализации отличаются различными опциями: POSIX (-), GNU (–), BSD (без тире).
20–22 декабря, Онлайн, Бе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»