Linux‑Админ 101: от терминала до мастера

- Опубликовано в Администрирование

Введение

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

В этой статье мы разберём основные шаги, которые помогут вам перейти от простого пользователя терминала к полноценному Linux‑администратору. Мы будем использовать Markdown‑форматирование: заголовки, списки, кодовые блоки и таблицы, чтобы материал был как информативным, так и удобочитаемым.


Основная часть

1. Знакомство с терминалом

Терминал – это главный инструмент администрирования Linux. Он позволяет выполнять команды, управлять файлами, просматривать логи и многое другое.

# Проверяем версию ядра
uname -r

# Список файлов в текущей директории
ls -la

Подсказка: Используйте автодополнение (Tab) для ускорения работы с командами.

2. Управление пакетами

В разных дистрибутивах используются разные менеджеры пакетов: apt (Debian/Ubuntu), yum/dnf (CentOS/RHEL/Fedora), pacman (Arch).

Дистрибутив Менеджер пакетов Пример установки
Ubuntu apt sudo apt install nginx
CentOS 7 yum sudo yum install httpd
Fedora dnf sudo dnf install apache
Arch pacman sudo pacman -S nginx
# Обновляем список пакетов и сами пакеты (Ubuntu)
sudo apt update && sudo apt upgrade

# Устанавливаем пакет (CentOS 7)
sudo yum install vim

3. Конфигурирование сетевых интерфейсов

Ниже пример настройки статического IP‑адреса в Ubuntu через файл /etc/netplan/01-netcfg.yaml.

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

После изменения файла применяем:

sudo netplan apply

4. Работа с пользователями и группами

Создание пользователя, добавление в группу и установка прав.

# Добавляем нового пользователя
sudo useradd -m -s /bin/bash alice

# Устанавливаем пароль
sudo passwd alice

# Добавляем пользователя в группу sudo
sudo usermod -aG sudo alice

Права доступа можно управлять через chmod и chown.

# Делаем файл исполняемым для всех
chmod +x script.sh

# Меняем владельца файла
chown root:root /etc/ssh/sshd_config

5. Управление службами с systemd

Система управления сервисами systemd позволяет контролировать запуск, остановку и статус услуг.

# Проверка статуса службы nginx
sudo systemctl status nginx

# Перезапуск службы
sudo systemctl restart nginx

# Включение автозапуска при загрузке
sudo systemctl enable nginx

6. Мониторинг и логирование

Основные инструменты: top, htop, journalctl, syslog.

# Просмотр системного журнала за последние 100 строк
sudo journalctl -n 100

# В реальном времени отслеживаем нагрузку на CPU
top

7. Безопасность и бэкапы

  • SSH: Настройте ключи, отключите логин по паролю.
  • Firewall: ufw (Ubuntu) или firewalld (CentOS).
  • Резервные копии: rsync, tar, облачные решения.
# Открываем порт 22 в UFW
sudo ufw allow 22/tcp

# Создаём резервную копию каталога /var/www
tar -czf www_backup_$(date +%F).tar.gz /var/www

Заключение

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

Помните: чем больше вы экспериментируете в тестовой среде, тем увереннее будете работать на продакшене. Удачи в ваших Linux‑приключениях!

Linux через BASH: секреты эффективной автоматизации!

- Опубликовано в BASH и скрипты

Введение

Приветствуем в "Пингвиньи BASHни"! Если вы уже уверенно ориентируетесь в Linux или только начинаете свой путь в этом мире операционных систем с открытым исходным кодом, то обязательно столкнетесь с терминалом. Без терминала и его возможностей работа с Linux часто бывает неэффективной. Однако многие пользователи до сих пор выполняют команды вручную, даже если это однообразные задачи. Сегодня мы поговорим о том, как использовать BASH для автоматизации рутинных операций и повышения вашей производительности в Linux.

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


Основная часть

Что такое BASH-скрипты и зачем они нужны?

BASH (Bourne Again SHell) — это интерпретируемый язык программирования, используемый в большинстве дистрибутивов Linux. Скрипт на BASH позволяет автоматизировать выполнение последовательности команд в терминале.

Основные преимущества использования скриптов:

  • Экономия времени: Несколько повторяющихся задач можно выполнять одной командой.
  • Меньше ошибок: Ручное выполнение может привести к невнимательным ошибкам, а автоматизация их устраняет.

Пример простого скрипта:

#!/bin/bash

echo "Автоматизируем установку пакетов!"
sudo apt update && sudo apt install nginx -y

Этот скрипт обновляет список пакетов иInstalls Nginx без подтверждения. Не забудьте выполнить команду chmod +x script.sh, чтобы сделать его исполняемым.

Как создать свой первый скрипт

  1. Откройте текстовый редактор, например, nano.
  2. Начните с указания интерпретатора BASH: #!/bin/bash.
  3. Затем добавьте команды, которые вы хотите выполнять.
  4. Сохраните файл и сделайте его исполняемым.

Более подробный пример:

#!/bin/bash

# Проверка наличия необходимого пользователя
if id "username" &>/dev/null; then
    echo "Пользователь username уже существует"
else
    echo "Создаем нового пользователя..."
    sudo useradd -m -s /bin/bash username
fi

Этот скрипт проверяет наличие пользователя и создает его при отсутствии. Не забудьте заменить username на нужное имя.

Встроенные команды BASH

BASH предоставляет множество полезных команд для автоматизации:

  • for: Цикл для работы с набором значений.
  • if: Условные конструкции для проверки выполнения задач.
  • case: Многоуровневые условия выбора.
  • И многое другое!

Пример цикла for для массовой замены файлов:

#!/bin/bash

# Замена .txt на .md в текущей директории и её поддиректориях
find ./ -type f -name "*.txt" | while read file; do
    new_name="${file%*.txt}*.md"
    mv -- "$file" "$new_name"
done

Советы по улучшению продуктивности

  • Использование переменных: Это позволяет избежать дублирования кода.

    # Пример с переменными
    app="nginx"
    echo "Installs $app..."
    sudo apt install "$app" -y
    
  • Труки (tips) и лайфхаки:

    • Ctrl+R для поиска команд в истории терминала.
    • Использование функций BASH для группировки повторяющихся операций.

Заключение

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

Надеюсь, эта статья была полезной!

10 команд терминала, которые сделают вас чуть менее "noob"

- Опубликовано в Основы Linux

Введение

Вы только что открыли терминал и видите перед собой чёрное окно с мигающим курсором? Не паникуйте! Терминал — это не страшно, а даже удобно. Вот 10 базовых команд, с которых стоит начать, чтобы не тыкать в GUI как потерянный пингвин.

(P.S. Все команды проверены — ваш компьютер не взорвётся. Но sudo всё равно используйте осторожно.)


1. pwd — «Где я?»

Что делает: Показывает текущую директорию (Print Working Directory).
Зачем: Чтобы не заблудиться в своих же файлах.

pwd 
Вывод: /home/ваш_пользователь

2. ls — «Что тут лежит?»

Что делает: Выводит список файлов и папок в текущей директории.
Лайфхак:
- ls -l — подробный список (права, владелец, размер).
- ls -a — показать скрытые файлы (те, что начинаются с точки).

ls
Вывод: Документы Загрузки Картинки  

3. cd — «Перейди туда»

Что делает: Меняет текущую директорию (Change Directory).
Примеры:

cd ~/Загрузки  Перейти в папку "Загрузки"  
cd ..          На уровень выше  
cd /           В корень системы (осторожно!)  

4. mkdir — «Создай папку»

Что делает: Создаёт новую директорию.
Фишка: Можно создать несколько вложенных папок сразу:

mkdir -p проект/{документы,скрипты,бэкапы}  

5. touch — «Создай файл»

Что делает: Создаёт пустой файл (или обновляет дату изменения существующего).

touch readme.txt  

6. cp — «Скопируй это»

Что делает: Копирует файлы и папки.
Важно: Для папок нужен флаг -r (рекурсивно).

cp файл.txt копия_файла.txt  
cp -r папка/ новая_папка/  

7. mv — «Перемести или переименуй»

Что делает: Перемещает файлы/папки или переименовывает их.

mv старый.txt новый.txt      Переименование  
mv файл.txt ~/Документы/    Перемещение  

8. rm — «Удали это (навсегда!)»

Что делает: Удаляет файлы и папки. Без корзины!
Осторожно:
- rm -r папка — удалить папку и всё внутри.
- rm -f — принудительно (без подтверждения).

(Запомните: sudo rm -rf / — это смерть. Не делайте так!)

9. cat — «Покажи содержимое»

Что делает: Выводит содержимое файла в терминал.

cat файл.txt  

Альтернативы:
- less файл.txt — для больших файлов (листать клавишами ↑↓).
- head -n 5 файл.txt — показать первые 5 строк.

10. man — «Справка»

Что делает: Показывает официальную документацию по команде.

man ls  Справка по команде ls  

Если man пугает:
- команда --help — краткая справка.


Бонус для смелых
Попробуйте ввести это:

neofetch  

…и ваш терминал покажет красивую информацию о системе. Если команды нет — установите её например на debian схожие дистрибутивы (sudo apt install neofetch).