Цель урока: Научиться создавать, редактировать, копировать, перемещать и удалять файлы и каталоги. Освоить инструменты для просмотра содержимого файлов, что является ключевым навыком при анализе логов и конфигураций.
Часть 1: Теория и Команды. Наш инструментарий
1. Создание
-
mkdir (Make Directory): Создает новый каталог.
-
Современный подход: Часто нужно создать целую вложенную структуру, например /projects/site/assets. Чтобы не создавать каждую папку по очереди, используется ключ -p (parents).
-
Пример:
mkdir -p projects/site/assets
- эта команда создаст каталог projects, внутри него site, а внутри site - assets, если они не существуют.
-
-
touch (коснуться): Создает пустой файл. Если файл уже существует, touch обновит его дату последнего изменения, не трогая содержимое.
-
Пример:
touch info.txt
- Можно использовать ключи:
-m
(обновить время модификации) или-a
(обновить время доступа), пример:touch -m file.txt
.
-
2. Просмотр содержимого файлов
-
cat (Concatenate): Выводит всё содержимое файла на экран. Удобно для очень маленьких файлов. Для больших - бесполезно, так как текст просто промелькнет у вас перед глазами.
-
Пример:
cat /etc/debian_version
-
-
less (листать): Ваш лучший друг для просмотра файлов. Открывает файл в интерактивном режиме просмотра.
-
Почему это современный и правильный подход? less не загружает весь файл в память, что позволяет мгновенно открывать файлы размером в гигабайты.
-
Как пользоваться:
-
less /var/log/syslog
-
Стрелки вверх/вниз или PageUp/PageDown для навигации.
-
/
затем слово и Enter - поиск слова вперед. -
n
- найти следующее вхождение. -
q
- выход из просмотра.
-
-
Это обязательный инструмент для любого администратора.
-
-
head и tail (голова и хвост): Показывают первые (head) или последние (tail) 10 строк файла. Очень полезно для быстрой оценки содержимого лог-файла.
-
Ключ
-n
позволяет указать количество строк:head -n 20 a.txt
. -
Супер-возможность для администратора: tail -f (follow/следить). Эта команда выводит последние строки файла и остается активной, допечатывая новые строки по мере их появления. Идеально для наблюдения за логами в реальном времени!
-
Пример:
tail -f /var/log/auth.log
- покажет в реальном времени все попытки входа в систему. (Нажмите Ctrl+C для выхода).
-
3. Редактирование файлов: классика и современность
Рано или поздно вам понадобится отредактировать конфигурационный файл. В мире серверов без графического интерфейса используются текстовые редакторы командной строки.
-
nano (дружелюбный редактор): Идеален для новичков. Он простой и интуитивный. Внизу экрана всегда есть подсказки по основным командам (^O означает Ctrl+O).
-
Как использовать:
-
nano my_file.txt
- открыть (или создать) файл.
-
-
Ввести или отредактировать текст.
-
Ctrl+O
(WriteOut) - сохранить изменения (нажать Enter для подтверждения имени).
-
-
Ctrl+X
- выход.Ctrl+K
- вырезать строку, аCtrl+U
- вставить строку.
-
-
-
vim (или vi) (профессиональный редактор): Невероятно мощный, но со сложным порогом входа. Он есть практически в любой Linux-системе, даже самой минимальной. Знать его основы - признак профессионализма. Мы посвятим ему отдельный урок, но сейчас важно знать о его существовании и почему он так ценится. Его философия - редактирование текста без отрыва рук от основной части клавиатуры, что делает работу очень быстрой.
-
Современный тренд (для разработки): Многие сегодня используют IDE на своем локальном компьютере (например, VS Code) с плагином для удаленного подключения по SSH. Это позволяет редактировать файлы на сервере в привычном графическом интерфейсе. НО! Системный администратор обязан уметь пользоваться терминальными редакторами (nano или vim), так как графический интерфейс доступен не всегда (например, в аварийном режиме).
4. Копирование, перемещение и переименование
-
cp (Copy): Копирует файлы или каталоги.
- Базовая команда: cp -r источник/ назначение/
- -r или --recursive — рекурсивно копирует все содержимое каталога (файлы и подпапки). Без этого ключа
cp
не скопирует каталог, выдаст ошибку. - Пример:
cp -r projects/ projects_backup/
- это создаст копию всего каталогаprojects
(со всеми подпапками и файлами) в каталогprojects_backup
.
- -r или --recursive — рекурсивно копирует все содержимое каталога (файлы и подпапки). Без этого ключа
- Ключ -a (archive): cp -a источник/ назначение/
- -a или --archive — копирует каталог «как есть», максимально сохраняя всё: структуру, права доступа, владельца, временные метки (даты создания/изменения), симлинки и т.д.
- По сути, -a включает в себя -r и еще дополнительные флаги (например, -p для сохранения прав, -d для симлинков и др.)
- Когда использовать -a? Когда делаешь резервную копию, важно сохранить все атрибуты файлов, чтобы восстановить всё в точности как было.
- Пример:
cp -a projects/ projects_backup/
- это более «профессиональный» и безопасный вариант для бэкапа.
- Ключ -i (interactive): cp -ri источник/ назначение/
- -i или --interactive - если в целевой папке уже есть файл с таким именем, cp спросит подтверждение перед перезаписью.
- Когда использовать -i? Когда не хочешь случайно что-то перезаписать, особенно если копируешь в каталог, где уже есть файлы.
- Пример:
cp -ri projects/ projects_backup/
- при совпадении имён будет спрашивать "overwrite? (y/n)".
- Можно ли комбинировать ключи?
-
Да! Ключи можно писать вместе: cp -ari источник/ назначение/ . Это будет копирование с сохранением всех атрибутов и с запросом подтверждения при перезаписи.
-
Можно писать по отдельности: cp -a -i источник/ назначение/
-
- Базовая команда: cp -r источник/ назначение/
- Совет: если не уверен, то используйте -ai при бэкапе важных данных. Если просто копируешь «что-то куда-то», достаточно -r
Ключ | Что делает | Когда использовать |
---|---|---|
-r | Копирует каталоги и всё их содержимое | Всегда при копировании каталогов |
-a | Сохраняет структуру, права, владельца, даты и т.д. | Бэкапы, важные копии |
-i | Запрашивает подтверждение при перезаписи | Если есть риск случайно перезаписать файл |
-
mv (Move): Перемещает или переименовывает файлы и каталоги.
-
Перемещение:
mv info.txt projects/
- переместить info.txt в каталог projects. -
Переименование:
mv info_backup.txt old_info.txt
- переименовать файл. - Осторожно: если целевой файл/имя существует - он будет заменён; используйте
mv -i
для подтверждения.
-
5. Удаление
-
rm (Remove): Удаляет файлы.
-
Пример:
rm old_info.txt
-
-
rmdir (Remove Directory): Удаляет пустой каталог.
- Ключ
-p
позволяет удалить цепочку пустых каталогов:rmdir -p projects/alpha/backup
-
rm -r (или rm -rf): Удаляет каталог и всё его содержимое.
⚠️ ВНИМАНИЕ: САМАЯ ОПАСНАЯ КОМАНДА ⚠️
Команда rm -rf / пытается рекурсивно и принудительно удалить всё содержимое вашего сервера, начиная с корня. В Linux нет корзины! Восстановить данные после rm -rf практически невозможно.
Всегда думайте дважды, прежде чем нажать Enter после команды rm -rf! Проверяйте, в каком каталоге вы находитесь (pwd), и что именно вы собираетесь удалить.
Часть 2: Практический сценарий. Организация проекта
Давайте применим наши знания. Создадим простую структуру для нашего будущего сайта.
-
Убедитесь, что вы в своем домашнем каталоге. Если нет, введите cd.
cd pwd # должен показать /root ```2. Создайте структуру каталогов для нового проекта "alpha". mkdir -p projects/alpha/backup
-
Перейдите в каталог проекта.
cd projects/alpha
-
Создайте пустой файл конфигурации и заметку.
touch config.ini notes.txt
-
Добавим немного текста в заметку с помощью nano.
nano notes.txt
-
Внутри редактора напишите: This is my first server project.
-
Нажмите Ctrl+O, затем Enter для сохранения.
-
Нажмите Ctrl+X для выхода.
-
-
Просмотрите содержимое файла с помощью cat (он маленький).
cat notes.txt
-
Сделаем резервную копию файла конфигурации.
cp config.ini backup/config.bak ```8. Давайте "испортим" оригинальный файл. Откроем его в `nano` и добавим строку `error here`. nano config.ini # Добавьте текст, сохраните (Ctrl+O) и выйдите (Ctrl+X)
-
"Восстановим" его из резервной копии.
cp -a backup/config.bak config.ini
-
Переименуем файл заметок.
mv notes.txt readme.md
-
Посмотрим на результат.
ls -l ls -l backup/
-
Теперь уберем за собой. Вернемся на уровень выше и удалим весь проект.
cd .. rm -rf alpha # Будьте осторожны, убедитесь, что вы в каталоге projects
Итоги урока и домашнее задание
-
Что мы освоили:
-
Создание файлов (touch) и каталогов (mkdir -p).
-
Просмотр файлов: быстрый (cat), удобный (less) и для мониторинга (tail -f).
-
Редактирование с помощью nano. Мы также знаем о существовании vim.
-
Манипуляции: копирование (cp), перемещение/переименование (mv) и удаление (rm, rmdir).
-
Самое главное: мы осознали мощь и опасность команды rm -rf.
-
-
Ваше третье задание:
-
В своем домашнем каталоге создайте структуру configs/nginx и configs/mysql.
-
Перейдите в /etc (где лежат реальные конфиги).
-
Найдите там файл ssh/sshd_config.
-
Скопируйте (cp) этот файл в ваш каталог ~/configs. Не редактируйте оригинал!
-
Перейдите в ~/configs. Переименуйте (mv) скопированный файл в sshd_config_backup.
-
С помощью less посмотрите содержимое этого файла. Попробуйте найти в нем слово Port (используя /Port).
-
С помощью head -n 25 посмотрите первые 25 строк этого файла.
-
Удалите только каталог ~/configs/mysql.
-
Закончив, удалите всю директорию ~/configs целиком.
-
На следующем уроке мы погрузимся в одну из самых мощных концепций Linux - права доступа к файлам. Вы узнаете, что означают загадочные буквы rwx и как защитить свои файлы от несанкционированного доступа.
Перейти к просмотру - УРОК №4.
Промо-код: PROMO15 — скидка 15%!
Введите при оформлении первого заказа на сайте: Hosting-VDS.com