Debian удалить файлы настроек

Обновлено: 03.07.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

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

Такой централизованный подход позволяет не тратить время на обновление отдельных программ (как например это нужно делать в Windows, где вам самостоятельно нужно отслеживать появление новых версий и обновлять их).

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

Данная статья сфокусирована на менеджере пакете apt и дистрибутиве Kali Linux, но всё сказанное в ней применимо и к другим основанным на Debian дистрибутивам (Linux Mint, Ubuntu).

Как работают репозитории приложений Linux

Сопроводители дистрибутивов Linux отбирают программы для помещения в репозитории. Эти программы упаковываются в пакеты, для Debian и производных это файлы с расширением .deb. В эти пакеты помещаются скомпилированные файлы программ, файлы настроек и все другие, необходимые для работы прогрммы файлы, а также метаинформация, в которой указано, какие ещё пакеты нужно установить для разрешения зависимостей, а также какие действия нужно выполнить перед и после установки пакета, а также перед и после его удаления.

Для установки пакета из репозитория достаточно выполнить команду apt install с указанием имени пакета. Эта команда сама найдёт адрес файла .deb, скачает его, определит и скачает необходимые зависимости и затем всё это установит.

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

Для чего нужны зависимости

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

Зависимости — это библиотеки, программы, драйверы и прочее, что необходимо для работы другой программы. Такой подход позволяет один и тот же код (библиотеку) использовать в различных программах. К примеру, мы пишем приложение, в которое ходим добавить сетевые функции с поддержкой различных протоколов — нам не нужно всё писать с нуля, мы можем воспользоваться библиотекой libcurl (от авторов программы cURL), которая уже поддерживает десятки сетевых протоколов. И так могут поступить многие другие программы — они все могут использовать одну библиотеку без необходимости дублировать код — достаточно установить библиотеку в ОС один раз.

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

Использовать apt или apt-get

Для управления пакетами может применяться команда apt или apt-get. На самом деле, выбор ещё больше: dpkg, aptitude, synaptic, wajig, а также графические интерфейсы от авторов дистрибутивов. Но все эти менеджеры пакетов имеют свои чёткие особенности, а apt и apt-get очень похожи, у них практически одинаковые команды и опции, они выполняют одинаковые функции. Разберёмся, чем отличаются apt и apt-get.

Программа apt предназначена для интерактивного использования и её поведение может меняться с выходом новых версий. А программа apt-get предназначена для использования в скриптах и её поведение и вывод очень консервативны.

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

Я предпочитаю apt как более «свежую», но на самом деле практически во всех последующих примерах команд вы можете заменить «apt» на «apt-get» и не почувствуете никакой разницы.

Обновления кэша с информацией о приложениях

Когда в репозиторий вносятся изменения, например, при обновлении пакета, необходимо синхронизировать эту информацию с локальным кэшем вашей операционной системы Linux. Это делается командой:

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

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

Как установить программу

Используйте команду вида:

Вы можете установить сразу несколько пакетов за раз:

Поиск пакетов

Для поиска пакетов предназначена команда вида:

Данная команда ищет по описанию пакетов и может выводить слишком большой список. Эта команда может пригодиться, если имя нужной утилиты не совпадает с названием пакета (например, один пакет содержит несколько утилит).

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

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

Предыдущая команда бывает бесполезной из-за слишком большого вывода информации. Вы можете использовать следующую команду для поиска по имени пакета:

Вы также можете указать подстановочные символы, например для поиска по названию, начинающемуся на слово ПАКЕТ:

Для поиска по названию, оканчивающемуся на слово ПАКЕТ:

Для поиска по названию, в котором присутствует слово ПАКЕТ:

Ещё более удобной, на мой взгляд, командой для поиска пакетов является:

Последняя команда ищет в именах по слову ПАКЕТ и выводит список всех пакетов, где оно встречается. Использовать подстановочные символы не нужно.

Как проверить, установлен ли пакет

Вы можете использовать команды apt list или apt search не только для поиска пакетов, но и просмотра информации о том, установлены ли они.


Рядом с описанием пакетов вы можете увидеть один из трёх вариантов:

  • строка «[установлен]» — пакет установлен вручную
  • строка «[установлен, автоматически]» — пакет установлен как зависимость или как включённый в метапакет (во время установке операционной системы Kali Linux активно использует метапакеты, поэтому многие инструменты имеют такую отметку)
  • ничего не написано — значит пакет не установлен

Как посмотреть информацию о пакете

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

  • номер версии
  • адрес сайта
  • краткое описание
  • список зависимостей
  • размер установки
  • репозиторий-источник
  • приоритет
  • к какому виду программ относится

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


Как удалить пакет

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

Можно удалять сразу много пакетов за раз:

Как полностью удалить пакет, вместе с конфигурационными файлами

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

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

Обновление всех пакетов системе в Kali Linux

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

Среди удаляемых пакетов могут быть конфликтующие (мешающие установке требуемых зависимостей).

Аналогичный результат можно получить командами (это одна из немногих команд, которая различается для apt и apt-get):

Для удобства можно объединить команду обновления кэша и команду запуска полного обновления системы в одну, опция -y используется для того, чтобы у нас не спрашивалось подтверждение, а сразу начался процесс установки новых пакетов:

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

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

С помощью программы apt-file можно искать по именам файлов в пакетах (как установленных, так и нет). Также она может показать все файлы в пакете.

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

Когда всё готово, то поиск осуществляется так:

К примеру поиск файла ffi.h:

У программы apt-file есть альтернативы, подробности смотрите в статье «Как в Linux узнать, в каком пакете содержится файл».

Как посмотреть зависимости пакета

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

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

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

Как просмотреть список изменений пакета

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

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

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

Как проверить, всё ли впорядке с кэшем приложений

Если вы хотите узнать, имеются ли сломанные зависимости, то выполните диагностическую команду:

Как установить локальный .deb пакет

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

Следующая команда dpkg установит пакет без проверки зависимостей:

При выполнении операции менеджером пакетов, например, обновление кэша:

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

Удаление ненужных программ

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

Для этого применяется команда:

Её использование безопасно и не должно приводить к проблемам.

Очистка кэша установочных файлов

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

Для роллинг дистрибутивов кэш разрастается очень быстро. Поэтому время от времени можно выполнять команду:

clean вычищает локальный репозиторий от полученных файлов пакетов. Она удаляет все, кроме lock файла из /var/cache/apt/archives/ и /var/cache/apt/archives/partial/.

Исправление ошибок установки пакетов и зависимостей

Альтернативы для apt

Для apt, кроме программы apt-get, которая является очень похожей, существует ещё несколько альтернатив.

В Debian вы можете выбрать среди следующих менеджеров пакетов:

dpkg — этот пакет предоставляет низкоуровневую инфраструктуру для обработки установки и удаления пакетов программного обеспечения Debian. При установке программ не устанавливает зависимости.

aptitude

aptitude — это менеджер пакетов с рядом полезных функций, в том числе: похожий на mutt синтаксис для гибкого сопоставления пакетов, возможность извлекать и отображать журнал изменений Debian для большинства пакетов и режим командной строки, аналогичный режиму apt-get. Программа не позволяет разрастаться кэшу слишком сильно и выполняет автоматическую очистку.

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

Действия (если не задано, aptitude запускается в диалоговом режиме):

synaptic

Synaptic — это графический инструмент для управления пакетами, основанный на GTK+ и APT.

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

Помимо этих основных функций, предоставляются следующие возможности:

  • Поиск и фильтрация списка доступных пакетов
  • Выполняйте интеллектуальные обновления системы
  • Исправление неработающие зависимости пакетов
  • Редактирование списка используемых репозиториев (sources.list)
  • Загрузка последнего журнала изменений пакета
  • Настройка пакеты через систему debconf
  • Просмотр всей доступной документации, относящуюся к пакету (требуется dwww)

wajig

Обёртка командной строки для apt, apt-cache, dpkg, aptitude и других. Её цель — упростить управление пакетами за счёт объединения основных функций этих инструментов в одном интерфейсе.

Кроме рассмотренных программ, в дистрибутивах Linux могут применяться и собственные инструменты. К примеру, в Linux Mint имеется собственный инструмент с графическим интерфейсом для обновления программ. Также в Linux Mint при запуске программы apt вместо неё будет использоваться собственный скрипт, который является обёрткой для aptitude (из-за этого вывод команды apt может вас смутить).

Портативные программы в Linux

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

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

Как решить проблему «команда не найдена» («command not found»)

Если при попытке запуска программы вы столкнулись с ошибкой «команда не найдена» («command not found»), то она означает, что не установлен пакет, содержащей данную программу. Конечно, при условии, что вы правильно ввели имя команды — поэтому начните с проверки имени, а также используйте клавишу TAB для вывода подсказок и автоматического дополнения.

Начните с попытки установить пакет с одноимённым именем — довольно часто название команды совпадает с именем пакета, например nmap, sqlmap — это команды запуска и имена пакетов, которые их содержат:

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

Если и это не помогло, то установите (если ещё не сделали) команду apt-file, обновите кэш и выполните поиск:

Данный способ наверняка поможет найти нужный пакет. Если даже это не сработало, то возможны следующие варианты:

  • вы неправильно вводите имя команды
  • данная программа отсутствует в репозиториях вашего дистрибутива и вам остаётся только устанавливать её вручную — компилировать из исходного кода или скачать предварительно скомпилированные файлы, если автор программы их создаёт

Warning: apt-key is deprecated

Команда apt-key управляет ключами, которые отвечают за проверку подписи репозиториев пакетов приложений.

8.1. Какие программы для управления пакетами имеются в Debian?

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

Важно понимать, что высокоуровневые инструменты управления пакетами, такие как aptitude или synaptic , для управления пакетами используют apt , который, в свою очередь, использует dpkg для управления пакетами системы.

See Chapter 2. Debian package management of the Debian reference for more information about the Debian package management utilities. This document is available in various languages and formats, see the Debian Reference entry in the DDP Users' Manuals overview.

8.1.1. dpkg

Это основная программа управления пакетами. dpkg может вызываться с многими параметрами. Наиболее часто используемые из них:

Показать список всех параметров: dpkg --help

Показать управляющий файл (и другую информацию) для указанного пакета: dpkg --info foo_VVV-RRR.deb

Установить пакет на жёсткий диск (т. е. распаковать и настроить): dpkg --install foo_VVV-RRR.deb

Распаковать архив Debian на жёсткий диск (но не настраивать): dpkg --unpack foo_VVV-RRR.deb . Учтите, что в результате данной операции пакет не обязан быть в рабочем состоянии; для правильной работы может потребоваться внесение изменений в некоторые файлы. Данная команда удаляет любую ранее установленную версию программы и запускает сценарий preinst указанного пакета (см. Раздел 7.6, «Зачем нужны сценарии preinst, postinst, prerm и postrm?»).

Настроить пакет, который был распакован ранее: dpkg --configure foo . Кроме всего прочего, эта команда запускает сценарий postinst указанного пакета (см. Раздел 7.6, «Зачем нужны сценарии preinst, postinst, prerm и postrm?»). Она также обновляет файлы, перечисленные в conffiles . Обратите внимание, что в качестве аргумента для параметра configure указывается имя пакета (т. е. foo), а не имя файла-архива Debian (т. е. foo_VVV-RRR.deb).

Распаковать файл с именем "blurf" (или группу файлов с именем "blurf*") из архива Debian: dpkg --fsys-tarfile foo_VVV-RRR.deb | tar -xf - 'blurf*'

Удалить пакет (но не его файлы настроек): dpkg --remove foo

Удалить пакет (вместе с файлами настроек): dpkg --purge foo

Вывести состояние установки пакетов, содержащих в имени строку (или регулярное выражение) «foo*»: dpkg --list 'foo*'

8.1.2. APT

APT is the Advanced Package Tool , an advanced interface to the Debian packaging system which provides the apt-get program. It provides commandline tools for searching and managing packages, and for querying information about them, as well as low-level access to all features of the libapt-pkg library. For more information, see the User's Guide in /usr/share/doc/apt-doc/guide.html/index.html (you will have to install the apt-doc package).

Starting with Debian Jessie, some frequently used apt-get and apt-cache commands have an equivalent via the new apt binary. This means some popular commands like apt-get update , apt-get install , apt-get remove , apt-cache search , or apt-cache show now can also be called simply via apt , say apt update , apt install , apt remove , apt search , or apt show . The following is an overview of the old and new commands:

Инструмент apt совмещает функциональность apt-get и apt-cache, а также по умолчанию использует красивый цветной формат вывода, что очень удобно. Для использования в сценариях или для продвинутого использования предпочтительнее использовать apt-get (а иногда он просто необходим).

apt-get provides a simple way to retrieve and install packages from multiple sources using the command line. Unlike dpkg , apt-get does not understand .deb files, it works with the packages proper name and can only install .deb archives from a source specified in /etc/apt/sources.list . apt-get will call dpkg directly after downloading the .deb archives [5] from the configured sources.

Часто используемые команды apt-get :

To update the list of packages known by your system, you can run:

(вы должны регулярно запускать эту команду для обновления списка пакетов)

Установить пакет foo и все его зависимости:

Удалить пакет из системы:

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

To list all packages for which newer versions are available, run:

Обновить все пакеты в системе (без установки дополнительных пакетов или удаления пакетов):

Обновить все установленные в системе пакеты с установкой или удалением дополнительных пакетов, если это потребуется для обновления какого-то пакета:

(Команда upgrade оставит старую установленную версию пакета, если для разрешения новых зависимостей при обновлении потребуется установка дополнительных пакетов. Команда full-upgrade менее консервативна.)

Note that you must be logged in as root to perform any commands that modify packages.

Note that apt-get now also installs recommended packages as default, and thanks to its robustness it's the preferred program for package management from console to perform system installation and major system upgrades.

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

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

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

Показать зависимости пакета:

To print detailed information on the versions available for a package and the packages that reverse-depends on it:

For more information, install the apt package and read apt (8) , apt-get (8) , sources.list (5) and install the apt-doc package and read /usr/share/doc/apt-doc/guide.html/index.html .

8.1.3. aptitude

aptitude — это менеджер пакетов для систем Debian GNU/Linux, он предоставляет интерфейс к инфраструктуре управления пакетами apt. aptitude представляет собой текстовый интерфейс на основе библиотеки curses. Действия можно выполнять как из визуального интерфейса, так и из командной строки.

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

Помимо функциональности apt-get , aptitude имеет много других дополнительных возможностей:

обеспечивает лёгкий доступ ко всем версиям пакета;

позволяет легко отслеживать устаревшее ПО, занося его в «список устаревших пакетов и пакетов, созданных локально»;

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

можно использовать для установки заранее сформированных наборов для определённых задач. Подробности см. в Раздел 8.1.5, «tasksel»;

aptitude in full screen mode has su functionality embedded and can be run by a normal user. It will call su (and ask for the root password, if any) when you really need administrative privileges.

С aptitude можно работать, используя визуальный интерфейс (просто запустить aptitude ), или непосредственно из командной строки. Используемый синтаксис командной строки очень похож на синтаксис apt-get . Например, для установки пакета foo , можно выполнить aptitude install foo .

Note that aptitude is the preferred program for daily package management from the console.

For more information, read the manual page aptitude (8) and install the aptitude-doc package.

8.1.4. synaptic

synaptic is a graphical package manager. It enables you to install, upgrade and remove software packages in a user friendly way. Along with most of the features offered by aptitude, it also has a feature for editing the list of used repositories, and supports browsing all available documentation related to a package. See the Synaptic Website for more information.

8.1.5. tasksel

Иногда бывает трудно найти подходящий комплект пакетов для выполнения определённой задачи. Разработчики Debian определили задачи , представляющие собой наборы из нескольких пакетов Debian, предназначенных для определённой деятельности. Задачи можно устанавливать с помощью программы tasksel или aptitude .

Typically, the Debian installer will automatically install the task associated with a standard system and a desktop environment. The specific desktop environment installed will depend on the CD/DVD media used, most commonly it will be the GNOME desktop ( gnome-desktop task). Also, depending on your selections throughout the installation process, tasks might be automatically installed in your system. For example, if you selected a language other than English, the task associated with it will be installed automatically too and if the installer recognises you are installing on a laptop system the laptop task will also be installed.

8.1.6. Другие инструменты управления пакетами

8.1.6.1. dpkg-deb

Вывести список допустимых параметров: dpkg-deb --help

Определить, какие файлы содержатся в файле-архиве Debian: dpkg-deb --contents foo_VVV-RRR.deb )

Извлечь файлы из указанного архива Debian в определённый пользователем каталог: dpkg-deb --extract foo_VVV-RRR.deb tmp извлечёт все файлы из foo_VVV-RRR.deb в каталог tmp/ . Это удобно для просмотра содержимого пакета в отдельном каталоге без его установки в основное дерево каталогов.

Извлечь из пакета файлы с управляющей информацией: dpkg-deb --control foo_VVV-RRR.deb tmp .

Учтите, что любые пакеты, просто распакованные командой dpkg-deb --extract , будут установлены некорректно, для установки следует использовать dpkg --install .

More information is given in the manual page dpkg-deb (1) .

8.2. Говорят, что Debian способен обновить работающую программу; как это делается?

Ядро (файловая система) в системах Debian GNU/Linux поддерживает замену файлов, даже когда они используются.

Мы также предоставляем программу start-stop-daemon , которая используется для запуска служб при загрузке компьютера или их останова при изменении уровня выполнения (например, при переключении из многопользовательского в однопользовательский или для выключения компьютера). Эта же программа используется сценариями установки при установке нового пакета со службой, для остановки работающей службы и её перезапуска при необходимости.

8.3. Как узнать, какие пакеты установлены в системе Debian?

Чтобы получить список всех установленных пакетов, выполните команду

Эта команда выведет для каждого пакета однострочную сводку, включающую два символа состояния (объясняемые в заголовке), имя пакета, установленную версию и краткое описание.

To learn the status of packages whose names match any pattern beginning with "foo", run the command:

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

8.4. How do I display the files of an installed package?

Чтобы вывести список файлов установленного пакета foo , выполните команду

Учтите, что файлы, созданные сценариями установки, не отображаются.

8.5. Как определить пакет, которому принадлежит определённый файл?

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

dpkg --search foo

Эта команда ищет foo в установленных пакетах. (В настоящий момент это эквивалентно поиску всех файлов с расширением .list в каталоге /var/lib/dpkg/info/ и выводу имён всех пакетов, которые содержат заданное имя файла, и отклонений.)

Более быстрая альтернатива этому — программа dlocate .

zgrep foo Contents-ARCH.gz

Эта команда ищет файлы, содержащие в своих полных именах путей подстроку foo . Файлы Contents-ARCH.gz (где ARCH представляет нужную архитектуру) расположены в основных каталогах пакетов (main, non-free, contrib) на FTP-сайте Debian (то есть, в /debian/dists/buster ). Файл Contents относится только к тем пакетам, что расположены в структуре подкаталогов того же каталога, где находится и он сам. Поэтому, чтобы найти пакет, содержащий файл foo , пользователю нужно искать более чем в одном файле Contents .

Преимущество этого метода над dpkg --search состоит в том, что будут найдены файлы в тех пакетах, которые могут быть не установлены в вашей системе.

apt-file search foo

If you install the apt-file package, similar to the above, it searches files which contain the substring or regular expression foo in their full path names. The advantage over the example above is that there is no need to retrieve the Contents-ARCH.gz files as it will do this automatically for all the sources defined in /etc/apt/sources.list when you run (as root) apt-file update .

8.6. Why is `foo-data' not removed when I uninstall `foo'? How do I make sure old unused library-packages get purged?

Some packages are split in program (`foo') and data (`foo-data') (or in `foo' and `foo-doc'). This is true for many games, multimedia applications and dictionaries in Debian and has been introduced since some users might want to access the raw data without installing the program or because the program can be run without the data itself, making `foo-data' optional.

Подобное относится и к библиотекам: обычно они устанавливаются, так как пакеты приложений зависят от них. Когда пакет приложения вычищается, пакет библиотеки может остаться в системе. Или когда пакет приложения больше не зависит, скажем, от libdb4.2, а зависит от libdb4.3, то пакет libdb4.2 может остаться в системе при обновлении пакета приложения.

In these cases, `foo-data' doesn't depend on `foo', so when you remove the `foo' package it will not get automatically removed by most package management tools. The same holds true for the library packages. This is necessary to avoid circular dependencies. However, if you use apt-get (see Раздел 8.1.2, «APT») or aptitude (see Раздел 8.1.3, «aptitude») as your package management tool, they will track automatically installed packages and give the possibility to remove them, when no packages making use of them remain in your system.

[5] Notice that there are ports that make this tool available with other package management systems, like Red Hat package manager, also known as rpm

man - эта команда выводит справочную информация по нужной вам команде, такую как синтаксис, ключи, описание и т.д. Синоним info.
sudo - переход в режим суперпользователя (после первой команды sudo необходимо ввести пароль пользователя).
Для запуска в терминале команды с правами администратора просто наберите перед ней sudo. Пример: sudo reboot

Команды для работы с файлами

pwd – показать текущий каталог
cd - переход в заданную папку
ls - показывает список файлов текущей папки, с ключом -l показывает дополнительные сведения о файлах
cp - копирование файлов/папок
mv - перемещение файлов/папок
rm - удаление файлов/папок, с ключем -R удаляет и все вложенные папки
mkdir - создать папку
rmdir - удаление пустой папки
chmod - изменить права доступа к файлу.

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

Это одна команда (утилита) с разными ключами.
apt-get update - обновление информации о пакетах из репозиториев
apt-get upgrade - обновление всех пакетов
apt-get clean - очищает локальный репозиторий, т.е. удаляет всё, что вы ранее скачивали. Очень полезно иногда прогонять для очистки диска.
apt-get autoremove - удаление ранее скачаных, но более ненужных пакетов
apt-get remove - удаление пакета из системы, с сохранением его конфигурационных файлов
apt-get purge - удаление пакета со всеми зависимостями
apt-get install - установка пакета.

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

ps - показывает текущие активные процессы
kill - команда отправляет сигнал прекращения работы тому или иному процессу, используется для прекращения работы зависшего приложения
killall - прекращение работы всех процессов, соответствующих заданным параметрам
top - интерактивный список текущих процессов, отсортированных по % использования центрального процессора.

Сетевые команды

ifconfig - выводит информацию о сетевых интерфейсах (в windows используется ipconfig)
pppoeconf - комманда настройки подключения к интернет
ping host – пропинговать host и вывести результат
whois domain – получить информацию whois для domain
route host - показать путь прохождения пакетов, от вас к host
wget file – скачать file
ssh user@host – подключится к host как user
ufw enable - включить фаервол
ufw disable - выключить фаервол.

Если интересуетесь ОС Debian, рекомендую обратиться к тегу Debian на моем блоге.

Debian. Шпаргалка сисадмина. Работа с файлами и каталогами

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

Создание, изменение и удаление файлов и каталогов

touch

Изменяет временные штампы файла

Если заданный файл еще не существует, то он создается (как пустой файл с правами доступа 0666, с учетом umask), если не задана опция -c.

Создание файла file_test01 в текущем каталоге:

touch file_test01

Создание файла с указанием метки времени:

touch -t 200701310846.26 file_test01

Можно указать и будущую дату.

Файл будет создаy в том случае, если будет не пустым.
Создание файла file_test02 в текущем каталоге:

nano file_test02

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

Создание пустого файла file_test03 в текущем каталоге:

> file_test03

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

mkdir

Создать каталог testdir01 в /root/:

mkdir /root/testdir01

Создать каталог testdir02 в /root/ с полными правами доступа только у владельца, у остальных нет прав даже на чтение (о правах доступа см. ниже):

mkdir -m 700 /root/testdir02

Для удаления файлов и каталогов можно воспользоваться командами ниже.

Удаляет файлы или каталоги

Удалить файл testfile01 из каталога /root/:

rm /root/testfile01

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

rm testdir01

rm: невозможно удалить «testdir01»: Это каталог

rm -r testdir01

rmdir

Удаляет пустые каталоги

Удалить каталог testdir04 из текущего расположения:

rmdir testdir04

Непустые каталоги удалить не получится:

rmdir /root/testdir02

rmdir : не удалось удалить « / root / testdir02 » : Каталог не пуст

Придется использовать rm, как описано выше.

Копирование, переименование и перемещение файлов и каталогов

Перемещает (переименовывает) файлы

mv /root/file_primer03 /root/testdir02/fileprimer031

Хотя для изменения имени файла существует и другая команда.

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

Копирование файлов и каталогов

Копирование файла test_file01 из текущего расположения в каталог testdir02:

cp test_file01 testdir02/test_file01

Рекурсивное копирование каталога testdir02 из текущего расположения в новый каталог testdir02_copy:

cp -r testdir02 testdir02_copy

Очень интересное описание параметра:

Просмотр и редактирование

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

Concatenate files and print on the standard output

Отображение содержимого файла test_file01:

cat test_file01

Объединение файла test_file01 с файлом test_file02, результат записывается в файл test_file03 в текущем расположении:

cat test_file01 test_file02 > test_file03

Sort lines of text files

Output the first part of files

Отображение первых строчек файла test_file01 (по умолчанию последние 10 строчек):

head test_file01

Отображение первых 4 строчек файла test_file01:

head -n 4 test_file01

Output the last part of files

Отображение последних строчек файла test_file01 (по умолчанию последние 10 строчек):

tail test_file01

Отображение последних 4 строчек файла test_file01:

tail -n 4 test_file01

-n - output the last K lines, instead of the last 10; or use -n +K to output lines starting with the Kth

Read from standard input and write to standard output and files

Удобная команда, предназначеня для одновременного вывода информации на экран и в файл.

О всех описанных выше командах можно подробнее прочитать в статье "Операции с файлами и фильтрация".

grep, egrep, fgrep, rgrep

Print lines matching a pattern

О данных командах, в частности речь идет о grep, в некотором будущем я планирую написать отдельную статью, т.к. модели их применения достаточно объемны.

ls, dir, vdir

Выводит содержимое каталога

Отобразить список файлов в текущем расположении:

ls -l
-l - Выдавать (в одноколоночном формате) тип файла, права доступа к файлу, количество ссылок на файл, имя владельца, имя группы, размер файла (в байтах), временной штамп и имя файла.

Отобразить список файлов в текущем расположении рекурсивно:

ls -lR

-R - Рекурсивно выдавать список содержимого всех каталогов.

Подробнее о команде ls можно прочитать в статье "15 базовых примеров команды ls в Linux"

Поиск файлов

Search for files in a directory hierarchy

Поиск файлов, начинающихся на testf, с корневого каталога:

find / -name "testf*"

locate

Find files by name

Описание с официального сайта:

Команда updatedb создаёт индекс всех файлов и папок, имеющихся в системе. Команда locate позволяет быстро находить файлы в системе по этому индексу без необходимости сканирования всей файловой системы каждый раз. Также см. пакеты mlocate и slocate.

whereis

Locate the binary, source, and manual page files for a command

Команду удобно использовать для определения месторасположения исходных файлов, ман-страниц.
Информация о консольном редакторе nano:

whereis nano

which

Locate a command

Также прочитать подробнее о командах поиска можно в статье "5 способов поиска файлов в Linux, используя терминал.".

Другие команды

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

pwd - print name of current/working directory/

Очень полезная команда, которая наиболее часто используется вообще без каких-либо аргументов.

cd - используется для перехода между каталогами.

Для перехода в домашний каталог:

cd

Для перехода в каталог /usr/bin/:

cd /usr/bin/

Переход на один уровень вверх:

cd ..

ln - создает ссылки между файлами

du - оценка места на диске, занимаемого файлом

Вывести размер текущего каталога:

du -sh

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

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

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