команды арч линукс терминал

Help:Reading (Русский)

Поскольку подавляющее большинство статей в ArchWiki содержит указания, не совсем понятные для новых пользователей Arch Linux (или GNU/Linux в целом), было решено написать это краткое изложение основных процедур во избежание путаницы при чтении, а также для уменьшения количества повторений в самом содержании статей.

Contents

Организация

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

Вследствие такой организации, чтобы лучше усвоить материал, может потребоваться изучить несколько относящихся к теме источников. В частности, новые в Arch (или GNU/Linux в целом) пользователи должны читать большое количество статей даже при решении простых проблем. Прежде чем обращаться к другим пользователям за помощью, особенно важно изучить дополнительную информацию.

Форматирование

Обычный пользователь или root

Есть строки написанные так:

А есть с другим префиксом:

Заметьте следующее исключение:

В этом примере, знак # говорит что это не будет командой; вместо этого он должен быть отредактирован в файле. Так как в данном случае знак # означает комментарий. Комментарий может содержать пояснительный текст, который не будет выполняться соответствующей программой. Обозначение комментариев в скриптах Bash совпадает с PS1 суперпользователя.

Несмотря на это, большинство статей даёт это легко распознать, уведомив читателя:

Добавить, создать, редактировать

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

Для создания или изменения текстовых файлов предлагается использовать текстовый редактор. Например, nano, команда для редактирования файла /etc/bash.bashrc :

Когда просят создать каталог(и), используйте команду mkdir:

Сделать исполняемым

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

Для получения дополнительной информации смотрите chmod. Некоторые приложения, такие как файловый менеджер могут предоставлять графический интерфейс для настройки этого.

Source

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

Установка пакетов

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

Приведенные ниже подразделы дают обзор общих процедур установки в зависимости от типа пакета.

Официальные пакеты

Для получения пакетов из официальных репозиториев вы увидите нечто похожее:

Это означает, что вы должны запустить:

Статья pacman содержит подробные инструкции как правильно управлять пакетами в Arch Linux.

Репозиторий пользователей Arch (AUR)

Для получения пакетов из AUR (Пользовательского Репозитория Arch) вы увидите примерно такое:

Статья Пользовательский репозиторий Arch содержит все подробные объяснения и лучшие методы работы с пакетами AUR.

Управление юнитами systemd

Когда статья говорит запустить, включить, остановить или перезапустить какой-то юнит systemd (например service (службу)), в статье не будут указаны подробные инструкции как это сделать, вместо этого вы будете читать примерно такое:

Это означает, что вы должны выполнить:

Ссылка Запустить приведёт вас к статье systemd, которая содержит все подробные пояснения по правильному использованию юнитов systemd в Arch Linux.

Общесистемные или пользовательские настройки

Пользовательские настройки затрагивают только конкретного пользователя. Файл с точкой (.файл) используется для настроек конкретного пользователя. Например файл

/.bashrc является пользовательским (для конкретного пользователя) файлом настроек. Идея заключается в том, что каждый пользователь может задать свои собственные настройки, такие как псевдонимы (alias), функции и другие интерактивные черты, как строка приглашения (prompt), не затрагивая предпочтения других пользователей.

Общие файлы оболочек

Bash и другие Bourne-совместимые оболочки, как Zsh, также содержат зависимые исходные файлы, смотря какая оболочка представлена, оболочка входа или интерактивная оболочка. Для подробностей смотрите Bash (Русский)#Файлы настроек и Zsh (Русский)#Файлы Запуска/Завершения.

Псевдо-переменные в примерах кода

Некоторые блоки кода могут содержать так называемые псевдо-переменные, которые, как следует из названия, не являются фактическими переменными, используемые в коде. Вместо этого они представляют собой место для заполнения и должны быть вручную заменены на конкретный системный элемент конфигурации до того, как код может быть запущен или внедрён. Общие оболочки, такие как bash и zsh, обеспечивают автодополнение по табу (tab) для параметров общих команд, таких как systemctl.

В статьях, которые соответствуют Help:Style/Formatting and punctuation, псевдо-переменные оформлены курсивом. Например:

В этом случае псевдо-переменные используются для описания параметров, которые должны быть заменены на них. Подробное описание этих параметров, включая команду, рассматривается в разделе Securely wipe disk#Calculate blocks to wipe manually.

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

Многоточие

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

Источник

pacman (Русский)

Пакетный менеджер pacman — одна из важнейших отличительных особенностей Arch Linux. Он объединил в себе двоичный формат пакетов и лёгкую в использовании систему сборки. Цель pacman — удобное управление пакетами вне зависимости от того, взяты они из официальных репозиториев или же собраны самостоятельно.

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

Contents

Использование

Установка пакетов

Пакет представляет собой архив, в котором содержатся:

pacman, менеджер пакетов Arch Linux, может устанавливать, обновлять и удалять пакеты. Использование pacman имеет ряд преимуществ по сравнению с альтернативным подходом — ручной компиляцией и установкой программ:

Установка отдельных пакетов

Для установки одного пакета или списка пакетов (включая зависимости) используйте следующую команду:

Для установки списка пакетов при помощи поиска по регулярному выражению (смотрите эту ветку форума) выполните:

Если пакет имеет несколько версий в разных репозиториях (например, в extra и testing), можно указать, откуда именно следует установить пакет:

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

Можно использовать несколько уровней вложенных фигурных скобок:

Виртуальные пакеты

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

Установка группы пакетов

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

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

— будут выбраны все пакеты в диапазоне с 1 по 10, а также 15;

— будут выбраны все пакеты, кроме входящих в диапазон с 5 по 8, а также 2.

Чтобы увидеть список пакетов, принадлежащих к группе gnome, выполните:

Перечень групп можно найти на странице https://archlinux.org/groups/.

Удаление пакетов

Удалить пакет, не удаляя его зависимости:

Удалить пакет и те его зависимости, которые не нужны никаким другим пакетам:

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

Удалить пакет, его зависимости, а также все пакеты, для которых он сам является зависимостью:

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

Обновление пакетов

pacman полностью обновляет систему всего одной командой. Если система давно не обновлялась, процесс может занять довольно длительное время. Приведённая ниже команда одновременно синхронизирует базы данных репозиториев и выполняет обновление системы — при этом пакеты, которых нет в подключённых репозиториях, обновлены не будут:

Запросы к базам данных пакетов

pacman может выполнять поиск в базе данных как среди названий пакетов, так и по их описаниям:

Искать среди установленных пакетов:

Искать пакет в репозиториях по названию файла:

Показать подробную информацию о пакете в репозитории:

То же самое — для установленного пакета:

Вывести список файлов установленного пакета:

Вывести список файлов пакета в репозитории:

Проверить наличие файлов установленного пакета:

Узнать, какому пакету принадлежит файл:

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

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

Вывести список пакетов, установленных явно (explicitly) и не являющихся зависимостями для других пакетов:

Другие полезные команды можно найти в статье pacman/Советы и приёмы.

Pactree

Дерево зависимостей пакета можно узнать командой

Структура базы данных

В файле desc хранятся мета-данные пакета — описание, список зависимостей, размер, хэш-сумма MD5 и т.д.

Очистка кэша пакетов

Скачиваемые пакеты pacman сохраняет в каталог ( /var/cache/pacman/pkg/ ). Устаревшие версии пакетов, как и версии пакетов удалённых, автоматически не удаляются. Такой подход обладает следующими преимуществами:

Тем не менее, это означает, что время от времени необходимо чистить этот каталог самостоятельно, чтобы предотвратить его разрастание.

Скрипт paccache(8) из пакета pacman-contrib удаляет из кэша старые версии пакетов, как установленных в системе, так и уже удалённых, по умолчанию оставляя только 3 самые свежие:

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

Чтобы удалить все кэшированные версии удалённых пакетов и неиспользуемые базы данных, выполните:

Чтобы удалить вообще все файлы из кэша, укажите флаг очистки дважды:

pkgcacheclean AUR и pacleaner AUR — две альтернативные программы для очистки кэша.

Дополнительные команды

Скачать пакет без установки:

Установить пакет не из удалённого репозитория, а хранящийся локально (например, предварительно скачанный из AUR):

Сохранить копию локально устанавливаемого пакета в кэше pacman:

Скачать и установить пакет из удаленного источника (но и не из репозиториев, перечисленных в конфигурационном файле pacman):

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

Причина установки

Для pacman с точки зрения причины установки пакет относится к одной из двух категорий:

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

При переустановке пакета текущая причина установки не меняется.

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

Поиск пакета по названию файла

Синхронизировать базу данных файлов:

Найти пакет, содержащий определённый файл (например, файл pacman ):

Процесс установки/обновления/удаления пакета

Каждая операция («транзакция») pacman состоит из пяти последовательных шагов, включая пред- и пост-транзакционные хуки:

Настройка

Глобальные параметры

Сравнение версий пакетов перед обновлением

Параллельная загрузка

В pacman 6.0 была добавлена функциональность параллельной загрузки пакетов. Чтобы включить эту возможность, необходимо присвоить опции ParallelDownloads в файле /etc/pacman.conf любое положительное значение (например, 5 ). В противном случае, если опция не задана, то пакеты будут загружаться последовательно.

Запрет на обновление отдельных пакетов

Чтобы пропустить пакет во время обновления системы добавьте его название в параметр IgnorePkg в разделе [options] :

Запрет на обновление группы пакетов

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

Запрет на обновление файлов

Запрет на установку файлов

Работа с несколькими файлами настроек

Если имеется несколько конфигурационных файлов (например, основная конфигурация и дополнительная с подключённым репозиторием testing), то работу с ними можно упростить, если вынести общие пункты настроек в отдельный файл и подключать его с помощью опции Include :

В частности, хуки pacman используются в связке с systemd-sysusers и systemd-tmpfiles для автоматического создания пользователей и файлов в процессе установки пакетов. Например, пакет tomcat8 требует наличия пользователя tomcat8 и определённых каталогов, ему принадлежащих. Хуки systemd-sysusers.hook и systemd-tmpfiles.hook вызывают команды systemd-sysusers и systemd-tmpfiles соответственно, когда pacman видит в пакете указания на пользователей и временные файлы.

Репозитории и зеркала

Помимо общего раздела [options] в файле pacman.conf также содержатся отдельные разделы для каждого из репозиториев. Репозиторий — набор пакетов, который физически находится на одном или нескольких серверах; эти сервера называются зеркалами репозитория.

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

Безопасность пакетов

Решение проблем

Failed to commit transaction (conflicting files)

Следующее сообщение об ошибке [1]:

означает, что при выполнении операции были обнаружены конфликтующие файлы. pacman не будет их перезаписывать автоматически. Это не ошибка, так сделано специально.

Если программа была установлена вручную без pacman — например, при помощи команды make install — необходимо удалить программу и все её файлы, а затем выполнить установку при помощи pacman. См. также pacman/Советы и приёмы#Поиск файлов без пакета-владельца.

Failed to commit transaction (invalid or corrupted package)

Failed to init transaction (unable to lock database)

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

Не удаётся найти пакет для установки

pacman падает при обновлении

Если при удалении пакетов pacman завершает свою работу с ошибкой «database write» («запись в базу данных»), и после этого все попытки переустановки или обновления пакетов завершаются неудачей, сделайте следующее:

Переустановка pacman вручную

С помощью pacman-static

pacman-static AUR — статически скомпонованная версия pacman, которая может работать даже при отключении/повреждении системных библиотек. Это может помочь, если произошло частичное обновление и pacman больше не работает.

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

С помощью внешнего pacman

Извлечение вручную

Даже если pacman не подаёт признаков жизни, всё ещё можно починить его вручную, загрузив последние версии пакетов и распаковав файлы в нужные места. Последовательность действий:

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

Возможно, вам необходимо обновить только несколько пакетов, в зависимости от серьёзности проблемы. Пример команды распаковки архива пакета:

Ошибка «Unable to find root device» после перезагрузки

Когда система запустится, выполните команду пересборки образа initramfs либо из консоли, либо из терминала (для стандартного ядра linux ):

Если этот способ не сработает, загрузитесь с Live-USB, смонтируйте корневой и загрузочный разделы, после чего сделайте chroot командой arch-chroot:

«_is_unknown_trust,_installation_failed»>Signature from «User » is unknown trust, installation failed

Требование импортировать ключи PGP

При установке Arch Linux со старого ISO-образа скорее всего вы получите сообщение о необходимости выполнить импорт PGP-ключей — подтвердите загрузку. Если добавить ключи всё же не получится, синхронизируйте связку ключей или обновите пакет archlinux-keyring (см. «_is_unknown_trust,_installation_failed»>выше).

Error: key «0123456789ABCDEF» could not be looked up remotely

Если пакеты подписаны свежими ключами, которые были добавлены к archlinux-keyring совсем недавно, это ключи могут оказаться недоступны в процессе обновления системы (проблема курицы и яйца). Установленный пакет archlinux-keyring должен обновиться, чтобы получить новые ключи. pacman попытается обойти эту проблему обращением к серверу ключей, но это может оказаться невыполнимо из-за работы прокси или межсетевого экрана и приведёт к ошибке. Обновите пакет archlinux-keyring как описано «_is_unknown_trust,_installation_failed»>выше.

«_is_invalid,_installation_failed»>Signature from «User » is invalid, installation failed

Такая ошибка может появиться, если системное время установлено неверно и подписи ключей кажутся устаревшими:

Warning: current locale is invalid; using default «C» locale

Как сказано в сообщении ошибки, локаль системы настроена неправильно (см. Locale).

pacman игнорирует настройки прокси

Как переустановить все пакеты, сохранив информацию о том, какие из них установлены явно, а какие — в качестве зависимостей?

Cannot open shared object file

Скорее всего, это означает, что при выполнении предыдущей операции pacman удалил или повредил разделяемые библиотеки, необходимые для него самого.

Чтобы выйти из этой ситуации, нужно вручную распаковать необходимые библиотеки в вашу файловую систему. Сперва определите, в каком пакете содержится требуемая библиотека, а затем найдите этот пакет в кэше pacman ( /var/cache/pacman/pkg/ ). Распакуйте разделяемую библиотеку в файловую систему. Это позволит вам запустить pacman.

Вот и все. Обновите оставшуюся часть системы.

Проблемы с загрузкой пакетов

Были сообщения о некоторых сетевых проблемах, которые приводят к невозможности обновления/синхронизации: [2], [3]. При обычной установке Arch Linux эти проблемы не появляются, так как стандартный загрузчик файлов при этом заменяется другим (см. pacman/Советы и приёмы#Производительность). При установке Arch Linux в VirtualBox эта проблема также появляется, когда вы используете опцию виртуальной машины Host interface вместо NAT.

Failed retrieving file ‘core.db’ from mirror

Если зеркала настроены правильно, но вы получаете такое сообщение об ошибке, попробуйте выбрать другой сервер имён.

‘local-package.pkg.tar’: permission denied

error: could not determine cachedir mount point /var/cache/pacman/pkg

Источник

Основные команды Linux: (почти) полное руководство с примерами

Если вы когда-нибудь сталкивались с ОС Linux, вы наверняка слышали слово «терминал». Новички обычно воспринимают терминал как что-то страшное и зловещее. Но не все так страшно.

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

Моя бабушка называет любой терминал «терминатором», что добавляет антуража. На самом деле терминал (bash) — это всего лишь командная строка с гораздо более широким набором функций, если сравнивать с Windows. Почти любое действие можно выполнить командой из терминала, но далеко не любое действие можно выполнить через окружения пользователя.

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

Статья рассчитана на новичков и написана таким же новичком, в этом нет ничего зазорного — все когда-то начинали с нуля. Любое сообщество существует только до тех пор, пока есть приток новых участников.

Список команд в данной статье не является полным списком команд Linux. Во-первых, команд слишком много, чтобы перечислять их все, во-вторых, новичкам они не нужны, а профессионалы уже помнят их наизусть. Однако, не стоит расстраиваться, если у вас не получается запомнить команды — запоминание приходит с практикой. Чем чаще вы пользуетесь теми или иными командами, тем скорее вы их запомните.

Основные команды Linux

Если вы проигнорировали введение, напомним, что команды в статье сгруппированы по исполняемой ими функции. Что может быть более необходимым для новичка, чем функция справки?

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

man — manual, получение справки

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

Чтобы получить справку по команде, введите man перед ней, например, man bash выдаст руководство по терминалу.

help — когда не работает man

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

Tab — автозавершение команды

cat /etc/*-release — какой дистрибутив установлен на моей машине

whoami — какой пользователь сейчас используется

Терминал Linux позволяет работать от имени любого пользователя, но не всегда удается удержать в памяти текущего пользователя. Чтобы вспомнить текущего пользователя, существует простая команда whoami.

whatis — что за программа?

Команда Linux терминала whatis дает краткое описание любой установленной программы.

Очевидно, что, если программа не установлена, то получить ее описание не получится.

whereis — полный путь к программе

Допустим, вы нашли нужную программу, но хотите попасть в ее директорию. Узнать директорию программы поможет whereis, показывающая полный путь к исполняемому файлу программы.

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

hostname, ifconfig — управление сетью

В некоторых версиях дистрибутивов Linux поддерживается команда ifconfig, которая также выводит текущий IP, но она работает не всегда. Взамен устаревшей ifconfig современные дистрибутивы отзываются на ip a[ddress], которая выведет на экран настройки сети и позволяет их редактировать. Команда является частью пакета утилит для настройки параметров сетевых устройств — iproute2. Команды из набора iproute2 пригодятся системным администраторам или тем, кто хочет создать доменную сеть дома.

ping — диагностика неисправностей сети

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

Достаточно ввести, например, ping google.com, компьютер сам определит IP адрес домена и продолжит выполняться, пока ее не отменить сочетанием Ctrl+C.

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

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

mkdir — создание директории

Для начала песочницу необходимо создать. Сделать это очень просто, находясь в домашней директории пользователя введем в bash:

mkdir playpen

Отлично, и что дальше? Точно ли директория создалась?

ls — list, отобразить директории и файлы

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

cd — change directory, сменить директорию

Теперь перейдем в созданную директорию. Для навигации в терминале Linux нужно ввести cd имя_директории. В нашем случае cd playpen.

А если вы работаете одновременно в двух директориях и периодически перемещаетесь из одной в другую, не нужно постоянно держать в голове, какой же была предыдущая. Достаточно использовать быстрый переход к предыдущей директории «cd пробел — (дефис)»:

pwd — где я сейчас?

Обратно к песочнице. Пока что директория (также каталог, папка) пуста и не содержит ни одного файла. Давайте создадим в ней 43 директории, в каждой по 43 файла. Можно создавать вручную, каждый раз прописывая имя, а можно поступить проще:

Синтаксис команды простой: mkdir создает директорию, dir задает начальное имя для каждой новой директории, числа в фигурных скобках <00..42>указывают переменную часть имени создаваемых папок. То есть, команда mkdir test_folder_ создала бы нам 5 папок с начальным именем test_folder_0.

Давайте проверим, создались ли наши тестовые папки — ls.

Как создать файл?

Замечательно, теперь создадим по 43 файла в каждой. Для создания файла существует более 10 разных способов, самый простой:

На самом деле >, как и обратный знак вместе с указанием расширения файла, в текущей директории появится пустой файл.

Но нам требуется поместить по 42 файла в 42 директории, а терминал Linux откажется воспринимать команду со знаком перенаправления, поэтому используем команду touch. Эта команда позволяет задать время последнего изменения файла или создать новые файлы:

touch dir<00..42>/text<00..42>.txt

rm — remove, удаление

Чтобы удалить какой-либо файл, достаточно ввести команду rm с именем файла:

rm text00.txt

Можно удалить несколько:

Если попытаться удалить целый каталог по аналогии, то ничего не получится. Все потому, что для удаления каталога нужна другая команда: rmdir:

rmdir delete_me

Команда rmdir тоже не всесильна, она не позволит удалить каталог, в котором есть что-то еще — файл или другой каталог (даже пустой).

Для удаления каталога с содержимым можно использовать команду rm с опцией рекурсивного удаления -r. Обратите внимание на картинку ниже, все описанные переходы по директориям, упомянутые в описании команды cd действуют и для rm. Поэтому, при нахождении в подкаталоге dir01, команда будет выглядеть вот так:

cp — copy, копирование

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

Снова перейдем в директорию dir02 и скопируем файл text00.txt в директорию dir01:

cp text00.txt /home/debtop/playpen/dir01

Поскольку text00.txt находится в текущей директории, до него можно не писать полный путь. Такое указание пути называется относительным. Путь до dir01 мы указали полностью, от домашней директории, такой путь называется абсолютный. Можно было указать просто ../dir01, тогда это был бы снова относительный путь.

Если попробовать повторить копирование теперь, когда в dir01 опять появился файл text00.txt, внешне не произойдет ничего, но на самом деле файл будет заменен на файл с тем же именем без каких-либо вопросов.

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

Если при копировании каталога или файла в качестве адреса копирования указать имя несуществующей директории (или файла), то система автоматически воспримет это как команду создать файл или каталог с таким именем.

Когда вы хотите скопировать не всю директорию целиком, а только ее содержимое, укажите слэш после места назначения, а после него поставьте звездочку (*):

Принцип действия команд rm и cp очень простой и очевидный, но не стоит забывать, что новичку многое кажется сложнее, чем есть на самом деле.

mv, move — перемещение

Третья команда для управления файлами — mv — перемещает файлы и директории.

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

mv что_перемещаем куда_перемещаем

При перемещении каталогов мы перемещаем их целиком так, что они перестают существовать в исходном местоположении. То есть, каталог dir16 из предыдущего примера больше не существует в каталоге

/playpen. Но это не всегда удобно, бывает необходимо переместить не сам каталог, а только содержимое — все файлы, каталоги и файлы, вложенные в них. Для этого используется опция —v[erbose], покажем на примере. Переместим все содержимое папки dir19 в папку dir17 командой mv, оставив папку dir19 пустой:

Глубина вложенности

Можно пойти дальше — создать папку с большой вложенностью dir18 и переместить только файлы первого уровня в папку dir19:

Команды для архивирования

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

Утилита zip терминала Linux позволяет упаковать сразу несколько файлов в один архив (gzip также позволяет поместить несколько файлов в архив, но с ней сложнее разобраться) с помощью рекурсивной опции -r. Текст команды Linux:

В данном случае texts.zip будет названием архива, а text12.txt и text13.txt — файлы, которые нужно поместить в архив.

Создаст архив с именем newark.tar, в который будут помещены файл text.07.txt и все файлы из каталога dir22, располагающегося внутри родительского каталога.

Для просмотра содержимого .tar архива используются опции -tvf:

Опции для распаковки .tar архива -xvf:

После выполнения в текущий каталог будут скопированы все файлы из архива, но архив не будет удален. Удалить его можно, выполнив rm.

Команды для работы с текстом

Nano, Vim — редактирование текстовых файлов

Как посмотреть содержимое файла в Linux терминале? Через утилиты терминала Linux часто требуется открыть или отредактировать текстовые файлы. Для этого перейдем в директорию dir42 и откроем text42.txt с помощью Nano — простого текстового редактора.

nano text42.txt

Запишем текст в файле, затем сохраним его сочетанием Ctrl+O (^ в терминале Linux всегда значит Ctrl) и выйдем сочетанием Ctrl+X. Nano позволяет редактировать файлы прямо из окна терминала, обладает базовым, но не очень богатым набором функций. Кроме Nano есть еще более продвинутый Vim, который открывает гораздо большие возможности редактирования файлов. Только Vim не всегда установлен в систему и из него сложнее выйти, потому что он не отображает подсказки. Для выхода из Vim используйте :q, для выхода без сохранения изменений — :q! и :w для сохранения всех изменений. Обязательно сначала использовать двоеточие, так как оно активирует командный режим.

grep — поиск

Чтобы найти текст в файле используйте grep, эта команда выведет соответствующие запросу строки текста. Можно искать словом, строкой или регулярным выражением, а вывод может быть файлом или папкой, совпадающим или наоборот — несовпадающим. Полезно использовать grep при поиске по большим логам.

Кроме непосредственно grep есть варианты pgrep, fgrep, egrep, которые выполняют ту же функцию, но для других целей. Часто grep используют в сочетании с другими командами, чтобы упростить работу с большими объемами данных, ниже мы еще увидим примеры такого использования.

head, tail — начало и конец текста

Команды head и tail используются для вывода первых и последних строк текста в одном или нескольких документах.

head/tail опции файл

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

С помощью опции -c можно запросить уже не строки, а байты.

Например, команды для получения 100 байт текста:

Другие опции можно посмотреть через man head.

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

Операционная система Linux не имеет встроенного графического диспетчера задач в отличие от Windows, вместо этого всеми процессами можно управлять из терминала. Говорят, что Linux стабильнее винды, но иногда все равно приходится гуглить «Как завершить процесс Linux», потому что что-то зависло.

kill / xkill / pkill / killall — завершить процесс

Первый вопрос — почему так много, какую команду использовать? Давайте по порядку:

ps / pgrep — узнать ID процесса

Если вы не компьютер, то вряд ли вам известен ID нужного процесса. PS (Process Status) выведет на экран информацию о запущенных процессах. Чтобы показать список всех активных процессов, используется ps axu.

Проблема в том, что найти нужный процесс среди этого полотна очень сложно. Решений этой проблемы несколько.

1. top (Table Of Processes) — каждые 2 секунды обновляет активные процессы. Колонка PID указывает на ID процесса, USER на пользователя и т.д. Удобно. Если процесс активен постоянно, но уследить за постоянно обновляющимся списком не всегда получается.

2. Более продвинутые утилиты командной строки Linux — atop, htop. Отображают не только активные процессы с обновлением в две секунды, но и контроль над загрузкой и т.д. Утилиты полезны для системных администраторов, но для обычного пользователя все-таки перебор.

3. ps axu | grep имя_процесса. С помощью утилиты grep можно вычленить нужный процесс, если известно его имя.

4. pidof — самый короткий способ выяснить ID процесса, если известно его имя.

Пакетные менеджеры или как установить файл

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

Многие программы, скачанные из интернета, которые поддерживаются ОС Linux, имеют расширение .deb. Это файлы, оптимизированные под дистрибутивы на основе Debian (Debian, Ubuntu и Ubuntu-based, Mint и т.д.). Когда вы скачаете и попытаетесь открыть файл (точнее пакет) .deb кликом указателя скорей всего ничего не произойдет, потому что это необходимо делать через dpkg:

dpkg —remove package — удалит пакет. Да, при удалении не требуется указывать расширение, так как пакет уже установлен в системе и идентифицируется по имени.

Примечание: Если вы работали в Windows, вы помните, что приложения удаляются не полностью, остаются пустые папки и записи в реестре. У Linux тоже есть такая особенность, остаточные файлы и папки называются dependencies (зависимости). Избавиться от них в Linux гораздо проще, чем в ОС от Майкрософт. Достаточно ввести:

dpkg —purge package.

apt — менеджер установки пакетов Debian-based

Интересная функция Linux — пакетные менеджеры. В каждом дистрибутиве есть свой пакетный менеджер, который может запрашивать и устанавливать пакеты из удаленных репозиториев. Это очень удобно — требуется знать только название пакета, который желаете установить и команду. Пакетный менеджер по умолчанию в Debian и дистрибутивах на основе Debian — apt (Advanced Packaging Tool).

Для установки пакета с помощью apt необходимо ввести команду:

apt install имя_пакета

Часто для этой операции потребуются права суперпользователя, но об этом см. раздел ниже.

Нередко можно встретить apt-get вместо apt — это тот же самый пакетный менеджер, только более старая его версия. Тем не менее оба варианта существуют и работают. Пакетный менеджер apt объединяет сразу несколько прежних команд (apt-get и apt-cache в apt install и apt search), а также оптимизирует процесс установки пакетов.

Команда для удаления установленного пакета с помощью apt:

apt remove имя_пакета

Для удаления зависимостей вместо remove используется purge:

apt purge имя_пакета

Для автоматического удаления всего лишнего из системы используется apt autoremove.

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

yum — менеджер установки пакетов Red Hat

Red Hat — один из наиболее популярных дистрибутивов Linux. Утилита yum написана на python. Это пакетный менеджер Red Hat и дистрибутивов на основе Red Hat, например CentOS. Менеджер yum (Yellowdog Updater, Modified) использует формат пакетов rpm вместо deb, но команды остались прежними:

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

pacman — менеджер пакетов ArchLinux

Еще один дистрибутив, имеющий свой пакетный менеджер — ArchLinux. Утилита pacman написана на языке C (Си). ArchLinux имеет только одну версию — текущую, которая постоянно обновляется, и для этой системы pacman подходит идеально. Пакеты здесь представляют собой архивы формата .tar.xz.

Пакетный менеджер pacman работает иначе чем yum, apt или dpkg. Чтобы установить или удалить пакет с помощью pacman используются опции:

После опции всегда идет имя пакета, т.е.:

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

sudo — запуск команд и приложений через терминал в Linux от имени администратора (суперпользователя)

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

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

useradd / userdel / usermod — добавить, удалить, изменить пользователя

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

Для добавления пользователя используйте useradd имя_пользователя.

Пароль для нового пользователя задается командой passwd имя_пользователя.

Аналогичным образом, командой userdel имя_пользователя, можно удалить созданную учетную запись.

Третья команда — usermod позволяет изменять учетные записи пользователей: изменять домашнюю директорию, имя учетной записи, оболочку входа в систему, «срок годности» пароля и т.д.

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

Команды выключения и перезагрузки

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

shutdown — выключение

shutdown опции время сообщение

Время — отсрочка выключения. Можно указывать:

Сообщение (wall) — текстовое сообщение, отправляемое пользователям компьютеров в сети. Если требуется добавить комментарий с причиной выключения. При добавлении сообщения обязательно указывать время.

Некоторые опции:

Заключение, несколько советов

Мы рассмотрели основные команды Linux с примерами, надеемся, что они окажутся вам полезными. Напоследок приведем несколько советов по использованию терминала одной строкой.

Двойной символ & (амперсанд)

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

команда1 && команда2 && команда3

Вертикальная черта | (pipe)

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

ps axu | grep имя_процесса

Стрелки вверх и вниз на клавиатуре

Помогают осуществлять навигацию по последним командам. Стрелка вверх — предыдущая выполненная команда, стрелка вниз — следующая.

history — история

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

Новая вкладка bash

Не всегда удобно иметь несколько окон. Терминал, как браузер, дает возможность открыть несколько вкладок сочетанием клавиш Ctrl+Shift+T.

Копирование и вставка, прерывание команды

Пробовали ли вы копировать текст и вставлять в терминал? Пробовали Ctrl+C? Ctrl+C прервет выполнение текущей команды, например таблицы процессов, сбросит текст, введенный в строку. Скопировать текст из bash — Ctrl+Shift+C. Вставить текст в bash — Ctrl+Shift+V.

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • команды адресной строки windows
  • команды windows для работы с сетью
  • команды postgresql консоль linux
  • команды openssl для windows
  • команды nmap в linux

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии