Шпаргалка по основным командам Linux на примере Ubuntu Server

Оглавление:

Общесистемные команды в Ubuntu Server

Узнать версию дистрибутива и ядра системы


# Стандарт определения версии дистрибутива, работает везде (Server, Docker, WSL)
cat /etc/os-release

# Для антикварных систем
cat /etc/*release

# Определение версии загруженного ядра (работает в любой среде)
uname -a

# Техническая справка: ядро + версия компилятора GCC
cat /proc/version

# Полная сводка, но только для систем с systemd (хостовые OS)
hostnamectl

# Олдскульный текстовый баннер приветствия (часто неточен)
cat /etc/issue

uname -a

Получение прав root в текущей сессии

sudo -i

Режим суперпользователя после sudo -i действует бессрочно, пока сессия не будет завершена командой exit, в отличие от обычной sudo, которая «забывает» пароль через 5–15 минут бездействия.

Принудительное завершение процессов в терминале Linux


# Список всех процессов системы на момент ввода команды
ps aux

# Базовый системный монитор если не установлен htop
top

# Интерактивный диспетчер для поиска процессов и их PID (самый удобный)
htop

# Завершение процесса по его уникальному номеру PID
kill <PID>

# Завершение всех экземпляров программы по ее имени
killall <имя>

# Принудительное мгновенное завершение процесса
kill -9 <PID>

Без sudo вы можете «убить» только свои собственные процессы, запущенные от имени вашего текущего пользователя. Если вы попытаетесь завершить системный процесс или программу другого юзера, система выдаст ошибку.

вывод команды htop

Управление заданиями Cron и работа с файлом crontab

Создание cron-заданий для root-пользователя:


# Посмотреть текущие задания
sudo crontab -l

# Редактировать таблицу
sudo crontab -e

В deb-based дистрибутивах будет использован текстовый редактор по умолчанию, или поступит предложение его выбрать. В rpm-based дистрибутивах сразу запускают стандартный системный редактор Vim.

Пример записи для выполнения скрипта КАЖДЫЙ ДЕНЬ в 01:00:

0 1 * * * /root/backup_website_01.sh

Иногда так бывает, что при вводе команды crontab -l в одном случае мы видим сообщение «no crontab for user», а в другом случае пустую таблицу. Такое часто бывает при запуске команды от разных пользователей, у непривилегированного пользователя вполне может и не быть сохраненного файла с таблицей заданий cron, но при использовании sudo мы увидим таблицу для пользователя root, тут уже могут быть системные задачи или просто пустой файл, созданный системой (ведь в Linux — все есть файл).


# Проверить у каких пользователей имеется файл с заданиями планировщика
sudo ls /var/spool/cron/crontabs/

# Удалить такой файл для пользователя user
sudo crontab -u user -r

Обновление Ubuntu Server


# Обновить список доступных новых версий пакетов
sudo apt update

# Безопасное обновление
sudo apt upgrade

# Более агрессивное обновление
sudo apt full-upgrade

Команда apt upgrade не трогает важные зависимости и не удаляет ничего лишнего. Команда apt full-upgrade (современный аналог apt dist-upgrade) может удалять старые пакеты, если это нужно для установки новых версий ядра или драйверов.

Разрешение конфликтов и восстановление зависимостей пакетов

Разрешение всех зависимостей пакетов через APT:


# Попытаться исправить "битые" зависимости и доустановить недостающее
sudo apt -f install

Если выполнение предыдущей команды прервалось и система просит завершить процесс вручную:


# Принудительно завершить настройку всех недоустановленных пакетов
sudo dpkg --configure -a

Очистка всей системы Linux

Удаление кэша и ненужных пакетов через APT


# Очищает локальный репозиторий (кэш пакетов) от скачанных .deb файлов
sudo apt clean

# Тоже самое что и clean, но удаляет только те пакеты, которые больше нельзя загрузить (устаревшие версии)
sudo apt autoclean

# Очистка неиспользуемых зависимостей удаленных пакетов вместе с их конфигами
sudo apt autoremove --purge

Глубокая очистка зависимостей через Aptitude

В современных системах aptitude часто не установлена по умолчанию.


# Отобразить оставшиеся конфиги от удаленных пакетов
aptitude search ~c

aptitude search ~c

Ого, на сервере уже кто-то ставил окружение рабочего стола!


# Массовое удаление конфигов этих пакетов
sudo aptitude purge ~c

Очистка остатков конфигураций через Dpkg

Посмотреть список всех пакетов, которые были удалены через команду apt remove, но от которых остались «следы» (конфигурационные файлы на уровне системы), можно так:

dpkg -l | awk '/^rc/ {print $2}'

«Следы» для заданного пакета удаляются так:

sudo dpkg --purge <имя_пакета>

Соответственно, комбинируя эти команды, получаем строчку для удаления «следов» от всех удаленных пакетов:

dpkg -l | awk '/^rc/ {print $2}' | xargs -r sudo dpkg --purge

Почему в последней команде sudo не в начале? Первая часть команды (dpkg -l) только читает список — это доступно всем. Права администратора нужны только перед исполнительной командой (dpkg —purge), которая и удаляет файлы из системы.

Управление пользователями и группами в Linux

Как создать или удалить пользователя в Ubuntu?


sudo adduser <имя_пользователя>

# и

sudo deluser --remove-home <имя_пользователя>

Управление группами в Ubuntu: создание и удаление


sudo addgroup <имя_группы>

# и

sudo groupdel <имя_группы>

Как узнать список групп пользователя?

groups <имя_пользователя>

Добавление пользователя в группу


sudo usermod -a -G <имя_группы> <имя_пользователя>

# или

sudo gpasswd -a <имя_пользователя> <имя_группы>

Как исключить пользователя из группы?

sudo gpasswd -d <имя_пользователя> <имя_группы>

Работа с файлами и правами доступа в Linux


# Создать пустой файл
touch index.html

# Самое простое бэкапирование файла
sudo cp /etc/fstab /etc/fstab.bak

# Вывести атрибуты всех файлов в директории
ls -la

# Рекурсивно (включая все содержимое) сменить владельца и группу для папки
sudo chown -R user:group /home/user/dir/

# Установить права 644 только на файлы (рекурсивно)
find /home/user/dir -type f -exec sudo chmod 644 {} \;

# Установить права 755 только на папки (рекурсивно)
find /home/user/dir -type d -exec sudo chmod 755 {} \;

# Проверить спец-атрибуты (если файл/папка не удаляется)
lsattr -d /home/admin/conf

# Снять защиту от записи и удаления (атрибут immutable)
sudo chattr -i /home/admin/conf

ls -l -L

Работа с накопителями и их разделами в Linux

Получить информацию об устройствах

Для просмотра структуры разделов, типов файловых систем и их UUID используйте команды:


# Наглядное дерево разделов со всеми данными (точки монтирования, типы FS и UUID)
lsblk -f

# Низкоуровневый список UUID (поможет, если диск не примонтирован)
sudo blkid

Как узнать, использует ли установленный диск MBR или GPT из терминала в Ubuntu Server?

sudo gdisk -l /dev/sda

gdisk -l /dev/sda

Создание нового раздела

Для разметки современных дисков рекомендуется использовать таблицу GPT и утилиту cgdisk (входит в пакет gdisk) с удобным псевдографическим интерфейсом. Если команда не найдена, установите это:

sudo apt install gdisk

Запуск утилиты для разметки диска (например, sdb):

sudo cgdisk /dev/sdb

cgdisk /dev/sdb

Как видно на скриншоте, мы работаем с физическим диском sdb. После создания раздела в этой утилите, в системе появится устройство sdb1, которое мы и будем форматировать далее.

Форматирование раздела

sudo mkfs -t ext4 /dev/sdb1

Монтирование внутреннего диска при загрузке

Сперва создаем директорию — /mnt/backups, или любую другую, но лучше использовать, конечно, примерную логику назначения директорий в linux.

sudo mkdir -p /mnt/backups

Если диск планируется использовать на постоянной основе, тогда нужна запись в конце файла конфигурации автомонтирования /etc/fstab.

Можно сделать такую запись:

/dev/sdb1 /mnt/backups ext4 defaults,nofail 0 2

В разных мануалах вы можете встретить вот такой вариант (и он сработает):

/dev/disk/by-uuid/s77x3090-34f6-3s5g-12h8-23675d94433k /mnt/backups ext4 defaults,nofail 0 2

Однако лучше всего записать именно так:

UUID=s77x3090-34f6-3s5g-12h8-23675d94433k /mnt/backups ext4 defaults,nofail 0 2

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

Почему на конце стоит цифра «2»? Fstab wiki нам гласит, что на практике нужно использовать «1» для нашего корневого раздела /, а «2» для остальных. Все разделы, отмеченные цифрой «2», проверяются последовательно, и нам не нужно указывать порядок.

Не стоит пренебрегать опцией nofail, даже при самых незначительных ошибках в файле fstab система просто не загрузится!

Монтирование и размонтирование внешнего диска

Создаем директорию — /media/storage.

sudo mkdir -p /media/storage

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

sudo mount -v -t ntfs3 /dev/sdc1 /media/storage

Драйвер ntfs3 (от Paragon) вошел в состав ядра, начиная с версии 5.15. В современных дистрибутивах (например, Ubuntu 22.04 LTS и новее) он уже есть «из коробки». Раньше все использовали пакет ntfs-3g, он медленнее, но стабильнее в плане совместимости со старыми системами.

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

sudo mount -v /dev/sdc1 /media/storage

Команду, а не запись в таблицу! Хотя и внешний HDD/SSD можно прописать в «автомонтирование», да и вообще любое устройство-носитель, вплоть до CD-приводов — все они монтируются автоматически через запись в /etc/fstab.

Размонтировать диск:

sudo umount /dev/sdc1

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

Автор: Kupereal

Занимаюсь разработкой и продвижением веб-сайтов. Развиваю каналы в мессенджерах. Настраиваю рабочее окружение (Win/Lin/Mac) и весь серверный стек для проектов.

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

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