работа с файлами линукс

Цель урока: Научиться создавать, редактировать, копировать, перемещать и удалять файлы и каталоги. Освоить инструменты для просмотра содержимого файлов, что является ключевым навыком при анализе логов и конфигураций.

Часть 1: Теория и Команды. Наш инструментарий

1. Создание

  • mkdir (Make Directory): Создает новый каталог.

    • Современный подход: Часто нужно создать целую вложенную структуру, например /projects/site/assets. Чтобы не создавать каждую папку по очереди, используется ключ -p (parents).

    • Пример: mkdir -p projects/site/assets - эта команда создаст каталог projects, внутри него site, а внутри site - assets, если они не существуют.

mkdir -p

  • touch (коснуться): Создает пустой файл. Если файл уже существует, touch обновит его дату последнего изменения, не трогая содержимое.

    • Пример: touch info.txt

    • Можно использовать ключи: -m (обновить время модификации) или -a (обновить время доступа), пример: touch -m file.txt.

touch

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 - открыть (или создать) файл.

    • nano linux 
      • Ввести или отредактировать текст.

      • Ctrl+O (WriteOut) - сохранить изменения (нажать Enter для подтверждения имени).

    • открытый nano редактор 
      • 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.
    • Ключ -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 источник/ назначение/

  • Совет: если не уверен, то используйте -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: Практический сценарий. Организация проекта

Давайте применим наши знания. Создадим простую структуру для нашего будущего сайта.

  1. Убедитесь, что вы в своем домашнем каталоге. Если нет, введите cd.

    cd
    pwd # должен показать /root
    ```2.  Создайте структуру каталогов для нового проекта "alpha".
    mkdir -p projects/alpha/backup

    mkdir -p
  2. Перейдите в каталог проекта.

    cd projects/alpha
  3. Создайте пустой файл конфигурации и заметку.

    touch config.ini notes.txt
  4. Добавим немного текста в заметку с помощью nano.

    nano notes.txt
    • Внутри редактора напишите: This is my first server project.

    • Нажмите Ctrl+O, затем Enter для сохранения.

    • Нажмите Ctrl+X для выхода.

  5. Просмотрите содержимое файла с помощью cat (он маленький).

    cat notes.txt
  6. Сделаем резервную копию файла конфигурации.

    cp config.ini backup/config.bak
    ```8.  Давайте "испортим" оригинальный файл. Откроем его в `nano` и добавим строку `error here`.
    nano config.ini
    # Добавьте текст, сохраните (Ctrl+O) и выйдите (Ctrl+X)
  7. "Восстановим" его из резервной копии.

    cp -a backup/config.bak config.ini
  8. Переименуем файл заметок.

    mv notes.txt readme.md
  9. Посмотрим на результат.

    ls -l
    ls -l backup/
  10. Теперь уберем за собой. Вернемся на уровень выше и удалим весь проект.

    cd ..
    rm -rf alpha # Будьте осторожны, убедитесь, что вы в каталоге projects

Итоги урока и домашнее задание

  • Что мы освоили:

    • Создание файлов (touch) и каталогов (mkdir -p).

    • Просмотр файлов: быстрый (cat), удобный (less) и для мониторинга (tail -f).

    • Редактирование с помощью nano. Мы также знаем о существовании vim.

    • Манипуляции: копирование (cp), перемещение/переименование (mv) и удаление (rmrmdir).

    • Самое главное: мы осознали мощь и опасность команды rm -rf.

  • Ваше третье задание:

    1. В своем домашнем каталоге создайте структуру configs/nginx и configs/mysql.

    2. Перейдите в /etc (где лежат реальные конфиги).

    3. Найдите там файл ssh/sshd_config.

    4. Скопируйте (cp) этот файл в ваш каталог ~/configs. Не редактируйте оригинал!

    5. Перейдите в ~/configs. Переименуйте (mv) скопированный файл в sshd_config_backup.

    6. С помощью less посмотрите содержимое этого файла. Попробуйте найти в нем слово Port (используя /Port).

    7. С помощью head -n 25 посмотрите первые 25 строк этого файла.

    8. Удалите только каталог ~/configs/mysql.

    9. Закончив, удалите всю директорию ~/configs целиком.

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

Перейти к просмотру - УРОК №4.

подарок Промо-код: PROMO15 скидка 15%! огонь

Введите при оформлении первого заказа на сайте: Hosting-VDS.com

авторское право цифровые решения

Помог ли вам данный ответ? 0 Пользователи нашли это полезным (0 голосов)