Ликбез по Linux

Статья основана на десятом видео из 30 тем курса SQL c 0 от Аристова Евгения. Ссылки на видео на платформах RUTUBE и VK видео.

В прошлых статьях мы уже смотрели на Linux при установке PostgreSQL.

Философия Linux

Всё, что есть – файлы, все устройства – тоже файлы. Это сделано для универсальности доступа, чтобы не искать драйвера как на Windows.

Информация о ядре и о памяти также является файлами

ls -l /proc - информация о ядре
vi /proc/meminfo - информация о памяти

Изначально мы расположены в корне (root или /), а далее от него построено файловая древовидная система (похоже на Windows, но есть отличия). Есть каталоги, внутри которых лежат файлы. Внутри каталога может быть ссылка, которая ссылается на другой каталог внутри структуры.

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

Существует папка dev (devices) – устройства, которые у нас есть. Например, sda – жёсткий диск – блочное устройство:

Философия Unix предполагает, что утилиты должны потреблять и/или производить потоки текста. Таким образом можно использовать больше утилит в связке друг с другом. Для того, чтобы из кусочков составлялось более крупное единство, кусочки должны быть хорошо подогнаны друг к другу. Каждая программа – кусочек – решает какую-то свою задачу, выполняет свою функцию.

Исходя из этого можно дать несколько советов:

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

Управляется ОС с помощью интерпретаторов команд Linux, которые транслируют команды пользователя в ядро

  • sh – встроенный и самый простой интерпретатор
  • bash – самый распространённый интерпретатор, позволяет выводить информацию на экран более структурированно, немного расширяет функционал (например, писать циклы). Его можно установить, если изначально отсутствует
  • zsh, ksh, etc – более расширенные интерпретаторы команд

Параллельно можно открывать несколько подключений к ОС

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

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

Классические GUI для Linux:

В Ubuntu по умолчанию уже есть графический интерфейс.

Работа с файловой системой

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

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

ls – списки файлов и каталогов

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

help - man (manual pages)
man ls - ключи и назначение утилиты ls
pwd - возвращает каталог, где мы находимся
cd - change directory - утилита для навигации по каталогам. Совпадает с Windows и Mac OS
cd .. -возврат в предыдущий каталог
cd ~ или cd $HOME - переход в домашний каталог. Домашний каталог доступен только нам и суперпользователю root
tree - возвращает структуру каталога
cp - copy - копирование файла
mv - move - перенос файла
rm - remove - удаление файла
touch - создание пустого файла
cat (весь файл) или tail (конец файла) или head (начало файла) - прочитать содержимое файла
vi или nano - отредактировать содержимое файла. Редакторы отличаются, в каждом свои команды для вставки текста, сохранения, выхода (читайте документацию) 
| - передача текста в другую утилиту (команда | команда - текст, возвращенный первой, передается во вторую)

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

Типы файловой системы

  • ext3/4 – классический вариант
  • etc

Структура и типы файловых систем в Linux | Блог Timeweb Cloud

Можно самостоятельно монтировать файловую систему:

cat /etc/fstab
  • mount – до перезагрузки
  • fstab – персистентно. Например, для жесткого диска.

Список точек монтирования:

  • df
  • mount

Пользователи и права на файлы

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

chmod - команда изменения прав

Права всем на всё кроме выполнения – chmod 666

Права на секьюрные файлы – chmod 600

chown  - сменить владельца

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

Рекомендуется задавать максимально узкие права, создавать отдельного юзера для ваших задач, а не запускать из-под root.

Имя + группа – UID – уникальный идентификатор

cat /etc/passw - список пользователей
useradd имя_пользователя - создать пользователя:
root - суперпользователь

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

Использовать sudo могут не все, а только профили, внесенные в файл /etc/sudoers

 sudo -lU имя_пользователя – просмотр прав пользователя

Пользователи в Linux

Права пользователей в Linux. Команды sudo и su

Sudo (Русский)

Команда chmod в Linux – изменение прав доступа к файлам и папкам – Академия Selectel

Права в Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Процессы

Кроме файлов существуют задачи, например старт PostgreSQL

top - список процессов (какой пользователь запустил, сколько памяти потребляется)
atop - список процессов со всеми ядрами, нагрузкой на диск и на сеть, а также анализ этой информации. Позволяет динамически отслеживать возникающие проблемы.
htop - список процессов, более красивая утилита top
ps -exf - классический способ просмотра всех процессов
ps -e -список процессов
kill PID - убить процесс

Использование команды ps для просмотра процессов Linux

Установка и удаление программ

Команды для обновления программ:

sudo apt update - обновить список пакетов, для которых необходимы обновления. Обновляться необходимо, так как в новых версиях закрываются дыры в безопасности
sudo apt upgrade - обновить пакеты
sudo apt dist-upgrade - обновить на новую версию

Установка программ: (apt-get -> apt):

sudo apt install mysql - установка пакета

Список установленных приложений/пакетов:

sudo apt list | grep postgres  -  поиск локально
sudo apt search postgres - поиск в интернете

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

sudo apt-cache show – информация о пакете
sudo apt remove mysql – удаление пакета

Установка и удаление программ. Менеджеры пакетов

Как обновить Ubuntu до 22.04 – Losst

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

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

Возможные протоколы:

Классически маска подсети задается двумя способами:

  • 255.255.0.0 или 255.255.255.0 и т.д. – то есть четыре числа по аналогии с IP. Доступ будет предоставлен тем адресам, в которых биты, соответствующие единицам в двоичной записи маски, совпадают с IP адресом.
  • /24 или /30 после IP. Означает, сколько бит в двоичной записи адреса должно оставаться неизменно.

Важно не забывать о том, что в диапазоне адресов каждой подсети есть два зарезервированных. Самый младший адрес – broadcast – широковещательный адрес, а самый старший задает маску подсети.

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

Управление подключениями:

ifconfig - устаревшая утилита, показывает текущие сетевые адаптеры
ip a - посмотреть текущие сетевые адаптеры:
ss -tlpn - посмотреть текущие подключения по сети
netstat -a - посмотреть текущие подключения по сети
netstat -a | grep postgresql - посмотреть подключение postgresql

Лучшие сетевые утилиты Linux

Логирование

Работа с логами:

ls -la /var/log - просмотр каталога логов
tail syslog - просмотр конца файла с логами
pg_lsclusters
tail /var/log/postgresql/postgresql-16-main.log - просмотр конца файла логов postgresql

Полезные утилиты

Основные утилиты в консоли Linux – База знаний РЕД ОС

Полезные консольные Linux утилиты / Хабр

Полезные утилиты для Linux – Losst

расширенный справочник команд Unix / Linux / PuTTY SSH

Моя рекомендация

Презентация к статье здесь.

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


Опубликовано

в

,

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

3 × 4 =