🧰 Стандартные инструменты для диагностики в Linux
Если вы работаете с серверами, пишете код или просто хотите понимать, что творится в системе — знание диагностических утилит спасёт вас не раз.
Основные категории и популярные инструменты:
🔩 Ядро
- perf — профайлинг ядра и приложений
- ftrace — трассировка функций внутри ядра
- stap — скриптовый анализ системы (SystemTap)
- lttng — мощный трейсер ядра и приложений
- bcc/BPF — современный подход к трассировке и манипуляциям в ядре
💾 Ввод/вывод
- iostat — статистика дисковых операций
- pidstat — нагрузка по процессам (I/O, CPU, память)
- pcstat — использование файлового кэша
- lsof — список открытых процессом файлов
- blktrace — детальная трассировка блочных устройств
🧵 Системные и библиотечные вызовы
- strace — отслеживание системных вызовов
- ltrace — отслеживание библиотечных вызовов
⚙️ Аппаратные счётчики
- tiptop — данные о процессах с аппаратных счетчиков
- numastat — статистика NUMA-памяти
🌐 Сеть
- netstat — классика: сокеты, порты, маршруты
- ss — более быстрая замена netstat
- ethtool — управление и диагностика сетевых интерфейсов
- snmpget — сбор данных через SNMP
- lldptool — информация LLDP о соседях в сети
- nicstat / ifstat — статистика сетевого трафика
- ip — управление сетью и маршрутизацией
🧑💻 Процессы
- top / htop — активные процессы
- vmstat — виртуальная память
- free — информация о свободной и занятой памяти
- slabtop — статистика SLAB-кэша
🧠 Процессор
- mpstat — загрузка CPU по ядрам
- turbostat — частота, питание, температура
- rdmsr — чтение из внутренних регистров процессора
🧪 Универсальные
- sar — сводка активности системы за период
- dstat — объединяет iostat, vmstat и другие
- dmesg — логи ядра с момента загрузки
- /proc — псевдо-ФС с данными ядра
- sysdig — мощный инструмент анализа всей системы
#Linux #Sysadmin #DevOps #Инфраструктура #ДиагностикаСистемы #perf #ftrace #stap #bcc #BPF #strace #tcpdump #Wireshark #htop #sar #dstat #LinuxTools #ITРоссии
Если вы работаете с серверами, пишете код или просто хотите понимать, что творится в системе — знание диагностических утилит спасёт вас не раз.
Основные категории и популярные инструменты:
🔩 Ядро
- perf — профайлинг ядра и приложений
- ftrace — трассировка функций внутри ядра
- stap — скриптовый анализ системы (SystemTap)
- lttng — мощный трейсер ядра и приложений
- bcc/BPF — современный подход к трассировке и манипуляциям в ядре
💾 Ввод/вывод
- iostat — статистика дисковых операций
- pidstat — нагрузка по процессам (I/O, CPU, память)
- pcstat — использование файлового кэша
- lsof — список открытых процессом файлов
- blktrace — детальная трассировка блочных устройств
🧵 Системные и библиотечные вызовы
- strace — отслеживание системных вызовов
- ltrace — отслеживание библиотечных вызовов
⚙️ Аппаратные счётчики
- tiptop — данные о процессах с аппаратных счетчиков
- numastat — статистика NUMA-памяти
🌐 Сеть
- netstat — классика: сокеты, порты, маршруты
- ss — более быстрая замена netstat
- ethtool — управление и диагностика сетевых интерфейсов
- snmpget — сбор данных через SNMP
- lldptool — информация LLDP о соседях в сети
- nicstat / ifstat — статистика сетевого трафика
- ip — управление сетью и маршрутизацией
🧑💻 Процессы
- top / htop — активные процессы
- vmstat — виртуальная память
- free — информация о свободной и занятой памяти
- slabtop — статистика SLAB-кэша
🧠 Процессор
- mpstat — загрузка CPU по ядрам
- turbostat — частота, питание, температура
- rdmsr — чтение из внутренних регистров процессора
🧪 Универсальные
- sar — сводка активности системы за период
- dstat — объединяет iostat, vmstat и другие
- dmesg — логи ядра с момента загрузки
- /proc — псевдо-ФС с данными ядра
- sysdig — мощный инструмент анализа всей системы
#Linux #Sysadmin #DevOps #Инфраструктура #ДиагностикаСистемы #perf #ftrace #stap #bcc #BPF #strace #tcpdump #Wireshark #htop #sar #dstat #LinuxTools #ITРоссии
🧰 Самые популярные команды Linux (для новичков и не только)
Если вы делаете первые шаги в Linux или часто работаете с серверами — эта шпаргалка для вас.
Вот список самых востребованных команд в повседневной работе.
🔍 Работа с файлами и папками
-
-
-
-
-
-
-
-
-
-
🛡 Управление правами
-
-
-
-
💻 Система и процессы
-
-
-
-
-
-
-
🌐 Работа с сетью
-
-
-
-
-
🔍 Поиск и сравнение
-
-
-
💡 Совет: сохраните этот список — он станет вашим быстрым гидом по Linux.
#Linux #КомандыLinux #Terminal #Sysadmin #DevOps #Ubuntu #Debian #НачинающийАйтишник #ITРоссии #Bash #Shell #LinuxTips #Sysadmin
Если вы делаете первые шаги в Linux или часто работаете с серверами — эта шпаргалка для вас.
Вот список самых востребованных команд в повседневной работе.
🔍 Работа с файлами и папками
-
ls
— посмотреть содержимое каталога -
cd
— перейти в нужную папку -
pwd
— узнать текущий путь -
mkdir
— создать директорию -
touch
— создать пустой файл -
cp
— скопировать файл или папку -
mv
— переместить или переименовать -
rm
— удалить файл (rm -r
— удалить папку) -
cat
— посмотреть содержимое файла -
nano
или vim
— открыть текстовый редактор в терминале 🛡 Управление правами
-
chmod
— изменить права доступа к файлу -
chown
— изменить владельца файла -
su
— переключиться на другого пользователя -
sudo
— выполнить команду от имени суперпользователя 💻 Система и процессы
-
top
или htop
— посмотреть загрузку системы и процессы -
ps
— список активных процессов -
kill
или pkill
— остановить процесс -
df
— проверить свободное место на дисках -
du
— узнать размер файлов и папок -
free
— информация о памяти -
uptime
— время работы системы 🌐 Работа с сетью
-
ping
— проверить соединение с адресом -
ifconfig
или ip a
— посмотреть информацию о сетевых интерфейсах -
curl
и wget
— загрузить данные из интернета -
ssh
— подключиться к удалённому серверу -
scp
— передать файлы между устройствами через SSH 🔍 Поиск и сравнение
-
find
— найти файлы по заданным условиям -
grep
— искать текст внутри файлов -
diff
— сравнить два файла 💡 Совет: сохраните этот список — он станет вашим быстрым гидом по Linux.
#Linux #КомандыLinux #Terminal #Sysadmin #DevOps #Ubuntu #Debian #НачинающийАйтишник #ITРоссии #Bash #Shell #LinuxTips #Sysadmin
🔐 chattr в Linux: как защитить файлы от изменений
Иногда нужно надёжно защитить файл от случайного удаления, редактирования или перезаписи. Для этого в Linux есть мощный инструмент —
🧰 Что такое chattr?
chattr (change attribute) — команда, которая позволяет устанавливать специальные атрибуты файлов в файловой системе ext* (ext2/ext3/ext4).
Атрибуты работают даже если права доступа разрешают запись!
🔐 Полезные атрибуты:
+i - Файл неизменяемый: нельзя редактировать, удалять, переименовывать даже root
+a - Только добавление: можно дописывать данные, но нельзя менять существующие
+s - При удалении данные стираются насовсем (secure deletion)
+u - Сохраняет удалённое содержимое (undelete)
📌 Примеры использования:
🚫 Сделать файл неизменным:
📎 Разрешить только добавление данных:
🔍 Посмотреть текущие атрибуты:
🗑 Убрать защиту:
💡 Когда использовать?
- Защита важных файлов от удаления/изменения
- Блокировка правки конфигов (например,
- Логирование только на добавление (лог-файлы)
- Безопасная очистка (secure delete)
⚠️ Важно:
Для изменения атрибутов нужны права root.
#Linux #chattr #ФайловаяСистема #Безопасность #Sysadmin #DevOps #ЗащитаДанных #LinuxTips #ITРоссии #LinuxTools #ITРоссии
Иногда нужно надёжно защитить файл от случайного удаления, редактирования или перезаписи. Для этого в Linux есть мощный инструмент —
chattr
.🧰 Что такое chattr?
chattr (change attribute) — команда, которая позволяет устанавливать специальные атрибуты файлов в файловой системе ext* (ext2/ext3/ext4).
Атрибуты работают даже если права доступа разрешают запись!
🔐 Полезные атрибуты:
+i - Файл неизменяемый: нельзя редактировать, удалять, переименовывать даже root
+a - Только добавление: можно дописывать данные, но нельзя менять существующие
+s - При удалении данные стираются насовсем (secure deletion)
+u - Сохраняет удалённое содержимое (undelete)
📌 Примеры использования:
🚫 Сделать файл неизменным:
sudo chattr +i filename
📎 Разрешить только добавление данных:
sudo chattr +a logfile.log
🔍 Посмотреть текущие атрибуты:
lsattr filename
🗑 Убрать защиту:
sudo chattr -i filename
💡 Когда использовать?
- Защита важных файлов от удаления/изменения
- Блокировка правки конфигов (например,
/etc/passwd
)- Логирование только на добавление (лог-файлы)
- Безопасная очистка (secure delete)
⚠️ Важно:
Для изменения атрибутов нужны права root.
#Linux #chattr #ФайловаяСистема #Безопасность #Sysadmin #DevOps #ЗащитаДанных #LinuxTips #ITРоссии #LinuxTools #ITРоссии
🐳 Docker Compose: простой способ запуска контейнеров
Docker Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker. Он упрощает управление несколькими сервисами через один YAML-файл.
📥 Установка Docker Compose
Или скачайте последнюю версию:
Проверьте установку:
📄 Файл
Пример минимального файла:
С помощью этого файла запустится Nginx, который будет отдавать файлы из локальной папки
▶️ Основные команды
- Запуск контейнеров:
- Остановка:
- Просмотр логов:
- Пересоздание образов:
- Посмотреть запущенные сервисы:
💡 Зачем использовать?
- Удобное управление несколькими контейнерами
- Простая настройка портов, томов, сетей
- Легко делиться конфигурацией с командой
- Подходит для dev-окружений и прототипов
#Docker #DockerCompose #DevOps #Контейнеризация #Linux #LinuxTips #LinuxBites #Sysadmin #Nginx #ITРоссии #Cloud #Backend
Docker Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker. Он упрощает управление несколькими сервисами через один YAML-файл.
📥 Установка Docker Compose
sudo apt update && sudo apt install docker-compose
Или скачайте последнюю версию:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Проверьте установку:
docker-compose --version
📄 Файл
docker-compose.yml
Пример минимального файла:
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
С помощью этого файла запустится Nginx, который будет отдавать файлы из локальной папки
html
.▶️ Основные команды
- Запуск контейнеров:
docker-compose up -d
- Остановка:
docker-compose down
- Просмотр логов:
docker-compose logs -f
- Пересоздание образов:
docker-compose build
- Посмотреть запущенные сервисы:
docker-compose ps
💡 Зачем использовать?
- Удобное управление несколькими контейнерами
- Простая настройка портов, томов, сетей
- Легко делиться конфигурацией с командой
- Подходит для dev-окружений и прототипов
#Docker #DockerCompose #DevOps #Контейнеризация #Linux #LinuxTips #LinuxBites #Sysadmin #Nginx #ITРоссии #Cloud #Backend
🧪 Docker Compose: Примеры простых проектов для старта
Практика — лучший способ освоить Docker Compose!
Разберём 5 реальных примеров, которые можно запустить за 5 минут. Копируйте код, экспериментируйте, адаптируйте под свои задачи.
🌐 1. Nginx + Статический сайт
Задача: Развернуть веб-сервер с вашим HTML/CSS.
Как:
1. Создайте папку
2. Добавьте
3. Запустите:
#Docker #Nginx #WebDev #DevOps
🐍 2. Python + PostgreSQL
Задача: Запуск Python-приложения с базой данных.
Как:
1. В
2. Убедитесь, что в папке есть
3. Запустите:
#Python #PostgreSQL #Backend #DockerCompose
🧱 3. Node.js + MongoDB
Задача: API на Node.js с подключением к MongoDB.
Как:
1.
2. В
3. Запустите:
#NodeJS #MongoDB #APIdev #DevOps
🧾 4. WordPress + MySQL
Задача: Быстро развернуть блог или сайт на WordPress.
Как:
1.
2. Запустите:
#WordPress #MySQL #CMS #Docker
🧩 5. React Frontend + Express Backend
Задача: Full-stack приложение с фронтендом и бэкендом.
Как:
1.
2. Убедитесь, что в папках
3. Запустите:
#React #Express #FullStack #CloudDev
💡 Попробуйте любой пример!
Копируйте код, измените под свои нужды, запустите и убедитесь, как легко управлять микросервисами через Docker Compose.
#DockerCompose #DevOps #Cloud #Tech
Практика — лучший способ освоить Docker Compose!
Разберём 5 реальных примеров, которые можно запустить за 5 минут. Копируйте код, экспериментируйте, адаптируйте под свои задачи.
🌐 1. Nginx + Статический сайт
Задача: Развернуть веб-сервер с вашим HTML/CSS.
Как:
1. Создайте папку
my-site
и положите туда HTML-файлы. 2. Добавьте
docker-compose.yml
: services:
web:
image: nginx
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
3. Запустите:
docker-compose up
. Откройте браузер → localhost:8080
. #Docker #Nginx #WebDev #DevOps
🐍 2. Python + PostgreSQL
Задача: Запуск Python-приложения с базой данных.
Как:
1. В
docker-compose.yml
добавьте: services:
app:
build: .
ports:
- "5000:5000"
environment:
- DB_HOST=db
db:
image: postgres
environment:
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=secret
2. Убедитесь, что в папке есть
Dockerfile
для Python (например, с Flask или FastAPI). 3. Запустите:
docker-compose up --build
. #Python #PostgreSQL #Backend #DockerCompose
🧱 3. Node.js + MongoDB
Задача: API на Node.js с подключением к MongoDB.
Как:
1.
docker-compose.yml
: services:
node-app:
build: .
ports:
- "3000:3000"
environment:
- MONGO_URI=mongodb://mongo:27017/test
mongo:
image: mongo
ports:
- "27017:27017"
2. В
Dockerfile
опишите сборку Node-приложения. 3. Запустите:
docker-compose up
. #NodeJS #MongoDB #APIdev #DevOps
🧾 4. WordPress + MySQL
Задача: Быстро развернуть блог или сайт на WordPress.
Как:
1.
docker-compose.yml
: services:
wordpress:
image: wordpress
ports:
- "8000:80"
environment:
- WORDPRESS_DB_HOST=mysql
- WORDPRESS_DB_USER=admin
- WORDPRESS_DB_PASSWORD=secret
mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=secret
- MYSQL_DATABASE=wordpress
2. Запустите:
docker-compose up
. Перейдите на localhost:8000
и завершите установку WordPress. #WordPress #MySQL #CMS #Docker
🧩 5. React Frontend + Express Backend
Задача: Full-stack приложение с фронтендом и бэкендом.
Как:
1.
docker-compose.yml
: services:
frontend:
build: ./frontend
ports:
- "3000:3000"
backend:
build: ./backend
ports:
- "5000:5000"
environment:
- API_URL=http://backend:5000
2. Убедитесь, что в папках
frontend
и backend
есть свои Dockerfile
. 3. Запустите:
docker-compose up --build
. #React #Express #FullStack #CloudDev
💡 Попробуйте любой пример!
Копируйте код, измените под свои нужды, запустите и убедитесь, как легко управлять микросервисами через Docker Compose.
#DockerCompose #DevOps #Cloud #Tech
🧩 Docker Compose: React Frontend + Express Backend в одном посте
Создайте full-stack приложение за 10 минут!
Разберём, как связать React (фронт) и Express (бэк) через Docker Compose.
Структура проекта:
Что сделаем:
1. Создадим
2. Настроим
3. Запустим всё одной командой.
🧱 Dockerfile для React
В папке
Что делает:
- Берёт Node.js образ.
- Устанавливает зависимости.
- Запускает React-приложение на порту 3000.
🧱 Dockerfile для Express
В папке
Что делает:
- Использует тот же Node.js образ.
- Запускает Express API на порту 5000.
🧪 docker-compose.yml
В корне проекта:
Важно:
-
🚀 Запуск и проверка
1. Перейдите в корень проекта и выполните:
2. Откройте браузер:
- Frontend:
- Backend:
Если всё работает:
- Фронтенд получает данные от бэкенда через
⚠️ Распространённые ошибки
1. CORS:
- Добавьте
2. Пути к файлам:
- Убедитесь, что
3. Сеть:
- Проверьте, что бэкенд доступен по
💡 Советы для продвинутых:
- Используйте
- Добавьте
- Разделите
Попробуйте запустить проект!
Копируйте код, адаптируйте под себя и экспериментируйте.
#Docker #React #Express #DevOps #DockerCompose #FullStack
Создайте full-stack приложение за 10 минут!
Разберём, как связать React (фронт) и Express (бэк) через Docker Compose.
Структура проекта:
my-app/
├── frontend/ # React-приложение
└── backend/ # Express API
Что сделаем:
1. Создадим
Dockerfile
для React и Express. 2. Настроим
docker-compose.yml
для связи сервисов. 3. Запустим всё одной командой.
🧱 Dockerfile для React
В папке
frontend/
: FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
Что делает:
- Берёт Node.js образ.
- Устанавливает зависимости.
- Запускает React-приложение на порту 3000.
🧱 Dockerfile для Express
В папке
backend/
: FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 5000
CMD ["node", "server.js"]
Что делает:
- Использует тот же Node.js образ.
- Запускает Express API на порту 5000.
🧪 docker-compose.yml
В корне проекта:
version: '3.8'
services:
frontend:
build: ./frontend
ports:
- "3000:3000"
environment:
- API_URL=http://backend:5000
backend:
build: ./backend
ports:
- "5000:5000"
environment:
- PORT=5000
Важно:
-
http://backend:5000
— адрес бэкенда для фронтенда (через внутреннюю сеть Docker). 🚀 Запуск и проверка
1. Перейдите в корень проекта и выполните:
docker-compose up --build
2. Откройте браузер:
- Frontend:
http://localhost:3000
- Backend:
http://localhost:5000/api/hello
Если всё работает:
- Фронтенд получает данные от бэкенда через
http://backend:5000
. ⚠️ Распространённые ошибки
1. CORS:
- Добавьте
cors()
в Express: const cors = require('cors');
app.use(cors({ origin: 'http://frontend:3000' }));
2. Пути к файлам:
- Убедитесь, что
COPY . .
в Dockerfile копирует нужные файлы. 3. Сеть:
- Проверьте, что бэкенд доступен по
http://backend:5000
(имя сервиса из docker-compose.yml
). 💡 Советы для продвинутых:
- Используйте
.dockerignore
, чтобы исключить node_modules
. - Добавьте
volumes
для горячей перезагрузки: volumes:
- ./frontend:/app
- Разделите
docker-compose.dev.yml
и docker-compose.prod.yml
для разных сред. Попробуйте запустить проект!
Копируйте код, адаптируйте под себя и экспериментируйте.
#Docker #React #Express #DevOps #DockerCompose #FullStack
👍1
🛠 Оптимизация `.bashrc`: Как сделать терминал быстрее и удобнее
Ваш `.bashrc` — это секретное оружие в бою с хаосом в терминале.
Научитесь оптимизировать его за 5 шагов!
💡 1. Алиасы: Меньше слов, больше дела
Создавайте короткие команды для частых задач.
Пример:
Результат:
- Быстрее пишете команды.
- Не запоминаете сложные конструкции.
🔁 2. Функции: Повторяй меньше, делай больше
Замените часто используемые скрипты на функции.
Пример:
Как использовать:
🗂 3. Организация: Делите на секции
Разделите
Пример структуры:
Плюс: Легко находите нужное, не теряетесь в коде.
⚡️ 4. Ускорьте загрузку терминала
Избегайте тяжёлых команд при старте.
Советы:
- Используйте
- Отключайте ненужные функции/алиасы.
- Не запускайте сторонние скрипты без необходимости.
🎨 5. Цвета и подсказки: Сделайте терминал красивым
Добавьте цвета и полезную информацию в строку ввода.
Пример:
Что получите:
- Удобные подсказки (цвета, имя пользователя, путь).
- Меньше ошибок при работе в разных директориях.
🧹 6. Чистка и резервные копии
- Удалите дубликаты и неиспользуемые команды.
- Сохраните резервную копию:
- Автоматизируйте обновление:
Добавьте в
✅ Итог
Оптимизированный `.bashrc` — это:
- Быстрый старт терминала.
- Удобство работы.
- Меньше ошибок.
Попробуйте!
Копируйте примеры, адаптируйте под себя и наслаждайтесь улучшенным workflow.
#Bash #Linux #Terminal #DevOps #Productivity #Optimization #Linuxtips #Bashscripting #Devlife #Hackerlife #Sysadmin 🚀
Ваш `.bashrc` — это секретное оружие в бою с хаосом в терминале.
Научитесь оптимизировать его за 5 шагов!
💡 1. Алиасы: Меньше слов, больше дела
Создавайте короткие команды для частых задач.
Пример:
alias ll='ls -la'
alias update='sudo apt update && sudo apt upgrade -y'
alias glog='git log --oneline'
Результат:
- Быстрее пишете команды.
- Не запоминаете сложные конструкции.
🔁 2. Функции: Повторяй меньше, делай больше
Замените часто используемые скрипты на функции.
Пример:
function mkcd() {
mkdir -p "$1" && cd "$1"
}
Как использовать:
mkcd my_new_folder # Создаст папку и сразу перейдет в неё!
🗂 3. Организация: Делите на секции
Разделите
.bashrc
на блоки для удобства. Пример структуры:
# === Aliases ===
alias ll='ls -la'
# === Git ===
alias glog='git log --oneline'
# === Functions ===
function mkcd() { ... }
# === Environment ===
export PATH="$HOME/.local/bin:$PATH"
Плюс: Легко находите нужное, не теряетесь в коде.
⚡️ 4. Ускорьте загрузку терминала
Избегайте тяжёлых команд при старте.
Советы:
- Используйте
[[ -x "$(command -v git)" ]] && alias glog='...'
— проверка существования программы. - Отключайте ненужные функции/алиасы.
- Не запускайте сторонние скрипты без необходимости.
🎨 5. Цвета и подсказки: Сделайте терминал красивым
Добавьте цвета и полезную информацию в строку ввода.
Пример:
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
Что получите:
- Удобные подсказки (цвета, имя пользователя, путь).
- Меньше ошибок при работе в разных директориях.
🧹 6. Чистка и резервные копии
- Удалите дубликаты и неиспользуемые команды.
- Сохраните резервную копию:
cp ~/.bashrc ~/.bashrc_backup
- Автоматизируйте обновление:
Добавьте в
.bashrc
автозапуск source ~/.bashrc
после сохранения: alias reload='source ~/.bashrc'
✅ Итог
Оптимизированный `.bashrc` — это:
- Быстрый старт терминала.
- Удобство работы.
- Меньше ошибок.
Попробуйте!
Копируйте примеры, адаптируйте под себя и наслаждайтесь улучшенным workflow.
#Bash #Linux #Terminal #DevOps #Productivity #Optimization #Linuxtips #Bashscripting #Devlife #Hackerlife #Sysadmin 🚀
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Как работает Linux 🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
⚙️ Устаревшие команды Linux и их современные аналоги
Время меняется, и даже в мире Linux некоторые команды устаревают.
Разберём 10 устаревших команд и их современные замены, чтобы вы могли работать быстрее и эффективнее.
🧹 1. `ifconfig` → `ip`
Зачем менять?
Пример:
🌐 2. `netstat` → `ss` или `ip`
Зачем менять?
Пример:
📊 3. `ps aux` → `top` или `htop`
Зачем менять?
Пример:
⏱️ 4. `uptime` → `w` или `who`
Зачем менять? Показывает больше информации о текущих пользователях.
Пример:
🛜 5. `nm-tool` / `iwconfig` → `nmcli`
Зачем менять?
Пример:
📡 6. `arp` → `ip neigh` или `arping`
Зачем менять?
Пример:
🚦 7. `route` → `ip route`
Зачем менять?
Пример:
📈 8. `watch ifconfig` → `watch -n 1 ip addr` или `nethogs`
Зачем менять?
Пример:
📋 9. `last` → `journalctl` (для systemd)
Зачем менять?
Пример:
🗂 10. `fdisk` → `parted` или `gdisk`
Зачем менять?
Пример:
✅ Итог
Современные аналоги:
- Быстрее, мощнее, поддерживают новые стандарты.
- Интегрируются с systemd, IPv6, GPT.
Обновляйте свои скрипты и привычки!
Linux развивается — не отставайте! 🚀
#Linux #DevOps #SysAdmin #Terminal #Productivity #LinuxBites #Terminal #Bash 🔧
Время меняется, и даже в мире Linux некоторые команды устаревают.
Разберём 10 устаревших команд и их современные замены, чтобы вы могли работать быстрее и эффективнее.
🧹 1. `ifconfig` → `ip`
Зачем менять?
ifconfig
устарел, а ip
— часть пакета iproute2
, поддерживающего современные сети. Пример:
# Вывод информации о интерфейсах
ip addr show # Вместо ifconfig
# Включение/выключение интерфейса
ip link set eth0 up # Вместо ifconfig eth0 up
🌐 2. `netstat` → `ss` или `ip`
Зачем менять?
netstat
медленнее и не поддерживает современные протоколы. Пример:
# Показать все TCP-соединения
ss -tuln # Вместо netstat -tuln
# Статистика сетевых интерфейсов
ip -s link # Вместо netstat -i
📊 3. `ps aux` → `top` или `htop`
Зачем менять?
htop
— интерактивный и визуально удобный аналог. Пример:
htop # Вместо ps aux
# Если htop не установлен:
sudo apt install htop
⏱️ 4. `uptime` → `w` или `who`
Зачем менять? Показывает больше информации о текущих пользователях.
Пример:
w # Покажет загрузку системы и активных пользователей
who # Только список пользователей
🛜 5. `nm-tool` / `iwconfig` → `nmcli`
Зачем менять?
NetworkManager
управляет сетью через nmcli
. Пример:
# Список подключений
nmcli connection show
# Подключение к Wi-Fi
nmcli device wifi connect "Имя_сети" password "Пароль"
📡 6. `arp` → `ip neigh` или `arping`
Зачем менять?
arp
устарел, а ip neigh
работает с IPv6. Пример:
ip neigh # Просмотр ARP-таблицы
arping -I eth0 -c 3 192.168.1.1 # Проверка доступности хоста
🚦 7. `route` → `ip route`
Зачем менять?
ip route
поддерживает современные маршрутизаторы. Пример:
ip route show # Вместо route -n
ip route add 192.168.2.0/24 via 192.168.1.1 # Добавление маршрута
📈 8. `watch ifconfig` → `watch -n 1 ip addr` или `nethogs`
Зачем менять?
nethogs
показывает трафик по процессам. Пример:
# Мониторинг сетевых интерфейсов
watch -n 1 ip addr show
# Трафик по процессам
sudo nethogs eth0
📋 9. `last` → `journalctl` (для systemd)
Зачем менять?
journalctl
хранит логи в бинарном формате. Пример:
journalctl -b -1 # Логи предыдущей сессии (вместо last reboot)
🗂 10. `fdisk` → `parted` или `gdisk`
Зачем менять?
parted
поддерживает GPT, а gdisk
— безопасную работу с дисками. Пример:
parted /dev/sda print # Информация о разделах
gdisk /dev/sda # Для создания GPT-разделов
✅ Итог
Современные аналоги:
- Быстрее, мощнее, поддерживают новые стандарты.
- Интегрируются с systemd, IPv6, GPT.
Обновляйте свои скрипты и привычки!
Linux развивается — не отставайте! 🚀
#Linux #DevOps #SysAdmin #Terminal #Productivity #LinuxBites #Terminal #Bash 🔧
🔥1
🧱 Что такое LVM в Linux?
LVM (Logical Volume Manager) — это гибкая система управления дисками в Linux.
Позволяет объединять физические диски в пулы и создавать логические тома, которые можно легко расширять, сжимать и резервировать.
🔧 Основные понятия:
🔹 PV (Physical Volume) — физический диск или раздел
🔹 VG (Volume Group) — пул из одного или нескольких PV
🔹 LV (Logical Volume) — логический том, как обычный раздел
📌 Представьте: вы купили ещё диск — и просто добавили его в общий "резервуар" свободного места.
💡 Преимущества LVM:
✅ Гибкое управление дисками
✅ Возможность увеличения/уменьшения томов
✅ Снапшоты для бэкапов и тестирования
✅ Объединение дисков разных размеров и типов
🛠 Пример использования:
1. Создаем Physical Volume:
2. Создаем Volume Group:
3. Создаем Logical Volume:
4. Форматируем и монтируем:
🔁 Расширить LV? Легко!
(В новых версиях
💡 Используйте LVM, если:
- Нужно гибко управлять дисками
- Хотите без перезагрузок менять размер разделов
- Делаете снапшоты для бэкапов или тестовой среды
#Linux #LVM #Sysadmin #DevOps #Хранилище #ДисковоеУправление #ITРоссии #ФайловыеСистемы #Storage #VG #LV #PV
LVM (Logical Volume Manager) — это гибкая система управления дисками в Linux.
Позволяет объединять физические диски в пулы и создавать логические тома, которые можно легко расширять, сжимать и резервировать.
🔧 Основные понятия:
🔹 PV (Physical Volume) — физический диск или раздел
🔹 VG (Volume Group) — пул из одного или нескольких PV
🔹 LV (Logical Volume) — логический том, как обычный раздел
📌 Представьте: вы купили ещё диск — и просто добавили его в общий "резервуар" свободного места.
💡 Преимущества LVM:
✅ Гибкое управление дисками
✅ Возможность увеличения/уменьшения томов
✅ Снапшоты для бэкапов и тестирования
✅ Объединение дисков разных размеров и типов
🛠 Пример использования:
1. Создаем Physical Volume:
pvcreate /dev/sdb /dev/sdc
2. Создаем Volume Group:
vgcreate vg_data /dev/sdb /dev/sdc
3. Создаем Logical Volume:
lvcreate -L 20G -n lv_home vg_data
4. Форматируем и монтируем:
mkfs.ext4 /dev/vg_data/lv_home
mount /dev/vg_data/lv_home /home
🔁 Расширить LV? Легко!
lvextend -L +5G /dev/vg_data/lv_home
resize2fs /dev/vg_data/lv_home
(В новых версиях
xfs_growfs
, если файловая система XFS)💡 Используйте LVM, если:
- Нужно гибко управлять дисками
- Хотите без перезагрузок менять размер разделов
- Делаете снапшоты для бэкапов или тестовой среды
#Linux #LVM #Sysadmin #DevOps #Хранилище #ДисковоеУправление #ITРоссии #ФайловыеСистемы #Storage #VG #LV #PV
🔥1
📌 Шпаргалка по команде
Команда
🖥 Просмотр информации
Показывает информацию обо всех сетевых интерфейсах (IP-адреса, MAC и т.д.)
Отображает статус физических и виртуальных сетевых интерфейсов
Показать только IPv4-адреса
Показать только IPv6-адреса
🛠 Управление интерфейсами
Включить интерфейс
Выключить интерфейс
Назначить IP-адрес интерфейсу
Удалить IP-адрес у интерфейса
🌐 Маршруты и таблицы маршрутизации
Показать таблицу маршрутизации
Добавить маршрут через шлюз
Удалить маршрут
Очистить кэш маршрутов
📦 ARP и соседи
Показать ARP-таблицу (кэш соседей)
Добавить статическую ARP-запись
Удалить ARP-запись
🧪 Примеры использования
✅ Проверить IP и статус интерфейсов:
✅ Включить Wi-Fi интерфейс:
✅ Добавить адрес и проверить:
💡 Полезные советы
🔹 Используйте
🔹 Добавляйте
🔹 Команды
🔚 Заключение
Команда
Сохраните эту шпаргалку себе в закладки! 📚
И не забудьте поделиться с коллегами 👨💻👩💻
#Linux #Network #Shell #Terminal #SysAdmin #DevOps #Терминал #Команды #LinuxTips #ipCommand #Шпаргалка #TelegramLinux
🐧🔥💻🚀
ip
в Linux — быстро и понятно 🐧Команда
ip
— это мощный инструмент для настройки сетевых интерфейсов, маршрутов и туннелей в Linux. Она заменила устаревшие ifconfig
, route
и arp
. Ниже приведена удобная шпаргалка с часто используемыми командами ip
.🖥 Просмотр информации
ip a
# или
ip addr show
Показывает информацию обо всех сетевых интерфейсах (IP-адреса, MAC и т.д.)
ip link show
Отображает статус физических и виртуальных сетевых интерфейсов
ip -4 a
Показать только IPv4-адреса
ip -6 a
Показать только IPv6-адреса
🛠 Управление интерфейсами
ip link set dev eth0 up
Включить интерфейс
eth0
ip link set dev eth0 down
Выключить интерфейс
eth0
ip addr add 192.168.1.100/24 dev eth0
Назначить IP-адрес интерфейсу
ip addr del 192.168.1.100/24 dev eth0
Удалить IP-адрес у интерфейса
🌐 Маршруты и таблицы маршрутизации
ip route show
Показать таблицу маршрутизации
ip route add 192.168.2.0/24 via 192.168.1.1
Добавить маршрут через шлюз
ip route del 192.168.2.0/24
Удалить маршрут
ip route flush cache
Очистить кэш маршрутов
📦 ARP и соседи
ip neigh show
Показать ARP-таблицу (кэш соседей)
ip neigh add 192.168.1.50 lladdr 00:11:22:33:44:55 dev eth0 nud permanent
Добавить статическую ARP-запись
ip neigh del 192.168.1.50 dev eth0
Удалить ARP-запись
🧪 Примеры использования
✅ Проверить IP и статус интерфейсов:
ip a
✅ Включить Wi-Fi интерфейс:
ip link set dev wlan0 up
✅ Добавить адрес и проверить:
ip addr add 10.0.0.1/24 dev eth0
ip a show eth0
💡 Полезные советы
🔹 Используйте
tab
для автодополнения команд 🔹 Добавляйте
sudo
перед командой, если нужны права root 🔹 Команды
ip
можно использовать в скриптах для автоматизации🔚 Заключение
Команда
ip
— незаменимый инструмент для любого системного администратора и DevOps-инженера. Знание её базовых возможностей позволяет быстрее диагностировать и исправлять сетевые проблемы.Сохраните эту шпаргалку себе в закладки! 📚
И не забудьте поделиться с коллегами 👨💻👩💻
#Linux #Network #Shell #Terminal #SysAdmin #DevOps #Терминал #Команды #LinuxTips #ipCommand #Шпаргалка #TelegramLinux
🐧🔥💻🚀
🔥1
🔐 Права доступа к файлам в Linux: Ownership и Permission — просто о сложном 🐧
Если вы только начинаете свой путь в мире Linux, понимание системы прав доступа поможет вам управлять безопасностью и доступом к файлам. Два ключевых понятия здесь — Ownership (владение) и Permission (разрешения).
Кто кому принадлежит? 👤
В Linux каждый файл и каталог имеет владельца и связан с группой. Это важно для контроля доступа:
- Owner (Владелец) — пользователь, создавший файл или получивший права на него.
- Group (Группа) — набор пользователей, которым предоставлены одинаковые права на файл.
- Other (Другие) — все остальные, кто не является владельцем или участником группы.
Что можно делать с файлом? 🔐
У файла или каталога могут быть три типа разрешений:
- Read (r) — чтение содержимого файла или просмотра списка файлов в директории.
- Write (w) — возможность редактировать, удалять или добавлять файлы.
- Execute (x) — запуск файла как программы или скрипта, либо переход внутрь директории.
Как это выглядит на практике? 📋
Например, если вы выполните команду
Здесь:
-
-
-
Разберём права подробнее:
-
-
-
💡 Полезные команды:
🔹 Посмотреть права и владельца:
🔹 Изменить владельца:
🔹 Изменить права доступа:
🧠 Зачем это нужно знать?
Права доступа — основа безопасности в Linux. Они помогают защитить важные данные от случайного изменения, а также контролировать, кто может выполнять те или иные действия.
📌 Сохраняйте себе и делитесь с коллегами!
Изучайте Linux шаг за шагом — легко, интересно и по делу 📚🐧
#Linux #Permissions #Filesystem #Terminal #SysAdmin #DevOps #chmod #chown #Security #LinuxTips #TelegramLinux 🐧🔥💻🚀
Если вы только начинаете свой путь в мире Linux, понимание системы прав доступа поможет вам управлять безопасностью и доступом к файлам. Два ключевых понятия здесь — Ownership (владение) и Permission (разрешения).
Кто кому принадлежит? 👤
В Linux каждый файл и каталог имеет владельца и связан с группой. Это важно для контроля доступа:
- Owner (Владелец) — пользователь, создавший файл или получивший права на него.
- Group (Группа) — набор пользователей, которым предоставлены одинаковые права на файл.
- Other (Другие) — все остальные, кто не является владельцем или участником группы.
Что можно делать с файлом? 🔐
У файла или каталога могут быть три типа разрешений:
- Read (r) — чтение содержимого файла или просмотра списка файлов в директории.
- Write (w) — возможность редактировать, удалять или добавлять файлы.
- Execute (x) — запуск файла как программы или скрипта, либо переход внутрь директории.
Как это выглядит на практике? 📋
Например, если вы выполните команду
ls -l
, вы увидите что-то вроде:-rw-r--r-- 1 user group 0 Apr 5 12:00 file.txt
Здесь:
-
-rw-r--r--
— это права доступа.-
user
— владелец файла.-
group
— группа, связанная с файлом.Разберём права подробнее:
-
rw-
— Владелец может читать и записывать.-
r--
— Участники группы могут только читать.-
r--
— Все остальные тоже могут только читать.💡 Полезные команды:
🔹 Посмотреть права и владельца:
ls -l
🔹 Изменить владельца:
sudo chown user:group filename
🔹 Изменить права доступа:
chmod [права] filename
🧠 Зачем это нужно знать?
Права доступа — основа безопасности в Linux. Они помогают защитить важные данные от случайного изменения, а также контролировать, кто может выполнять те или иные действия.
📌 Сохраняйте себе и делитесь с коллегами!
Изучайте Linux шаг за шагом — легко, интересно и по делу 📚🐧
#Linux #Permissions #Filesystem #Terminal #SysAdmin #DevOps #chmod #chown #Security #LinuxTips #TelegramLinux 🐧🔥💻🚀
🔥1
🐋 Что такое Hadolint и почему он незаменим для Docker-разработчиков 🐧
Если вы работаете с Docker и пишете Dockerfile, то обязательно должны знать про Hadolint — это мощный и умный линтер, который помогает соблюдать лучшие практики при сборке контейнеров.
🔍 Что делает Hadolint?
Hadolint анализирует ваш
✅ Соблюдение стиля и стандартов
✅ Потенциальные ошибки
✅ Небезопасные или неэффективные команды
✅ Использование устаревших инструкций
✅ Несоответствия в метаданных (labels)
И даже запускает ShellCheck внутри инструкций
🛠 Как использовать Hadolint?
Вы можете запустить его локально или через Docker:
Также можно игнорировать определённые правила:
⚙️ Конфигурация и настройка
Hadolint поддерживает конфигурационные файлы
🔹 Указать, какие правила игнорировать
🔹 Задать уровень строгости (error/warning/info)
🔹 Добавить список доверенных реестров (
🔹 Настроить обязательные метки (
🔹 Включить/выключить строгую проверку меток
Пример конфига:
🧩 Поддержка разных оболочек
Hadolint умеет работать с разными shell:
🔹 Bash
🔹 PowerShell
🔹 Cmd
🔹 Sh
Для Windows-образов добавьте комментарий:
Это отключит лишние предупреждения о bash-специфичных правилах.
🚫 Игнорирование правил
Можно временно отключать проверки прямо в Dockerfile:
Или игнорировать правило глобально для всего файла:
🏷 Проверка меток (Labels)
Hadolint может проверять, чтобы в Dockerfile были указаны нужные вам метаданные:
Или через конфиг:
📦 Интеграции
Hadolint легко интегрируется:
🔹 В CI/CD (GitHub Actions, GitLab CI, Jenkins и др.)
🔹 В редакторы кода (VS Code, Vim, Emacs и др.)
🔹 Как pre-commit хук
🔹 В IDE для автоматической проверки при написании Dockerfile
🧠 Почему стоит использовать Hadolint?
🔹 Повышает качество и безопасность Docker-образов
🔹 Обнаруживает скрытые проблемы ещё до сборки
🔹 Упрощает соблюдение стандартов в команде
🔹 Автоматизирует контроль качества Dockerfile
📌 Сохраняйте себе и делитесь с коллегами!
Изучайте инструменты, которые делают работу с контейнерами удобнее и надёжнее 📚🐋
#Docker #Containerization #DevOps #CI_CD #Linux #Cloud #SysAdmin #Hadolint #Dockerfile #Linting #CodeQuality #TelegramLinux 🐳🔥🐧🚀
Если вы работаете с Docker и пишете Dockerfile, то обязательно должны знать про Hadolint — это мощный и умный линтер, который помогает соблюдать лучшие практики при сборке контейнеров.
🔍 Что делает Hadolint?
Hadolint анализирует ваш
Dockerfile
и проверяет:✅ Соблюдение стиля и стандартов
✅ Потенциальные ошибки
✅ Небезопасные или неэффективные команды
✅ Использование устаревших инструкций
✅ Несоответствия в метаданных (labels)
И даже запускает ShellCheck внутри инструкций
RUN
, чтобы проверить Bash-скрипты!🛠 Как использовать Hadolint?
Вы можете запустить его локально или через Docker:
# Локальный запуск
hadolint Dockerfile
# Через Docker
docker run --rm -i hadolint/hadolint < Dockerfile
Также можно игнорировать определённые правила:
hadolint --ignore DL3006 --ignore SC1081 Dockerfile
⚙️ Конфигурация и настройка
Hadolint поддерживает конфигурационные файлы
.hadolint.yaml
, где можно:🔹 Указать, какие правила игнорировать
🔹 Задать уровень строгости (error/warning/info)
🔹 Добавить список доверенных реестров (
trustedRegistries
) 🔹 Настроить обязательные метки (
label-schema
) 🔹 Включить/выключить строгую проверку меток
Пример конфига:
ignored:
- DL3000
- SC1010
trustedRegistries:
- docker.io
- my-company.com:5000
override:
warning:
- DL3042
- DL3033
🧩 Поддержка разных оболочек
Hadolint умеет работать с разными shell:
🔹 Bash
🔹 PowerShell
🔹 Cmd
🔹 Sh
Для Windows-образов добавьте комментарий:
# hadolint shell=powershell
Это отключит лишние предупреждения о bash-специфичных правилах.
🚫 Игнорирование правил
Можно временно отключать проверки прямо в Dockerfile:
# hadolint ignore=DL3006
FROM ubuntu
Или игнорировать правило глобально для всего файла:
# hadolint global ignore=DL3003,SC1035
FROM ubuntu
🏷 Проверка меток (Labels)
Hadolint может проверять, чтобы в Dockerfile были указаны нужные вам метаданные:
hadolint --require-label author:text --require-label version:semver Dockerfile
Или через конфиг:
label-schema:
author: text
version: semver
strict-labels: true
📦 Интеграции
Hadolint легко интегрируется:
🔹 В CI/CD (GitHub Actions, GitLab CI, Jenkins и др.)
🔹 В редакторы кода (VS Code, Vim, Emacs и др.)
🔹 Как pre-commit хук
🔹 В IDE для автоматической проверки при написании Dockerfile
🧠 Почему стоит использовать Hadolint?
🔹 Повышает качество и безопасность Docker-образов
🔹 Обнаруживает скрытые проблемы ещё до сборки
🔹 Упрощает соблюдение стандартов в команде
🔹 Автоматизирует контроль качества Dockerfile
📌 Сохраняйте себе и делитесь с коллегами!
Изучайте инструменты, которые делают работу с контейнерами удобнее и надёжнее 📚🐋
#Docker #Containerization #DevOps #CI_CD #Linux #Cloud #SysAdmin #Hadolint #Dockerfile #Linting #CodeQuality #TelegramLinux 🐳🔥🐧🚀
🔥1
🚀 Linux Storage Stack: Как ваш файл превращается в биты? 💾
Разберем магию Linux Storage Stack – ту самую "кухню", которая превращает вашу команду cat meme.jpg в пиксели на экране. Это многослойный бутерброд 🥪 в ядре Linux, отвечающий за ВСЁ, что касается хранения данных!
📦 Представьте цепочку доставки:
1. Вы (Приложение 🖼️): Говорите: "Хочу этот файл!" (read()/write()).
2. Почтовое отделение (VFS 🏣): Единый фронт-офис! Принимает запросы ЛЮБОГО типа (локальный диск, сеть, флешка) и передает нужной "службе доставки" (ФС).
3. Служба доставки (Файловая система 📂): ext4, XFS, Btrfs, ZFS и др. Организуют данные на "складе" (диске): где лежит файл, его размер, права. Используют Page Cache (📦 Кэш страниц) – быстрый склад-буфер в ОЗУ, чтобы не бегать на медленный диск каждый раз!
4. Логистический центр (Блочный уровень 🚚): Получает заказы "доставить такие-то блоки". Его главный герой – I/O Scheduler (⏱️ Планировщик)! Он:
* Сортирует запросы (особенно важно для HDD 🧩, чтобы головка меньше "бегала").
* Объединяет мелкие запросы в крупные (эффективнее!).
* Выбирает стратегию: deadline, bfq (честное распределение), none (для быстрых NVMe ⚡).
5. Драйверы грузовиков (Драйверы устройств 🚛): Превращают заказы в команды для железа: nvme (для SSD NVMe), sd (для SATA/SAS), dm (Device Mapper – основа LVM 🧩 (объединяй диски, меняй размеры на лету!), dm-crypt (🔐 шифрование), dm-thin (тонкое выделение)).
6. Склад (Железо 🖴): HDD, SSD (SATA/NVMe), NVMe, сетевые хранилища (iSCSI). Физические биты!
🔧 Зачем ВАМ это знать? 🤔
Тупит диск? Поймете, где искать пробку: в ФС, планировщике, драйвере или самом диске? 🐢➡️
Выбираете ФС? ext4, XFS, Btrfs, ZFS – у каждой свои суперсилы! 💥
Настраиваете сервер? Оптимизация кэша, планировщика, LVM – ключ к производительности! 🔑
Работаете с LVM, RAID, шифрованием?Device Mapper (dm) – ваш фундамент! 🏗️
Любите копать глубже? Это основа для понимания контейнеров (overlayfs), Ceph и других крутых штук! 🐳
🛠️ Инструменты для детектива:
iostat, iotop, blktrace, bpftrace/bcc, lvm, lsblk, fio – ваши лучшие друзья в анализе I/O.
💡 Вывод:
Linux Storage Stack – невидимый, но мощный мотор вашей системы! Понимая его слои (VFS, ФС, кэш, планировщик, драйверы, LVM), вы:
✅ Лучше оптимизируете систему.
✅ Быстрее решаете проблемы.
✅ Осознаннее выбираете технологии.
#Linux #Storage #StorageStack #ФайловаяСистема #VFS #Ext4 #XFS #Btrfs #ZFS #LVM #DeviceMapper #IOScheduler #PageCache #Kernel #SysAdmin #DevOps #Железо #Оптимизация
Разберем магию Linux Storage Stack – ту самую "кухню", которая превращает вашу команду cat meme.jpg в пиксели на экране. Это многослойный бутерброд 🥪 в ядре Linux, отвечающий за ВСЁ, что касается хранения данных!
📦 Представьте цепочку доставки:
1. Вы (Приложение 🖼️): Говорите: "Хочу этот файл!" (read()/write()).
2. Почтовое отделение (VFS 🏣): Единый фронт-офис! Принимает запросы ЛЮБОГО типа (локальный диск, сеть, флешка) и передает нужной "службе доставки" (ФС).
3. Служба доставки (Файловая система 📂): ext4, XFS, Btrfs, ZFS и др. Организуют данные на "складе" (диске): где лежит файл, его размер, права. Используют Page Cache (📦 Кэш страниц) – быстрый склад-буфер в ОЗУ, чтобы не бегать на медленный диск каждый раз!
4. Логистический центр (Блочный уровень 🚚): Получает заказы "доставить такие-то блоки". Его главный герой – I/O Scheduler (⏱️ Планировщик)! Он:
* Сортирует запросы (особенно важно для HDD 🧩, чтобы головка меньше "бегала").
* Объединяет мелкие запросы в крупные (эффективнее!).
* Выбирает стратегию: deadline, bfq (честное распределение), none (для быстрых NVMe ⚡).
5. Драйверы грузовиков (Драйверы устройств 🚛): Превращают заказы в команды для железа: nvme (для SSD NVMe), sd (для SATA/SAS), dm (Device Mapper – основа LVM 🧩 (объединяй диски, меняй размеры на лету!), dm-crypt (🔐 шифрование), dm-thin (тонкое выделение)).
6. Склад (Железо 🖴): HDD, SSD (SATA/NVMe), NVMe, сетевые хранилища (iSCSI). Физические биты!
🔧 Зачем ВАМ это знать? 🤔
Тупит диск? Поймете, где искать пробку: в ФС, планировщике, драйвере или самом диске? 🐢➡️
Выбираете ФС? ext4, XFS, Btrfs, ZFS – у каждой свои суперсилы! 💥
Настраиваете сервер? Оптимизация кэша, планировщика, LVM – ключ к производительности! 🔑
Работаете с LVM, RAID, шифрованием?Device Mapper (dm) – ваш фундамент! 🏗️
Любите копать глубже? Это основа для понимания контейнеров (overlayfs), Ceph и других крутых штук! 🐳
🛠️ Инструменты для детектива:
iostat, iotop, blktrace, bpftrace/bcc, lvm, lsblk, fio – ваши лучшие друзья в анализе I/O.
💡 Вывод:
Linux Storage Stack – невидимый, но мощный мотор вашей системы! Понимая его слои (VFS, ФС, кэш, планировщик, драйверы, LVM), вы:
✅ Лучше оптимизируете систему.
✅ Быстрее решаете проблемы.
✅ Осознаннее выбираете технологии.
#Linux #Storage #StorageStack #ФайловаяСистема #VFS #Ext4 #XFS #Btrfs #ZFS #LVM #DeviceMapper #IOScheduler #PageCache #Kernel #SysAdmin #DevOps #Железо #Оптимизация
🔥1
Как я настраивал переключение раскладки на Ubuntu 24.04 =)
Привет, друзья! 🐧
Решил поделиться своей небольшой историей о том, как я боролся с настройками клавиатуры в Ubuntu 24.04. После установки системы столкнулся с проблемой - привычное переключение раскладки через Alt+Shift не работало. Как же так...
Первый подход.
Попробовал самый очевидный путь - через настройки системы. Открыл Settings → Keyboard → Keyboard Shortcuts → Typing. Нашел пункт "Switch to next input source" и попытался установить Alt+Shift. Вроде бы все просто, но не сработало.
Переходим в терминал.
Подумав, вспомнил про gsettings и решил покопаться в консоли:
Тут меня ожидал первый подвох - система ругалась на синтаксис. Забыл кавычки! Правильная команда выглядит так:
Важный момент с правами, настройки ввода хранятся для каждого пользователя отдельно.
Проверка результата
Чтобы убедиться, что все сработало, выполним:
И получим ожидаемый результат:
Итог: у меня снова работает переключение раскладки через Alt+Shift! 🎉
#Ubuntu #Linux #Настройки #AltShift #GNOME #LinuxTips
Привет, друзья! 🐧
Решил поделиться своей небольшой историей о том, как я боролся с настройками клавиатуры в Ubuntu 24.04. После установки системы столкнулся с проблемой - привычное переключение раскладки через Alt+Shift не работало. Как же так...
Первый подход.
Попробовал самый очевидный путь - через настройки системы. Открыл Settings → Keyboard → Keyboard Shortcuts → Typing. Нашел пункт "Switch to next input source" и попытался установить Alt+Shift. Вроде бы все просто, но не сработало.
Переходим в терминал.
Подумав, вспомнил про gsettings и решил покопаться в консоли:
gsettings set org.gnome.desktop.wm.keybindings switch-input-source ['<Alt>Shift_L']
Тут меня ожидал первый подвох - система ругалась на синтаксис. Забыл кавычки! Правильная команда выглядит так:
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Alt>Shift_L']"
gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Shift>Alt_L']"
Важный момент с правами, настройки ввода хранятся для каждого пользователя отдельно.
Проверка результата
Чтобы убедиться, что все сработало, выполним:
gsettings get org.gnome.desktop.wm.keybindings switch-input-source
И получим ожидаемый результат:
['<Alt>Shift_L']
Итог: у меня снова работает переключение раскладки через Alt+Shift! 🎉
#Ubuntu #Linux #Настройки #AltShift #GNOME #LinuxTips
🔥1
🔥 Воскрешаем флешку: магия fdisk и mkfs в Linux!
32 ГБ не должны пропадать зря!
👾 На выходных нашел старую флешку на 32 ГБ — Ubuntu её видела, но не монтировала «неизвестная файловая система». Расскажу, как вернуть её к жизни двумя терминальными командами!
🛠 Шаг 1: fdisk — хирург для дисков
Это утилита для управления разделами диска. Что умеет:
✅ Просмотр таблицы разделов
✅ Создание/удаление разделов
✅ Изменение типов разделов
Мой кейс:
1️⃣ Смотрим подключенные диски:
Нашел флешку как /dev/sda (без разделов!)
2️⃣ Запускаем «операцию»:
💡 Главные команды fdisk:
- p — показать разделы
- n — создать раздел (я сделал primary на весь диск → /dev/sda1)
- w — записать изменения (осторожно!)
- q — выйти без сохранения
✨ Шаг 2: mkfs — создаем файловую систему
Раздел есть — теперь нужно его «форматировать». Тут вступает mkfs (make filesystem).
Выбираем тип ФС:
🔷 NTFS (для Windows/Linux):
Флаг -L задает метку диска
🔷 Другие варианты:
✅ Результат:
После mkfs Ubuntu автоматически смонтировала флешку! Проверим:
⚠️ Важно!
Правила безопасности:
1. ТРОЙНАЯ ПРОВЕРКА устройства в fdisk -l перед запуском!
2. sudo mkfs безвозвратно уничтожает данные на разделе.
3. Не путайте /dev/sda (весь диск) и /dev/sda1 (раздел)!
🤖 Альтернативы:
- GParted — графический редактор разделов
- Disks (встроен в Ubuntu) — форматирование в пару кликов
... но fdisk + mkfs незаменимы в скриптах и для тонкой настройки!
💎 Итог:
Эти инструменты дают полный контроль над дисками:
- fdisk — «лепит» разделы 🗂️
- mkfs — наполняет их файловой системой 💾
Пользуйтесь осторожно, и ваши флешки будут жить вечно! 💪
#Linux #Terminal #fdisk #mkfs #Ubuntu #Железо #Администрирование #Советы #SysAdmin #FAT32 #ext4 #NTFS
32 ГБ не должны пропадать зря!
👾 На выходных нашел старую флешку на 32 ГБ — Ubuntu её видела, но не монтировала «неизвестная файловая система». Расскажу, как вернуть её к жизни двумя терминальными командами!
🛠 Шаг 1: fdisk — хирург для дисков
Это утилита для управления разделами диска. Что умеет:
✅ Просмотр таблицы разделов
✅ Создание/удаление разделов
✅ Изменение типов разделов
Мой кейс:
1️⃣ Смотрим подключенные диски:
sudo fdisk -l
Нашел флешку как /dev/sda (без разделов!)
2️⃣ Запускаем «операцию»:
sudo fdisk /dev/sda
💡 Главные команды fdisk:
- p — показать разделы
- n — создать раздел (я сделал primary на весь диск → /dev/sda1)
- w — записать изменения (осторожно!)
- q — выйти без сохранения
✨ Шаг 2: mkfs — создаем файловую систему
Раздел есть — теперь нужно его «форматировать». Тут вступает mkfs (make filesystem).
Выбираем тип ФС:
🔷 NTFS (для Windows/Linux):
sudo mkfs.ntfs -L "MyUSB32GB" /dev/sda1
Флаг -L задает метку диска
🔷 Другие варианты:
# FAT32 (для любой ОС)
sudo mkfs.fat -F32 /dev/sda1
# ext4 (только Linux)
sudo mkfs.ext4 /dev/sda1
✅ Результат:
После mkfs Ubuntu автоматически смонтировала флешку! Проверим:
df -h
⚠️ Важно!
Правила безопасности:
1. ТРОЙНАЯ ПРОВЕРКА устройства в fdisk -l перед запуском!
2. sudo mkfs безвозвратно уничтожает данные на разделе.
3. Не путайте /dev/sda (весь диск) и /dev/sda1 (раздел)!
🤖 Альтернативы:
- GParted — графический редактор разделов
- Disks (встроен в Ubuntu) — форматирование в пару кликов
... но fdisk + mkfs незаменимы в скриптах и для тонкой настройки!
💎 Итог:
Эти инструменты дают полный контроль над дисками:
- fdisk — «лепит» разделы 🗂️
- mkfs — наполняет их файловой системой 💾
Пользуйтесь осторожно, и ваши флешки будут жить вечно! 💪
#Linux #Terminal #fdisk #mkfs #Ubuntu #Железо #Администрирование #Советы #SysAdmin #FAT32 #ext4 #NTFS
🔥1
🎵 Умные оповещения в терминале Linux
Каждый линуксоид сталкивался с ситуацией: запускаешь долгую команду, отходишь на кухню за кофе, а потом возвращаешься и... забыл, что вообще запускал. А может команда завершилась с ошибкой? Придется возвращаться к терминалу и проверять.
Представляю вашему вниманию супер-алиас `alert`, который решает эту проблему раз и навсегда!
🚀 Что делает этот алиас?
🎯 Как это работает?
Алиас делает сразу несколько полезных вещей:
1. Проверяет результат выполнения
-
-
- Любое другое число = ошибка ❌
2. Показывает уведомление
- Зеленый чек для успешных операций
- Красный крест для ошибок
- Текст команды в уведомлении
3. Проигрывает звук
- Мелодичный звон при успехе
- Низкий гудок при ошибках
💡 Примеры использования
🔧 Установка
Добавьте алиас в ваш
1. Откройте файл:
2. Добавьте алиас в конец файла
3. Перезагрузите настройки:
🎵 Звуки по умолчанию
GNOME звуки:
- Успех:
- Ошибка:
Можно заменить на другие звуки:
🛠 Требования
Для работы необходимы пакеты:
⚡️ Преимущества
✅ Экономия времени - не нужно возвращаться к терминалу
✅ Визуальные оповещения - уведомления на рабочем столе
✅ Звуковые сигналы - слышно даже из другой комнаты
✅ Интеллектуальная обработка - разные сигналы для успеха и ошибок
✅ История команд - показывает, что именно выполнялось
🎯 Когда особенно полезно?
- 🕐 Долгие операции - компиляция, архивация, копирование
- 🔄 Автоматизированные скрипты - бэкапы, синхронизация
- 📊 Системные задачи - обновления, мониторинг
- 🔍 Поиск и анализ - grep, find, логи
- 🛠 Разработка - сборка проектов, тесты
💡 Лайфхаки
Этот алиас
#Linux #Bash #Terminal #Ubuntu #Productivity #DevTools #SysAdmin #CommandLine #Automation #Shell #Development #Tips #Workflow #GNOME #OpenSource
Каждый линуксоид сталкивался с ситуацией: запускаешь долгую команду, отходишь на кухню за кофе, а потом возвращаешься и... забыл, что вообще запускал. А может команда завершилась с ошибкой? Придется возвращаться к терминалу и проверять.
Представляю вашему вниманию супер-алиас `alert`, который решает эту проблему раз и навсегда!
🚀 Что делает этот алиас?
alias alert='
if [ $? = 0 ]; then
# Успех
notify-send --urgency=normal -i terminal "✅ Готово" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert.*$//'\'')";
paplay /usr/share/sounds/gnome/default/alerts/string.ogg 2>/dev/null;
else
# Ошибка
notify-send --urgency=critical -i error "❌ Ошибка" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert.*$//'\'')";
paplay /usr/share/sounds/gnome/default/alerts/hum.ogg 2>/dev/null;
fi'
🎯 Как это работает?
Алиас делает сразу несколько полезных вещей:
1. Проверяет результат выполнения
-
$?
- код возврата последней команды-
0
= успех ✅- Любое другое число = ошибка ❌
2. Показывает уведомление
- Зеленый чек для успешных операций
- Красный крест для ошибок
- Текст команды в уведомлении
3. Проигрывает звук
- Мелодичный звон при успехе
- Низкий гудок при ошибках
💡 Примеры использования
# Компиляция проекта
make clean && make all; alert
# Обновление системы
sudo apt update && sudo apt upgrade; alert
# Архивация больших файлов
tar -czf backup.tar.gz /home/user; alert
# Поиск по файлам
grep -r "важный_текст" /var/log/; alert
# Синхронизация данных
rsync -av /source/ /backup/; alert
🔧 Установка
Добавьте алиас в ваш
~/.bashrc
:1. Откройте файл:
nano ~/.bashrc
2. Добавьте алиас в конец файла
3. Перезагрузите настройки:
source ~/.bashrc
🎵 Звуки по умолчанию
GNOME звуки:
- Успех:
/usr/share/sounds/gnome/default/alerts/string.ogg
- Ошибка:
/usr/share/sounds/gnome/default/alerts/hum.ogg
Можно заменить на другие звуки:
# Ubuntu звуки
/usr/share/sounds/ubuntu/notifications/Amsterdam.ogg
/usr/share/sounds/ubuntu/stereo/dialog-error.oga
# Или свои файлы
~/sounds/success.mp3
~/sounds/error.wav
🛠 Требования
Для работы необходимы пакеты:
# Уведомления
sudo apt install libnotify-bin
# Звуковые утилиты
sudo apt install pulseaudio-utils
⚡️ Преимущества
✅ Экономия времени - не нужно возвращаться к терминалу
✅ Визуальные оповещения - уведомления на рабочем столе
✅ Звуковые сигналы - слышно даже из другой комнаты
✅ Интеллектуальная обработка - разные сигналы для успеха и ошибок
✅ История команд - показывает, что именно выполнялось
🎯 Когда особенно полезно?
- 🕐 Долгие операции - компиляция, архивация, копирование
- 🔄 Автоматизированные скрипты - бэкапы, синхронизация
- 📊 Системные задачи - обновления, мониторинг
- 🔍 Поиск и анализ - grep, find, логи
- 🛠 Разработка - сборка проектов, тесты
💡 Лайфхаки
# Добавьте в конец часто используемых команд
make; alert
git push; alert
docker build .; alert
# Используйте в цепочках команд
command1 && command2; alert
command1 || command2; alert
# Для фоновых процессов
nohup long-process & alert
Этот алиас
alert
- настоящий must-have для каждого разработчика и системного администратора. Он превращает терминал из "черного ящика" в интерактивный инструмент, который держит вас в курсе всех событий.#Linux #Bash #Terminal #Ubuntu #Productivity #DevTools #SysAdmin #CommandLine #Automation #Shell #Development #Tips #Workflow #GNOME #OpenSource
🔥1
🛠
Однако! С парой настроек он превращается в настоящего помощника. Давайте сделаем
🔧 Базовые горячие клавиши (на всякий случай)
-
-
-
-
-
-
-
> Подсказки всегда внизу экрана — просто смотри, что написано.
🎨 Подсветка синтаксиса — добавляем цвета
По умолчанию всё серое. Но можно включить подсветку для
Копируем и сохраняем репозиторий:
После этого просто подключите всё в конфиге — и ваш код заиграет новыми красками. Попробуйте — и вы не захотите возвращаться к серому тексту.
🔢 Номера строк — больше не потеряетеcь
Добавьте в конфиг:
Теперь вы всегда будете знать, на какой строке находитесь — особенно полезно при редактировании конфигов или логов. Попробуйте включить, и сразу почувствуете разницу.
🚫 Отключаем перенос строк
Решение простое:
Теперь строки не будут переноситься — только при прокрутке. Попробуйте, и вы оцените удобство.
⚙️ Умные отступы и работа с Tab
Хотите, чтобы
Теперь:
-
- При переходе на новую строку — отступ сохраняется
- Код остаётся чистым и красивым
Попробуйте использовать эти настройки — и ваш код станет аккуратнее.
🖱 Поддержка мыши — да, это реально!
Добавьте:
Теперь можно:
- Кликать мышкой, чтобы поставить курсор
- Выделять текст
- Прокручивать колесиком
> Работает даже в SSH, если терминал поддерживает (например, в
Попробуйте — и вы удивитесь, насколько приятнее стало работать в терминале.
📂 Работа с несколькими файлами
Можно открывать сразу несколько файлов:
Переключайтесь между ними:
-
-
Попробуйте использовать это при редактировании связанных конфигов — очень удобно.
📋 Как копировать в
Официальной команды
1.
2. Переместите курсор — выделите нужный фрагмент
3.
4.
Да, не интуитивно, зато работает! Попробуйте пару раз — и вы привыкнете.
🚀 Алиас для удобства
Добавьте в
Где:
-
-
После
🧩 Готовый конфиг
Создайте файл:
И вставьте туда это:
Попробуйте эти настройки — и вы удивитесь, насколько приятнее станет работать в терминале.
#nano #Linux #Терминал #DevOps #Программирование #Лайфхаки #РаботаСТерминалом #НастройкаLinux #ТекстовыйРедактор #СистемаДляЧайников #Код #Ubuntu #ТехноЛайф #LinuxTips
nano
простой, понятный… но, честно? По умолчанию — немного скучноват. Однако! С парой настроек он превращается в настоящего помощника. Давайте сделаем
nano
удобнее — за 5 минут! 💥🔧 Базовые горячие клавиши (на всякий случай)
-
Ctrl+O
— сохранить 📥 -
Ctrl+X
— выйти 🚪 -
Ctrl+W
— поиск 🔍 -
Ctrl+\
— замена 🔄 -
Ctrl+K
— вырезать строку ✂️ -
Ctrl+U
— вставить 📋 -
Ctrl+C
— показать номер строки и позицию курсора 📍 > Подсказки всегда внизу экрана — просто смотри, что написано.
🎨 Подсветка синтаксиса — добавляем цвета
По умолчанию всё серое. Но можно включить подсветку для
.py
, .sh
, .html
, .conf
и других файлов.Копируем и сохраняем репозиторий:
git clone https://github.com/scopatz/nanorc.git ~/.nano
После этого просто подключите всё в конфиге — и ваш код заиграет новыми красками. Попробуйте — и вы не захотите возвращаться к серому тексту.
🔢 Номера строк — больше не потеряетеcь
Добавьте в конфиг:
set linenumbers
Теперь вы всегда будете знать, на какой строке находитесь — особенно полезно при редактировании конфигов или логов. Попробуйте включить, и сразу почувствуете разницу.
🚫 Отключаем перенос строк
nano
по умолчанию «ломает» длинные строки — это раздражает, особенно при работе с логами или кодом.Решение простое:
set nowrap
Теперь строки не будут переноситься — только при прокрутке. Попробуйте, и вы оцените удобство.
⚙️ Умные отступы и работа с Tab
Хотите, чтобы
Tab
вставлял пробелы (как в Python)? Добавьте:set tabsize 4
set tabstospaces
set autoindent
Теперь:
-
Tab
= 4 пробела (или сколько укажете) - При переходе на новую строку — отступ сохраняется
- Код остаётся чистым и красивым
Попробуйте использовать эти настройки — и ваш код станет аккуратнее.
🖱 Поддержка мыши — да, это реально!
Добавьте:
set mouse
Теперь можно:
- Кликать мышкой, чтобы поставить курсор
- Выделять текст
- Прокручивать колесиком
> Работает даже в SSH, если терминал поддерживает (например, в
tmux
).Попробуйте — и вы удивитесь, насколько приятнее стало работать в терминале.
📂 Работа с несколькими файлами
Можно открывать сразу несколько файлов:
nano file1.txt file2.txt
Переключайтесь между ними:
-
Alt+>
— следующий файл -
Alt+<
— предыдущий Попробуйте использовать это при редактировании связанных конфигов — очень удобно.
📋 Как копировать в
nano
?Официальной команды
Ctrl+C
нет, но можно:1.
Ctrl+6
— начать выделение 2. Переместите курсор — выделите нужный фрагмент
3.
Alt+6
— скопировать 4.
Ctrl+U
— вставить Да, не интуитивно, зато работает! Попробуйте пару раз — и вы привыкнете.
🚀 Алиас для удобства
Добавьте в
~/.bashrc
:alias nano='nano -w -i'
Где:
-
-w
— отключает перенос строк -
-i
— включает умный отступ при Enter После
source ~/.bashrc
— nano
будет запускаться уже с полезными настройками. Попробуйте — и вы не захотите работать по-старому.🧩 Готовый конфиг
~/.nanorc
Создайте файл:
nano ~/.nanorc
И вставьте туда это:
# Подключаем подсветку синтаксиса (если установлена)
include ~/.nano/*.nanorc
# Показывать номера строк
set linenumbers
# Не переносить строки
set nowrap
# Размер табуляции и замена на пробелы
set tabsize 4
set tabstospaces
# Автоматический отступ
set autoindent
# Поддержка мыши
set mouse
# Разрешить регулярные выражения в поиске
set regexp
# Автосохранение резервной копии файла
set backup
# Показывать непечатаемые символы (пробелы, табы)
set whitespace "·»"
Попробуйте эти настройки — и вы удивитесь, насколько приятнее станет работать в терминале.
#nano #Linux #Терминал #DevOps #Программирование #Лайфхаки #РаботаСТерминалом #НастройкаLinux #ТекстовыйРедактор #СистемаДляЧайников #Код #Ubuntu #ТехноЛайф #LinuxTips
❤1