Как узнать, какие приложения установлены в Linux?

Я пытаюсь понять следующее в Linux. В Windows у нас есть службы, которые запускаются или запускаются. Когда мы устанавливаем приложение, оно может быть установлено как сервис, чтобы он запускался автоматически.

Но если приложение не установлено как служба, мы обычно видим его в меню « Пуск -> Программы» . Поэтому мы знаем, какие приложения установлены.

В Linux, что эквивалентно? Я понимаю, что эквивалентные службы находятся в /etc/init где службы запускаются / останавливаются. Но я предполагаю, что если я устанавливаю пакет, это не обязательно создает скрипт запуска в /etc/init правильно?

Итак, как узнать, что было установлено и доступно в Linux (как мы можем в Windows из « Пуск» – « Программы» )?

Примечание. Я спрашиваю о режиме CLI. Я думаю, что в настольной версии можно увидеть соответствующие значки в различных меню (например, в Kubuntu из приложения -> Интернет -> Firefox ).

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

Q1

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

Нет, когда вы устанавливаете приложения на дистрибутивы Linux (те, которые используют диспетчеры пакетов, такие как dpkg / APT, RPM / YUM, pacman и т. Д.), Как часть установленного программного обеспечения, менеджер пакетов имеет функцию «сценарий», подобную те, которые находятся в Windows, которые могут добавлять скрипты, создавать сценарии, добавлять пользователей в систему и запускать службы после их установки.

Q2

Итак, как узнать, что было установлено и доступно в Linux (как мы можем в Windows из «Пуск» – «Программы»)?

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

пример

На дистрибутивах на основе Red Hat вы можете использовать команду rpm для получения информации об установленных пакетах.

 $ rpm -aq | head -5 libgssglue-0.4-2.fc19.x86_64 pygame-1.9.1-13.fc19.x86_64 perl-HTML-Parser-3.71-1.fc19.x86_64 ibus-libs-1.5.4-2.fc19.x86_64 libnl-1.1-17.fc19.x86_64 

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

 $ rpm -ql pygame | head -5 /usr/lib64/python2.7/site-packages/pygame /usr/lib64/python2.7/site-packages/pygame-1.9.1release-py2.7.egg-info /usr/lib64/python2.7/site-packages/pygame/LGPL /usr/lib64/python2.7/site-packages/pygame/__init__.py /usr/lib64/python2.7/site-packages/pygame/__init__.pyc 

Как он может показать мне только исполняемые части, которые включены в пакет (приложения)? В большинстве случаев исполняемые файлы устанавливаются в определенных местах в Linux, /usr/bin или /bin – 2 таких каталога. Обычно я ищу пакеты RPM для них:

 $ rpm -ql pygtk2 | grep "/bin" /usr/bin/pygtk-demo $ rpm -ql httpd | grep -E "bin/|sbin/" | head -10 /usr/sbin/apachectl /usr/sbin/fcgistarter /usr/sbin/htcacheclean /usr/sbin/httpd /usr/sbin/rotatelogs /usr/sbin/suexec 

Если вы смотрите в / var / log, должен быть журнал вашего менеджера пакетов. Например, у arch linux есть файл журнала для pacman, и все установленные, удаленные и обновленные программы перечислены с меткой времени. Этот журнал является текстовым файлом.

Конкретные программы в ОС UNIX сохраняются в / bin, / sbin, / usr / bin и / usr / sbin; однако они могут быть сохранены в различных местах.

Смотрите эту тему для некоторых других мест. Программы сохраняются в файловой системе unix. https://askubuntu.com/questions/27213/what-is-the-equivalent-to-the-windows-program-files-folder-where-do-things-g

Я не думаю, что есть какой-либо CLI-эквивалент GUI, чтобы обнаружить программы так, как они прыгают на вас. Это более интересно . Когда я перехожу к новой системе linux, я просматриваю каталог /opt чтобы узнать, какие дополнительные пакеты установлены, кроме стандартных утилит. Если я ищу конкретную утилиту, я использую apropos , locate , which и / или whereis .

Если администраторы уже установили определенные утилиты, я бы ожидал их в моем env и системном пути, поэтому я просматриваю их. Кроме того, я также рассматриваю системные псевдонимы, если таковые имеются.

В некоторых крупномасштабных системах установлены модули и / или softenv. В таких случаях я просматриваю module avail или softenv . В системах с менеджерами пакетов, такими как apt или yum, вы можете использовать их для отображения установленных пакетов: yum list installed и с rpm : rpm -q myfavtool .