Командная оболочка (Shell)
Командная оболочка, или просто Shell, представляет собой интерфейс взаимодействия пользователя с операционной системой Linux. Этот мощный инструмент позволяет выполнять различные задачи, управлять файлами, процессами и настройками системы, используя текстовые команды.
Основные команды:
- ls - список файлов и директорий:
ls
- cd - смена текущей директории:
cd /путь/к/директории
- cp - копирование файлов:
cp исходный_файл целевая_директория
- mv - перемещение или переименование файлов:
mv старый_файл новый_путь
- rm - удаление файлов:
rm файл
- mkdir - создание новой директории:
mkdir новая_директория
- grep - поиск по содержимому файлов:
grep "искомая_строка" файл
- chmod - изменение прав доступа к файлам:
chmod права_доступа файл
- ps - отображение текущих процессов:
ps aux
- kill - завершение процесса:
kill PID_процесса
Shell также поддерживает переменные, циклы, условные операторы, что позволяет создавать скрипты для автоматизации задач.
Знание командной оболочки - ключевой навык для эффективной работы в Linux, обеспечивая пользователю полный контроль над системой.
Управление пакетами (Package Management)
Одной из фундаментальных особенностей операционных систем Linux является система управления пакетами, обеспечивающая удобное установление, обновление и удаление программного обеспечения. Это существенный элемент обеспечения стабильности и безопасности системы. В различных дистрибутивах Linux используются различные инструменты для управления пакетами, но концепции остаются общими.
Основные утилиты управления пакетами
- apt (Advanced Package Tool)
В основном используется в дистрибутивах на базе Debian, таких как Ubuntu. Команды:
-
sudo apt update
- обновление списка пакетов. -
sudo apt install <пакет>
- установка пакета. -
sudo apt upgrade
- обновление всех установленных пакетов. -
sudo apt remove <пакет>
- удаление пакета.
- yum (Yellowdog Updater Modified)
Преимущественно применяется в Red Hat и его производных. Команды:
-
sudo yum check-update
- проверка наличия обновлений. -
sudo yum install <пакет>
- установка пакета. -
sudo yum update
- обновление всех пакетов. -
sudo yum remove <пакет>
- удаление пакета.
- pacman
Используется в Arch Linux и его производных. Команды:
-
sudo pacman -Syu
- полное обновление системы. -
sudo pacman -S <пакет>
- установка пакета. -
sudo pacman -R <пакет>
- удаление пакета.
Общие принципы
-
Обновление системы: Регулярно обновляйте списки пакетов (
update
) и сами пакеты (upgrade
). Это поддерживает систему в актуальном состоянии. -
Установка пакетов: Используйте соответствующую команду для установки нового программного обеспечения. Например,
apt install
илиyum install
. -
Удаление пакетов: При необходимости удаляйте программы через
remove
илиuninstall
для освобождения места на диске.
Файловая система (File System)
В мире Linux файловая система – это основной пилотирующий инструмент для организации и хранения данных. Здесь каждый файл и каталог имеют свое место и предназначение. Давайте ознакомимся с несколькими ключевыми утилитами, с которыми вы столкнетесь при работе с файловой системой в Linux.
-
ls (List): Эта команда – ваш проводник по каталогам. Просто введите
ls
, и вы увидите список файлов и подкаталогов в текущем рабочем каталоге.
ls
-
cd (Change Directory): Переходите между каталогами с помощью
cd
. Например, чтобы перейти в каталог "Documents", введите:
cd Documents
- cp (Copy) и mv (Move): Команды для копирования и перемещения файлов соответственно. Например, чтобы скопировать файл "file.txt" в каталог "Backup", используйте:
cp file.txt Backup/
Чтобы переместить файл в тот же каталог, используйте mv
:
mv file.txt Backup/
- rm (Remove): Удаление файлов. Внимание! Эта команда безвозвратно удаляет файл. Будьте осторожны.
rm file.txt
- mkdir (Make Directory): Создание новых каталогов. Например:
mkdir NewDirectory
-
df (Disk Free): Узнайте о доступном месте на диске и его использовании. Ключ
-h
сделает вывод более читаемым:
df -h
-
du (Disk Usage): Позволяет определить размер каталогов и файлов. Ключ
-h
снова пригодится:
du -h
Процессы и задачи (Processes and Jobs)
В мире Linux, управление процессами и задачами является фундаментальной частью повседневной работы системного администратора и пользователя. Разберем основные утилиты, позволяющие эффективно взаимодействовать с процессами и выполняемыми задачами.
- ps - Отслеживание процессов
Команда ps
- это окно в душу операционной системы. Для отображения текущих
процессов достаточно ввести:
ps aux
Эта команда предоставляет подробную информацию о запущенных процессах, включая их идентификаторы, статус, использование CPU и памяти.
- top - Мониторинг реального времени
top
предоставляет интерактивный мониторинг процессов в реальном времени.
Запустите команду и наблюдайте за динамикой системы, сортируя процессы по
различным параметрам.
top
- kill - Завершение процессов
Если процесс выходит из-под контроля, команда kill
приходит на помощь.
Остановим процесс с определенным идентификатором, например:
kill -9 PID
- nice - Управление приоритетами
Команда nice
помогает управлять приоритетом процесса. Значение от -20 до 19
определяет приоритет, где -20 - самый высокий, 19 - самый низкий.
nice -n 10 command
- cron - Планирование задач
cron
позволяет автоматизировать задачи, выполняя их по расписанию.
Редактирование cron-таблицы осуществляется командой:
crontab -e
Пример добавления задачи, которая будет выполняться каждый день в 3 часа утра:
0 3 * * * command
Сетевые утилиты (Networking Utilities)
Операционная система Linux обеспечивает мощный и гибкий набор инструментов для управления сетевыми соединениями. Сетевые утилиты позволяют администраторам и пользователям следить за сетевым трафиком, настраивать соединения и диагностировать сетевые проблемы.
- ifconfig
Команда ifconfig
предоставляет информацию о текущих сетевых интерфейсах на
устройстве. Пример:
ifconfig
Эта команда выведет информацию о сетевых интерфейсах, IP-адресах и других сетевых параметрах.
- ping
Утилита ping
используется для проверки доступности удаленного узла в сети.
Пример:
ping example.com
Команда проверит доступность сервера example.com и выведет статистику о времени отклика.
- traceroute
Команда traceroute
помогает отследить маршрут, который пакет данных пройдет от
отправителя к получателю. Пример:
traceroute example.com
Это даст информацию о каждом промежуточном узле, через который проходит сетевой пакет.
- netstat
netstat
предоставляет детальную информацию о сетевых соединениях, маршрутах и
интерфейсах. Пример:
netstat -a
Эта команда выведет список всех активных сетевых соединений.
- ip
Утилита ip
является более современной и мощной альтернативой ifconfig
.
Пример:
ip addr show
Команда выведет информацию о сетевых интерфейсах и их текущем состоянии.
Управление пользователями и правами доступа (User and Permission Management)
Одной из ключевых особенностей операционной системы Linux является гибкость управления пользователями и правами доступа. Этот раздел предоставляет краткое введение в основные утилиты, необходимые для эффективного управления пользователями на вашей системе.
- Добавление пользователя:
Для создания нового пользователя используется команда useradd
. Например:
sudo useradd -m новый_пользователь
Опция -m
создает домашний каталог для пользователя.
- Установка пароля:
Команда passwd
позволяет установить пароль для пользователя:
sudo passwd новый_пользователь
- Управление группами:
Добавление пользователя в группу выполняется через usermod
:
sudo usermod -aG группа_пользователей имя_пользователя
- Удаление пользователя:
Для удаления пользователя используйте userdel
:
sudo userdel имя_пользователя
- Управление правами доступа:
Команда chmod
изменяет права доступа к файлам и каталогам:
chmod права файл_или_каталог
Например:
chmod +x скрипт.sh
- Присвоение владельца:
chown
изменяет владельца файла:
sudo chown новый_владелец:группа_владельца файл_или_каталог
- Листинг прав доступа:
Для просмотра текущих прав доступа используйте ls
с опцией -l
:
ls -l файл_или_каталог
Эффективное управление пользователями и правами доступа является фундаментальной частью обеспечения безопасности и функциональности Linux-систем. Ознакомьтесь с этими утилитами для максимальной гибкости и контроля над вашей системой.
Мониторинг и журналирование (Monitoring and Logging)
В мире Linux каждая операционная система имеет свой встроенный механизм мониторинга и журналирования, обеспечивая администраторам возможность отслеживать происходящее в системе. Давайте бегло познакомимся с несколькими утилитами, сделавшими этот процесс более удобным.
- top - маст-хэв для мониторинга системы в реальном времени. Здесь вы видите список процессов, потребляющих ресурсы, а также общую статистику по использованию ЦП, памяти и т.д.
top
- htop - улучшенная версия top с более удобным интерфейсом и возможностью сортировки и фильтрации процессов.
htop
- vmstat - предоставляет обширную информацию о состоянии системы, включая использование ЦП, памяти, блочных устройств и многое другое.
vmstat 1
- sar - собирает, отображает и анализирует данные о ресурсах системы в определенные моменты времени.
sar
Что касается журналирования, то логи – ваш верный спутник в поиске и устранении проблем. Основные команды:
- journalctl - просмотр системного журнала.
journalctl
- dmesg - выводит сообщения ядра, полезно для отслеживания аппаратных событий.
dmesg
- tail - отслеживание живых логов, например, syslog.
tail -f /var/log/syslog