Debian. Шпаргалка сисадмина. Информация об устройствах

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

Забытая история bash.

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

Это происходит потому, что история bash сохраняется только когда вы закрываете терминал, а не после каждой команды. Чтобы исправить такое поведение, добавьте в ~/.bashrc строки:

shopt -s histappend PROMPT_COMMAND=`history -a`

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

PROMPT_COMMAND=‘$PROMPT_COMMAND; history -a’

Это заставит bash дополнять историю вместо того, чтобы перезаписывать её: каждый раз, когда показывается приглашение командной строки, последняя команда добавляется в историю.

Создание пользователя в терминале

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

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

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

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

Добавляется новый пользователь в Ubuntu командой useradd имя-юзера. Перед выполнением команды мы запрашиваем разрешение у root, поэтому вначале ставим sudo. Если вы хотите в рамках сессии постоянно работать с правами суперпользователя, выполните sudo su —. Если увидите на скриншотах такую конструкцию, это значит мы переключились в режим root.

При выполнении команды useradd автоматически будет создана новая группа и домашняя папка юзера. В процессе система попросит придумать и ввести для нового пользователя пароль и указать дополнительные сведения, которые, в отличие от пароля, можно проигнорировать. Это будет самый обычный пользователь с домашней папкой в каталоге /home и командной строкой bash. Получить базовые сведения о пользователе можно командой id имя-юзера. Для примера мы только что создали нового пользователя ludos и вывели командой id ludos о нём сведения. В результате получили строку из трех частей.

  1. uid — это идентификатор пользователя.
  2. gid — идентификатор его группы (по умолчанию равен ID юзера).
  3. группы — перечень групп, в которые входит пользователь.
Читайте также:  Как открыть Диспетчер задач в Windows 10?

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

Да очень просто: используя ключи -o, -u, -g и -s Первый ключ разрешает создание пользователя с неуникальным ID, второй назначает ему идентификатор пользователя, а третий — идентификатор группы, которые совпадают с идентификаторами рута (0). Четвёртый ключ назначает командную оболочку. Сама же команда будет выглядеть следующим образом, где newroot — новый рутовый пользователь.

useradd -o -u 0 -g 0 -s /bin/bash newroot

Только вот делать так не рекомендуем.

Во-первых, этот дубль-root не отображается на экране входа в систему (нужно нажать «нет в списке» и ввести его имя и пароль), не отображается он и в графической утилите управления пользователями. Во-вторых, у вас могут возникнуть проблемы с его удалением. Ubuntu советует использовать для удаления рутового пользователя ключ —force, но когда мы выполняем команду удаления deluser —force newroot, система сообщает об ошибке из-за использования newroot процесса с ID 1, принадлежащего пользователю root! То есть newroot стал как-бы зеркалом рута.

Команда lshw

Команда List Hardware (lshw) — еще одна популярная команда, используемая системными администраторами для получения очень подробной информации об аппаратных характеристиках машины. Это делается путем чтения различных файлов в каталоге /proc на компьютере с Linux.

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

Синтаксис команды:

lshw [-format] [-options…]

Формат вывода может быть любым из следующих:

  • html — вывод аппаратной конфигурации в формате HTML;
  • xml — вывод аппаратной конфигурации в формате XML;
  • json — вывод аппаратной конфигурации как объект JSON;
  • short — отображает только основную информацию;
  • businfo — выводит информацию о шине.

Параметры могут быть любыми из следующих:

  • -class CLASS — показывает только определенный класс оборудования;
  • -C CLASS — такой же, как ‘-class CLASS’;
  • -c CLASS — такой же, как ‘-class CLASS’;
  • -disable TEST — отключить тест (например, pci, isapnp, cpuid и т.д.);
  • -enable TEST — включить тест (например, pci, isapnp, cpuid и т.д.);
  • -quiet — не отображать статус;
  • -sanitize — удалить конфиденциальную информацию, такую как серийные номера и т.д.;
  • -numeric — числовые идентификаторы (для PCI, USB и т.д.);
  • -notime — исключить изменяемые атрибуты (временные метки) из вывода.
Читайте также:  Основные команды Линукс – зачем и как используются в терминале

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

sudo lshw -short

Скриншот №7. Команда sudoПоделиться Оценить

Средняя оценка: 5.0 Оценили: 1220140 Минск ул. Домбровская, д. 9 +375 (173) 88-72-49

  • 700 300 ООО «ИТГЛОБАЛКОМ БЕЛ»220140 Минск ул. Домбровская, д. 9 +375 (173) 88-72-49
  • 700 300 ООО «ИТГЛОБАЛКОМ БЕЛ»
  • 700 300
  • Утилиты общего назначения

    Утилита top служит для отображения информации о процессах и ресурсах, которые они потребляют. Информация обновляется с определенной периодичностью. Данные можно отсортировать, например, по использованию процессорной мощности или оперативной памяти (по умолчанию идет сортировка по CPU). [email protected]:~# top

    dmidecode

    Получить подробную информацию об аппаратном обеспечении можно с помощью dmidecode. Утилита предоставляет данных, полученные от BIOS. В описании пакета приводится следующая справка 1:

    Эта информация обычно включает в себя производителя системы, название модели, серийный номер, версию BIOS, дескриптор ресурса (asset tag) а также другую информацию различного уровня интереса и достоверности, устанавливаемую производителем. Часто содержит состояние занятых процессорных сокетов, слотов расширения (например, AGP, PCI, ISA), слотов памяти и список портов ввода/вывода (например, последовательные и параллельные порты, USB).

    Помните, что данные, выдаваемые DMI, не настолько надёжные, чтобы им слепо доверять. Dmidecode не сканирует аппаратное обеспечение, он просто выводит те данные, которые ему предоставляет BIOS.

    [email protected]:~# dmidecode

    Вывод команды без аргументов слишком объемный, лучше использовать ключ —type и получать только необходимые разделы, например: [email protected]:~# dmidecode —type 5,6

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

    dmesg

    Команда используется для вывода буфера сообщений ядра. С точки зрения аппаратного обеспечения, вывод может быть полезен для анализа проблем с оборудованием, да и вообще для полного представления имеющегося «железа». Вывод команды слишком объемный и для его анализа могут понадобиться другие инструменты, например, можно воспользоваться выводом в файл, можно перенаправить вывод команде less, а можно с помощью grep найти необходимые вам аппаратные компоненты. [email protected]:~# dmesg | grep processor

    Команда выведет только строки, содержащие слово processor.

    lspci

    Утилитой удобно пользоваться для вывода списка всех устройств, подключенных к pci-шине. Информация может быть использована в диагностических целях, а также для определения установленных устройств. [email protected]:~# lspci

    Используйте ключ -t для отображения информации в древовидном представлении, в котором будут отображены все шины и устройства, подключенные к ним. Ключи -v, -vv, -vvv отображают дополнительную информацию по каждому устройству; чем больше «v», тем более подробно выводятся данные.

    Читайте также:  Ubuntu Desktop против Ubuntu Server: какая разница?

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

    vmstat

    Показывает сводную информацию о состоянии виртуальной памяти, а также о свопе. [email protected]:~# vmstat 2

    Команда выше будет выводить обновленные данные каждые 2 секунды (вместо 2 можете указать любое другое число).

    sysctl

    Хоть и утилита предназначена главным образом для управления параметрами ядра на лету, анализ установленных значений может помочь в диагностике проблем. [email protected]:~# sysctl -a

    Команда отобразит все переменные и их значения.

    Управление службами Linux

    Теперь, когда вы уже знаете все основы, команды и параметры можно переходить к делу. Со всеми остальными тонкостями разберемся по пути. Сначала давайте посмотрим запущенные службы linux. Нас будут интересовать только программы, а не все эти дополнительные компоненты, поэтому воспользуемся опцией type:

    systemctl list-units —type service

    Команда отобразила все службы, которые известны systemd, они сейчас запущены или были запущены. Программа не пересматривает все файлы, поэтому будут показаны только те службы, к которым уже обращались. Состояние loaded — означает, что конфигурационный файл был успешно загружен, следующая колонка active — служба была запущена, а running или exited значит выполняется ли сейчас служба или она успешно завершила свою работу. Листать список можно кнопками вверх/вниз.

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

    systemctl list-units —type service -all

    Дальше больше. Вы можете отсортировать список служб systemctl по состоянию. Например, только выполняющиеся:

    systemctl list-units —type service —state running

    Или те, которые завершились с ошибкой:

    systemctl list-units —type service —state failed

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

    Управление службами Linux

    Теперь отфильтруем только службы linux:

    systemctl list-unit-files —type service

    Здесь вы тоже можете использовать фильтры по состоянию. Теперь вы знаете как посмотреть запущенные службы linux, идем дальше.

    Чтобы запустить службу используется команда start, например:

    Управление службами Linux

    sudo systemctl start

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

    Остановить службу linux можно командой:

    sudo systemctl stop application

    Управление службами Linux

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

    sudo systemctl status application

    Здесь вы можете видеть, состояние running, exited, dead, failed и т д. А также несколько последних строчек вывода программы, которые очень помогут решить проблему с запуском если она возникнет.