Команды для red hat linux

Содержание
  1. Записная книжка ежа
  2. RedHat7 / CentOS 7: полезные команды
  3. Структура каталогов
  4. / — корень
  5. /bin (binaries) — бинарные файлы пользователей
  6. /boot — файлы загрузчика
  7. /dev (devices) — файлы устройств
  8. /dev/null — псевдоустройство, в которое можно записать все что угодно и оно исчезнет навсегда.
  9. /dev/shm — раздел файловой системы, размещенный в оперативной памяти
  10. /etc (etcetera) — конфигурационные файлы
  11. /home — домашние директории пользователей
  12. /lib (library) — системные библиотеки
  13. /media — съёмные носители
  14. /mnt (mount) — точки монтирования
  15. /opt (optional applications) — дополнительные приложения
  16. /proc (process) — информация о процессах
  17. /run — процессы
  18. /sbin (system binaries) — системные исполняемые файлы
  19. /srv (server) — сервер
  20. /sys (system) — информация о системе
  21. /tmp (temp) — временные файлы
  22. /usr — (user applications) программы пользователя
  23. /usr/bin — исполняемые файлы
  24. /usr/lib— библиотеки
  25. /usr/local — пользовательские программы, библиотеки и настройки
  26. /usr/sbin — системные исполняемые файлы
  27. /var (variable) — изменяемые файлы
  28. /var/log — файлы логов
  29. /var/lib — базы данных
  30. /var/lock — блокировки
  31. /var/run — PID процессов
  32. Пользователи и группы
  33. Работа с файловой системой: навигация, создание-перемещение-удаление файлов, ссылки
  34. Управление процессами и потоками, отправка сигналов, kill
  35. SSH и передача файлов
  36. Перенаправление ввода/вывода
  37. Работа с текстовыми файлами, find и grep
  38. Информация о размерах файлов и директорий, свободном пространстве
  39. Переменные окружения
  40. Работа с сетью
  41. Работа со службами
  42. Менеджер пакетов YUM

Записная книжка ежа

RedHat7 / CentOS 7: полезные команды

А у нас на работе случилось тестирование по знанию команд linux 🙂

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

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

В этом посте осуществлена попытка собрать необходимый минимум полезных команд, часто используемых при решении типовых задач в ОС Linux, в частности — дистрибутивов Red Hat Enterprise Linux / Cent OS 7.

Структура каталогов

Основные каталоги и структура файловой системы Linux регламентируются FHS — Filesystem Hierarchy Standard. FHS поддерживается Free Standards Group — некоммерческой организацией, в составе которой находятся крупные разработчики программного и аппаратного обеспечения, такие как HP, Red Hat, IBM и Dell.

/ — корень

Главный каталог, по сути — файловая система Linux. Только root может менять и читать файлы в этом каталоге.

/bin (binaries) — бинарные файлы пользователей

Содержит исполняемые файлы, которые можно использовать когда не подключен каталог /usr. В основном — общие команды, например cat / ls / ps и др.

/boot — файлы загрузчика

Cодержит ядро и другие файлы, используемые при загрузке системы.

/dev (devices) — файлы устройств

В Linux все устройства являются файлами в каталоге /dev. Инициализируется при запуске системы — сканируются подключенные устройства и для них создаются специальные файлы.

/dev/null — псевдоустройство, в которое можно записать все что угодно и оно исчезнет навсегда.

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

/dev/shm — раздел файловой системы, размещенный в оперативной памяти

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

/etc (etcetera) — конфигурационные файлы

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

/home — домашние директории пользователей

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

/lib (library) — системные библиотеки

Содержит файлы системных библиотек, которые используются исполняемыми файлами в каталогах /bin и /sbin.

Библиотеки имеют имена файлов с расширением *.so и начинаются с префикса lib*. Например, libncurses.so.5.7. Папка /lib64 в 64 битных системах содержит 64 битные версии библиотек из /lib.

/media — съёмные носители

В этот каталог система монтирует все подключаемые внешние накопители — флешки, оптические диски и другие носители информации.

/mnt (mount) — точки монтирования

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

/opt (optional applications) — дополнительные приложения

В эту папку устанавливаются проприетарные программы, игры или драйверы.

Читайте также:  Ресивер uno 4k se dvb c fbc tuner linux receiver uhd 2160p

/proc (process) — информация о процессах

Содержит информацию о запущенных процессах, обновляемую в реальном времени. Также там есть информация об использовании системных ресурсов (/proc/cpuinfo, /proc/meminfo, /proc/uptime).

/run — процессы

Еще один каталог, содержащий PID файлы процессов, похожий на /var/run, но в отличие от него, он размещен в TMPFS, а поэтому после перезагрузки все файлы теряются.

/sbin (system binaries) — системные исполняемые файлы

Также как /bin содержит исполняемые файлы, доступные на ранних этапах загрузки, но здесь — программы, выполняемые только с правами суперпользователя — системные утилиты.

/srv (server) — сервер

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

/sys (system) — информация о системе

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

/tmp (temp) — временные файлы

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

/usr — (user applications) программы пользователя

/usr/bin — исполняемые файлы

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

/usr/lib— библиотеки

Содержит библиотеки для программ из /usr/bin или /usr/sbin.

/usr/local — пользовательские программы, библиотеки и настройки

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

/usr/sbin — системные исполняемые файлы

Содержит двоичные файлы программ для системного администрирования, которые нужно выполнять с правами суперпользователя. Например, таких как Gparted, sshd, useradd, userdel и т д.

/var (variable) — изменяемые файлы

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

/var/log — файлы логов

Содержит большинство логов всех установленных в операционной системе программ.

/var/lib — базы данных

Содержит файлы баз данных, пакеты и т.п.

/var/lock — блокировки

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

/var/run — PID процессов

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

Пользователи и группы

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

Для отслеживания владельцев процессов и файлов используются числовые идентификаторы. Идентификатор пользователя и группы — целое число (обычно) в диапазоне от 0 до 65535. Присвоение уникального идентификатора пользователя выполняется при заведении системным администратором нового регистрационного имени. Среди пользователей системы выделяется один пользователь — системный администратор или суперпользователь, обладающий всей полнотой прав на использование и конфигурирование системы. Это пользователь с идентификатором 0 и регистрационным именем root.

Учетные записи пользователей, как и большинство другой информации о конфигурации системы UNIX, по традиции, представлена в виде текстовых файлов: /etc/passwd, /etc/group и /etc/shadow (в системах с теневым хранением паролей).

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

В современных дистрибутивах Linux вместо root аккаунта для администрирования как правило используется утилита sudo (substitute user and do), позволяющая выполнить команду от лица пользователя root.

Все настройки sudo находятся в файле /etc/sudoers. Здесь можно настроить очень много параметров, начиная от кому будет позволено выполнять команды от имени суперпользователя и заканчивая ограничением набора доступных команд. Неправильный синтаксис, добавленный в этот файл, может полностью нарушить распределение прав между пользователями. Потому для работы с этим файлом используется утилита visudo, которая открывает файл в обычном текстовом редакторе, но во время сохранения файла проверяет его синтаксис. Это позволяет избежать ошибок в конфигурации.

Работа с файловой системой: навигация, создание-перемещение-удаление файлов, ссылки

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

В ОС Linux существует два вида ссылок.

Читайте также:  Шрифты times new roman для linux

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

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

Cимволические ссылки (или симлинки) — специальный вид файла, который ссылается на другой файл по имени, а не напрямую на инод. Симлинки не предохраняют файл от удаления. Если файл удалить, то симлинк на него станет нерабочим (или битым).

Симлинки создаются командой ln с опцией ‘-s’:

При работе с большим количеством файлов бывает удобно использовать маски — т.н. wildcards.

Wildcard «*» соответствует нулю или большему количеству символов:

Wildcard «?» заменяет один любой символ:

Шаблон «[]» позволяет явно указать набор символов — будут найдеты совпадения, содержащие один из указанных в скобках символов. Также в можно указать диапазон символов (для этого используется символ –/дефис) или несколько диапазонов подряд, тогда шаблон будет совпадать с одним любым символом из этого диапазона:

Управление процессами и потоками, отправка сигналов, kill

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

Каждому процессу в системе назначаются числовые идентификаторы PID (Process Identifier) в диапазоне от 1 до 65535 и идентификаторы родительского процесса PPID (Parent Process Identifier).

Сигнал в операционных системах семейства Unix — асинхронное уведомление процесса о каком-либо событии.

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

По умолчанию отправляется сигнал SIGTERM. Для безусловного завершения процесса можно отправить SIGKILL. Т.к. в большинстве систем SIGKILL имеет идентификатор 9, часто встречается команда в сокращенной форме записи:

SSH и передача файлов

SSH (Secure Shell) — защищенный протокол для удаленного доступа к компьютерам. В *nix-подобных системах (Linux, macOS) ssh-клиент обычно установлен по умолчанию и подключаться можно напрямую из терминала. Для подключения нужно указать адрес сервера и, опционально, имя пользователя и порт.

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

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

Для создания ключей необходимо выполнить команду:

Опционально можно ввести passphrase.

Будут созданы два файла:

/.ssh/id_rsa — приватный ключ.Его нельзя никому передавать.

/.ssh/id_rsa.pub — публичный ключ. Можно спокойно распространять.

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

Другой вариант — добавить на удаленной машине в файл

/.ssh/authorized_keys содержимое публичного ключа.

Для более удобной работы с ключами можно добавить ключ к ssh-агенту. После этого для него больше не будет спрашиваться passphrase (если был задан) и не нужно будет вводить ключ вручную — он будет автоматически использован при соответствующем подключении.

ssh-agent привязан к сессии. Поэтому, например, если перезагрузить компьютер, то ключи нужно будет добавлять в агент заново.

Протокол SSH можно использовать для передачи файлов на удалённый сервер и загрузки их оттуда.

Перенаправление ввода/вывода

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

Можно организовать конвейер (pipe) выполняемых команд.

В примере выше вывод команды cat, т. е. текст из файла myfile, будет направлен на вход команды grep, которая выделит только строки, содержащие слово «Linux». Вывод команды grep будет, в свою очередь, направлен на вход команды wc -l, которая подсчитает число таких строк. Статус выхода из канала совпадает со статусом выхода, возвращаемым последней командой.

Читайте также:  При запуске windows папка мои документы

Работа с текстовыми файлами, find и grep

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

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

Для вызова справки внутри утилиты воспользуйтесь клавишей h.

Поиск внутри утилиты:

В режиме поиска:

tail — утилита, выводящая несколько последних строк файла, head — несколько первых строк.

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

По умолчанию tail выводит именно 10 последних строк.

iconv — преобразование кодировки файла

Find — команда для поиска файлов и каталогов на основе специальных условий.

Команда grep — поиск по шаблону в файле.

Информация о размерах файлов и директорий, свободном пространстве

Для того, чтобы получить информацию о доступном в системе пространстве, можно использовать утилиту df (disk free):

Для оценки занимаемого файлом или директорией дискового пространства используется утилита du (disk usage):

Переменные окружения

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

Существует три типа переменных окружения:

локальные переменные окружения (environmental variables) — определены только для текущей сессии, будут безвозвратно стерты по ее завершении. Вывести текущие переменные окружения — команда printenv или env без параметров

пользовательские переменные окружения (shell variables) — определяются для конкретного пользователя и устанавливаются при входе в систему или удаленном подключении. Хранятся в файлах конфигурации .bashrc, .bash_profile, .bash_login, .profile и других, размещенных в директории пользователя. Для просмотра используется команда set.

системные переменные окружения — доступны всем пользователям, загружаются при старте системы из файлов /etc/environment, /etc/profile, /etc/profile.d/ /etc/bash.bashrc.

Конфигурационные файлы переменных окружения:

  • .bashrc — переменные конкретного пользователя, загружается каждый раз при создании пользователем терминального сеанса
  • .bash_profile — загружается каждый раз при удаленном подключении по SSH
  • /etc/environment — файл для работы с переменными окружения на системном уровне, будут доступны всем пользователям системы, в том числе при удаленном подключении
  • /etc/bashrc — выполняется для всех локальных пользователей при создании сессии в терминале
  • /etc/profile — выполняется для всех удаленных пользователей при открытии терминала

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

Работа с сетью

Основные команды для работы с сетью:

Адаптер lo (loopback) в выводе ifconfig используется системой для обращения к самой себе.

Работа со службами

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

Юниты находятся в конфигурационных файлах, расположенных в директориях (указаны по возрастанию приоритета):

  • /usr/lib/systemd/system/ — юниты из установленных покетов RPM
  • /run/systemd/system/ — юниты, созданные в рантайме
  • /etc/systemd/system/ — юниты, созданные и управляемые системным администратором с помощью команды systemctl enable.

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

Типы юнитов systemd:

  • .service – системный сервис,
  • .target — группа юнитов systemd,
  • .automount – точка автомонтирования файловой системы,
  • .device – файл устройства, распознанного ядром,
  • .mount – точка монтирования файловой системы,
  • .path – файл или директория в файловой системе,
  • .scope – процесс, созданный извне,
  • .slice – группа иерархически организованных юнитов, управляющая системными процессами,
  • .snapshot – сохраненное состояние менеджера systemd,
  • .socket – сокет межпроцессного взаимодействия,
  • .swap – свап-устройство или свап-файл (файл подкачки),
  • .timer – таймер systemd.

Основные команды для работы со службами:

Менеджер пакетов YUM

Менеджер пакетов YUM — высокоуровневое решение по управлению RPM-пакетами. Основные преимущества YUM:

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

— автоматически разрешаются взаимосвязи между пакетами как при установке (докачать нужное) так и при удалении (удалить ставшее ненужным)

— возможность обновить одной командой все пакеты в системе

Источник

Оцените статью