Red hat удалить файл
Эта небольшая заметка ориентирована на совсем начинающих. Сегодня мы рассмотрим как удалить файл linux через терминал. Для более опытных пользователей это элементарная задача, но новичкам надо с чего-то начинать. Знать как работать с файлами в консоли очень важно.
К тому же удаление из консоли дает много преимуществ и большую гибкость. Например, с помощью специальной команды вы можете полностью стереть файл с жесткого диска, так что его уже ни за что невозможно будет восстановить или одной командой с помощью специальных символов, условий или регулярных выражений удалить сотни ненужных файлов в одном каталоге или подкаталогох соответствующих определенному критерию.
В Linux для удаления файлов предусмотрена стандартная утилита rm. Как и все остальные, стандартные утилиты в имени rm тоже заложена определенная идея. Это сокращение от английского слова Remove.
Удаление файлов в Linux
Чтобы удалить файл linux достаточно передать в параметрах команде адрес файла в файловой системе:
Чтобы удалить все файлы, начинающиеся на слово file можно использовать специальный символ *, означает любой символ в любом количестве:
Эта команда удаления файла в linux должна использоваться очень осторожно, чтобы не удалить ничего лишнего. В утилите есть опция -i, которая заставляет программу спрашивать пользователя перед тем, как удалить файл linux:
rm: удалить пустой обычный файл «/home/user/file»?
Если файлов очень много, вы уверены в правильности команды и отвечать каждый раз y неудобно, есть противоположная опция - f. Будут удалены все файлы без вопросов:
rm -f /home/user/file*
Для удаления директорий, вместе с файлами и поддиректориями используется опция -R, например:
rm -Rf /home/user/dir
Будет удалено все что находиться в папке dir, и эта папка. Только будьте бдительны, чтобы не получился знаменитый патч Бармина:
Не стоит выполнять эту команду в своей системе, как видите, она удаляет все файлы в файловой системе Linux.
Удаление файла в linux также возможно с помощью утилиты find. Общий синтаксис find:
find папка критерий действие
Например, мы хотим удалить файл linux по имени:
find . -type f -name "file" -exec rm -f <> \;
Будут найдены все файлы с именем file в текущей папке и для них вызвана команда rm -f. Можно не вызывать стороннюю утилиту, а использовать действие delete:
find . -type f -name "file" -delete
Удалить все файлы в текущей директории, соответствующие определенному регулярному выражению:
find . -regex '\./[a-f0-9\-]\.bak' - delete
Или удалить файлы старше определенного строка, может быть полезно для удаления старых логов:
find /path/to/files* -mtime +5 -exec rm <> \;
Будет выполнено удаление файлов через терминал все файлы в папке старше 5-ти дней.
Чтобы полностью стереть файл, без возможности восстановления используйте команду shred. Во время удаления файлов с помощью утилиты rm удаляется только ссылка на файл, само же содержимой файла по-прежнему находиться на диске, пока система не перезапишет его новыми данными, а пока этого не случится файл можно легко восстановить. Принцип действия утилиты такой - после удаления файла, его место на диске несколько раз перезаписывается.
Опцией -n - можно указать количество перезаписей диска, по умолчанию используется 3. А если указать опцию -z программа при последней перезаписи запишет все нулями чтобы скрыть, уничтожение файла.
Выводы
Вот и все. Теперь вы знаете как удалить файл в Ubuntu, как видите, делать это не так уж сложно. Если у вас остались вопросы, пишите в комментариях!
/boot — файлы загрузчика
Cодержит ядро и другие файлы, используемые при загрузке системы.
Используя его, можно, например подавить вывод на stdout:
Может быть использован для увеличения производительности приложений. При перезагрузке информация в разделе стирается.
Здесь хранятся конфигурационные файлы всех установленных в системе программ, скрипты запуска и завершения системных демонов, монтирования файловых систем и авторазгрузки программ.
/home — домашние директории пользователей
В этой папке хранятся домашние каталоги всех пользователей. В них они могут хранить свои личные файлы, настройки программ и т д.
/lib (library) — системные библиотеки
Содержит файлы системных библиотек, которые используются исполняемыми файлами в каталогах /bin и /sbin.
Библиотеки имеют имена файлов с расширением *.so и начинаются с префикса lib*. Например, libncurses.so.5.7. Папка /lib64 в 64 битных системах содержит 64 битные версии библиотек из /lib.
/media — съёмные носители
В этот каталог система монтирует все подключаемые внешние накопители — флешки, оптические диски и другие носители информации.
/mnt (mount) — точки монтирования
В этот каталог могут быть смонтированы внешние или дополнительные файловые системы.
/opt (optional applications) — дополнительные приложения
В эту папку устанавливаются проприетарные программы, игры или драйверы.
/proc (process) — информация о процессах
Содержит информацию о запущенных процессах, обновляемую в реальном времени. Также там есть информация об использовании системных ресурсов (/proc/cpuinfo, /proc/meminfo, /proc/uptime).
/run — процессы
Еще один каталог, содержащий PID файлы процессов, похожий на /var/run, но в отличие от него, он размещен в TMPFS, а поэтому после перезагрузки все файлы теряются.
/srv (server) — сервер
В этом каталоге содержатся файлы серверов и сервисов. Например, могут содержаться файлы веб-сервера apache.
/sys (system) — информация о системе
Назначение каталогов Linux из этой папки — получение информации о системе непосредственно от ядра. Это еще одна файловая система, организуемая ядром и позволяющая просматривать и изменить многие параметры работы системы, например, работу swap, контролировать кулеры и многое другое.
/tmp (temp) — временные файлы
В этом каталоге содержатся временные файлы, созданные системой, любыми программами или пользователями. Все пользователи имеют право записи в эту директорию.Файлы удаляются при каждой перезагрузке.
/usr — (user applications) программы пользователя
/usr/bin — исполняемые файлы
Содержит исполняемые файлы различных программ, которые не нужны на первых этапах загрузки системы, например, музыкальные плееры, графические редакторы, браузеры и так далее.
/usr/lib— библиотеки
Содержит библиотеки для программ из /usr/bin или /usr/sbin.
/usr/local — пользовательские программы, библиотеки и настройки
Содержит файлы программ, библиотек, и настроек созданные пользователем. Например, здесь могут храниться программы собранные и установленные из исходников и скрипты, написанные вручную.
/usr/sbin — системные исполняемые файлы
Содержит двоичные файлы программ для системного администрирования, которые нужно выполнять с правами суперпользователя. Например, таких как Gparted, sshd, useradd, userdel и т д.
/var (variable) — изменяемые файлы
Содержит постоянно изменяемые файлы, генерируемые процессами во время работы. Здесь есть системные журналы, кеши, базы данных и т.п.
Содержит большинство логов всех установленных в операционной системе программ.
/var/lib — базы данных
Содержит файлы баз данных, пакеты и т.п.
Файлы, расположенные здесь, означают, что ресурс, файл или устройство занято и не может быть использовано другим процессом.
/var/run — PID процессов
Содержит идентификаторы процессов, которые могут использоваться для взаимодейстия между программами. В отличие от /run данные сохраняются после перезагрузки.
Пользователи и группы
ОС UNIX предлагает базовые средства защиты и совместного использования файлов на основе отслеживания пользователя и группы, владеющих файлом, трех уровней доступа (для пользователя-владельца, для пользователей группы-владельца, и для всех остальных пользователей) и трех базовых прав доступа к файлам (на чтение, на запись и на выполнение). Базовые средства защиты процессов основаны на отслеживании принадлежности процессов пользователям.
Учетные записи пользователей, как и большинство другой информации о конфигурации системы UNIX, по традиции, представлена в виде текстовых файлов: /etc/passwd, /etc/group и /etc/shadow (в системах с теневым хранением паролей).
Основные команды для работы с пользователями и группами (часть команд указанных ниже будет требовать sudo для выполнения):
В современных дистрибутивах Linux вместо root аккаунта для администрирования как правило используется утилита sudo (substitute user and do), позволяющая выполнить команду от лица пользователя root.
Все настройки sudo находятся в файле /etc/sudoers. Здесь можно настроить очень много параметров, начиная от кому будет позволено выполнять команды от имени суперпользователя и заканчивая ограничением набора доступных команд. Неправильный синтаксис, добавленный в этот файл, может полностью нарушить распределение прав между пользователями. Потому для работы с этим файлом используется утилита visudo, которая открывает файл в обычном текстовом редакторе, но во время сохранения файла проверяет его синтаксис. Это позволяет избежать ошибок в конфигурации.
Работа с файловой системой: навигация, создание-перемещение-удаление файлов, ссылки
Основные команды, используемые для навигации по файловой системе из окна терминала, создание, перемещение и удаление файлов и каталогов:
В ОС Linux существует два вида ссылок.
Жесткие ссылки привязываются к иноду, таким образом, файл присутствует в системе под несколькими разными именами. Файл существует до тех пор, пока с его инодом связано хотя бы одно имя. Понятия «жёсткая ссылка на файл» и «имя файла» являются синонимами.
Жесткие ссылки могут быть только на файлы, не на директории. Также нельзя создать жесткую ссылку на файл в другой файловой системе (у каждой ФС свой набор инодов).
Управление процессами и потоками, отправка сигналов, kill
Каждому процессу в системе назначаются числовые идентификаторы PID (Process Identifier) в диапазоне от 1 до 65535 и идентификаторы родительского процесса PPID (Parent Process Identifier).
Когда сигнал послан процессу, операционная система прерывает выполнение процесса, при этом, если процесс установил собственный обработчик сигнала, операционная система запускает этот обработчик, передав ему информацию о сигнале, если процесс не установил обработчик, то выполняется обработчик по умолчанию.
SSH и передача файлов
SSH (Secure Shell) — защищенный протокол для удаленного доступа к компьютерам. В *nix-подобных системах (Linux, macOS) ssh-клиент обычно установлен по умолчанию и подключаться можно напрямую из терминала. Для подключения нужно указать адрес сервера и, опционально, имя пользователя и порт.
Для подключения без ввода пароля можно использовать ключи: приватный (закрытый) и публичный (открытый). Эти ключи связаны друг с другом таким образом, что зашифровав информацию одним ключом, расшифровать ее можно только другим.
Для создания ключей необходимо выполнить команду:
Опционально можно ввести passphrase.
Будут созданы два файла:
/.ssh/id_rsa — приватный ключ. Его нельзя никому передавать.
/.ssh/id_rsa.pub — публичный ключ. Можно спокойно распространять.
Для загрузки публичного ключа на сервер нужно выполнить на локальной машине команду:
/.ssh/authorized_keys содержимое публичного ключа.
Для более удобной работы с ключами можно добавить ключ к ssh-агенту. После этого для него больше не будет спрашиваться passphrase (если был задан) и не нужно будет вводить ключ вручную — он будет автоматически использован при соответствующем подключении.
ssh-agent привязан к сессии. Поэтому, например, если перезагрузить компьютер, то ключи нужно будет добавлять в агент заново.
Протокол SSH можно использовать для передачи файлов на удалённый сервер и загрузки их оттуда.
Перенаправление ввода/вывода
Можно организовать конвейер (pipe) выполняемых команд.
Работа с текстовыми файлами, find и grep
После открытия текстового файла внутри утилиты можно набирать разные команды (они отображаются в левом нижнем углу), рассмотрим некоторые из них.
Для вызова справки внутри утилиты воспользуйтесь клавишей h.
Поиск внутри утилиты:
В режиме поиска:
Отображение последних 10 строк файла:
По умолчанию tail выводит именно 10 последних строк.
Find — команда для поиска файлов и каталогов на основе специальных условий.
Информация о размерах файлов и директорий, свободном пространстве
Для того, чтобы получить информацию о доступном в системе пространстве, можно использовать утилиту df (disk free):
Для оценки занимаемого файлом или директорией дискового пространства используется утилита du (disk usage):
Переменные окружения
Существует три типа переменных окружения:
Конфигурационные файлы переменных окружения:
Команды для работы с переменными окружения:
Работа с сетью
Основные команды для работы с сетью:
Адаптер lo (loopback) в выводе ifconfig используется системой для обращения к самой себе.
Работа со службами
В RHEL7 для управления службами в операционной системе используется утилита systemd, приносящая концепцию юнитов.
Юниты находятся в конфигурационных файлах, расположенных в директориях (указаны по возрастанию приоритета):
Юниты содержат информацию о системных сервисах, прослушиваемых сокетах, сохраненных снапшотах состояний системы и других обьектах, относящихся к системе инициализации.
Типы юнитов systemd:
- .service – системный сервис,
- .target — группа юнитов systemd,
- .automount – точка автомонтирования файловой системы,
- .device – файл устройства, распознанного ядром,
- .mount – точка монтирования файловой системы,
- .path – файл или директория в файловой системе,
- .scope – процесс, созданный извне,
- .slice – группа иерархически организованных юнитов, управляющая системными процессами,
- .snapshot – сохраненное состояние менеджера systemd,
- .socket – сокет межпроцессного взаимодействия,
- .swap – свап-устройство или свап-файл (файл подкачки),
- .timer – таймер systemd.
Основные команды для работы со службами:
Менеджер пакетов YUM
Работать с командной строкой должен уметь каждый будущий системный администратор и опытный пользователь Linux. Сегодня мы рассмотрим ещё одну базовую функцию — удаление папки и файлов в Linux с помощью командной строки.
Прокачайте ваш Linux сервер, воспользовавшись скидками на VPS-хостинг в Hostinger! Большой выбор планов, как для учебных, так и для крупных коммерческих проектов.
Команда rmdir
Команда, используемая, чтобы удалить пустую папку в Linux через командную строку — это rmdir.
Основной синтаксис этой команды довольно простой. Вот пример:
- rmdir — это команда
- [опция] — опциональный модификатор, который изменяет поведение команды
- НазваниеПапки — каталог, который вы хотите удалить
Если опция не указана, rmdir просто удаляет каталог, имя которого указано в качестве места назначения. Перед использованием этой команды вам нужно будет войти на сервер VPS через SSH. Вот статья, которая поможет вам это сделать.
Удаление Папки в Linux с Помощью Команды rmdir
Перед использованием команды rmdir мы рекомендуем вам проверить список файлов в каталоге с помощью команды ls. В нашем случае у нас есть каталог с названием Dir1.
Эта команда удалит пустой каталог с именем Dir1. Довольно просто, правда?
Вы также можете удалить несколько каталогов, разделив их имена пробелами. Например:
После выполнения этой команды каталоги с именами Dir1, Dir2 и Dir3 будут удалены.
Допустим, у нас есть папка Dir3. Dir3 содержит подкаталоги и файлы. Теперь, если мы используем команду:
То получим ошибку:
Как вы уже могли догадаться, rmdir работает только с пустыми каталогами.
Rmdir — умная утилита, которая позволяет удалять только пустые папки. Таким образом, она защищает данные от случайной потери. Помните, что удалённые данные в любом дистрибутиве Linux практически невозможно восстановить.
Опция -p позволяет удалить папку через командную строку, а также её родительские каталоги.
Эта команда удалит Dir3 и его родительские каталоги Dir2 и Dir1.
Опция -v выводит диагностический текст для каждого обработанного каталога. Использование этой опции выведет подтверждение со списком всех каталогов, которые были удалены.
Команда rm
Команда rmdir отлично подходит для безопасного удаления неиспользуемых и пустых каталогов. Если вы хотите удалить файл или каталог, содержащий файлы, вам придётся использовать команду rm.
Синтаксис этой команды похож на rmdir:
Как Удалить Файл в Linux с Помощью Команды rm
Давайте используем команду rm, чтобы удалить файл с именем article.txt:
Допустим, у нас есть каталог с именем Dir1, содержащий подкаталоги и файлы, чтобы удалить его, нам понадобится модификатор -r. Команда будет выглядеть так:
Опция -r рекурсивно удаляет каталоги и их содержимое.
Ещё одна полезная опция -i. Она попросит вас подтвердить удаление каждого отдельного файла, благодаря чему вы сможете избежать любых неприятных ошибок.
Вы также можете удалить пустые каталоги, используя опцию -d. Следующая команда удалит пустую папку с именем Dir1:
Вы можете использовать подстановочный знак (*) и обычные расширения для сопоставления нескольких файлов. Например, следующая команда удалит все файлы PDF в текущем каталоге.
Вы можете использовать вариации всех перечисленных выше команд для удаления файлов с другими расширениями, такими как .txt, .doc, .odt и другими.
Опция -f позволяет принудительно удалить всё, что находится в каталоге. Команда будет выглядеть так:
Приведённая выше команда рекурсивно и принудительно удалит всё, что находится в каталоге Dir1, не запрашивая подтверждения в терминале.
Вы также можете удалить несколько папок за раз. Следующая команда удалит три каталога Dir1, Dir2 и Dir3.
Поздравляем, вы успешно освоили основные функции команд rm и rmdir, позволяющие удалить файл или папку в Linux!
Итоги
Случайное удаление папки или даже одного файла в Linux может привести к серьёзным проблемам. Вот почему важно освоить две основные команды для удаления файлов и каталогов — rm и rmdir. В этой статье мы рассмотрели эти две команды и различные опции, которые позволяют их модифицировать.
Надеемся, что эта статья была полезной! И помните, что после удаления файла или каталога из Linux вы не сможете их восстановить, поэтому будьте предельно осторожны! Удачи.
Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
На самом деле это круто, когда работа мотивирует изучать что-то новое и постоянно развиваться. Тем более, ребята подготовили неплохие конспекты и даже тем, кто с терминалом был "на вы" при минимальных усилиях разобраться в происходящем оказалось не очень сложно.
Глядя на эти конспекты, мне стало немного грустно - работа имеет свойство меняться, а терять такую крутую подборку не хотелось бы. Да и формат меня местами не устраивал. В итоге было решено переработать материал в такую простыню-шпаргалку, частично используя материалы для подготовки к тестированию, частично - расширяя своими заметками.
В этом посте осуществлена попытка собрать необходимый минимум полезных команд, часто используемых при решении типовых задач в ОС Linux, в частности - дистрибутивов Red Hat Enterprise Linux / Cent OS 7.
Структура каталогов
Основные каталоги и структура файловой системы Linux регламентируются FHS - Filesystem Hierarchy Standard. FHS поддерживается Free Standards Group — некоммерческой организацией, в составе которой находятся крупные разработчики программного и аппаратного обеспечения, такие как HP, Red Hat, IBM и Dell.
/ - корень
Главный каталог, по сути - файловая система Linux. Только root может менять и читать файлы в этом каталоге.
/bin (binaries) - бинарные файлы пользователей
Содержит исполняемые файлы, которые можно использовать когда не подключен каталог /usr. В основном - общие команды, например cat / ls / ps и др.
/boot — файлы загрузчика
Cодержит ядро и другие файлы, используемые при загрузке системы.
/dev (devices) - файлы устройств
В Linux все устройства являются файлами в каталоге /dev. Инициализируется при запуске системы - сканируются подключенные устройства и для них создаются специальные файлы.
/dev/null - псевдоустройство, в которое можно записать все что угодно и оно исчезнет навсегда.
Используя его, можно, например подавить вывод на stdout:
/dev/shm - раздел файловой системы, размещенный в оперативной памяти
Может быть использован для увеличения производительности приложений. При перезагрузке информация в разделе стирается.
/etc (etcetera) - конфигурационные файлы
Здесь хранятся конфигурационные файлы всех установленных в системе программ, скрипты запуска и завершения системных демонов, монтирования файловых систем и авторазгрузки программ.
/home — домашние директории пользователей
В этой папке хранятся домашние каталоги всех пользователей. В них они могут хранить свои личные файлы, настройки программ и т д.
/lib (library) — системные библиотеки
Содержит файлы системных библиотек, которые используются исполняемыми файлами в каталогах /bin и /sbin.
Библиотеки имеют имена файлов с расширением *.so и начинаются с префикса lib*. Например, libncurses.so.5.7. Папка /lib64 в 64 битных системах содержит 64 битные версии библиотек из /lib.
/media — съёмные носители
В этот каталог система монтирует все подключаемые внешние накопители — флешки, оптические диски и другие носители информации.
/mnt (mount) — точки монтирования
В этот каталог могут быть смонтированы внешние или дополнительные файловые системы.
/opt (optional applications) — дополнительные приложения
В эту папку устанавливаются проприетарные программы, игры или драйверы.
/proc (process) — информация о процессах
Содержит информацию о запущенных процессах, обновляемую в реальном времени. Также там есть информация об использовании системных ресурсов (/proc/cpuinfo, /proc/meminfo, /proc/uptime).
/run — процессы
Еще один каталог, содержащий PID файлы процессов, похожий на /var/run, но в отличие от него, он размещен в TMPFS, а поэтому после перезагрузки все файлы теряются.
/sbin (system binaries) - системные исполняемые файлы
Также как /bin содержит исполняемые файлы, доступные на ранних этапах загрузки, но здесь - программы, выполняемые только с правами суперпользователя - системные утилиты.
/srv (server) — сервер
В этом каталоге содержатся файлы серверов и сервисов. Например, могут содержаться файлы веб-сервера apache.
/sys (system) — информация о системе
Назначение каталогов Linux из этой папки — получение информации о системе непосредственно от ядра. Это еще одна файловая система, организуемая ядром и позволяющая просматривать и изменить многие параметры работы системы, например, работу swap, контролировать кулеры и многое другое.
/tmp (temp) — временные файлы
В этом каталоге содержатся временные файлы, созданные системой, любыми программами или пользователями. Все пользователи имеют право записи в эту директорию.Файлы удаляются при каждой перезагрузке.
/usr — (user applications) программы пользователя
/usr/bin — исполняемые файлы
Содержит исполняемые файлы различных программ, которые не нужны на первых этапах загрузки системы, например, музыкальные плееры, графические редакторы, браузеры и так далее.
/usr/lib— библиотеки
Содержит библиотеки для программ из /usr/bin или /usr/sbin.
/usr/local — пользовательские программы, библиотеки и настройки
Содержит файлы программ, библиотек, и настроек созданные пользователем. Например, здесь могут храниться программы собранные и установленные из исходников и скрипты, написанные вручную.
/usr/sbin — системные исполняемые файлы
Содержит двоичные файлы программ для системного администрирования, которые нужно выполнять с правами суперпользователя. Например, таких как Gparted, sshd, useradd, userdel и т д.
/var (variable) — изменяемые файлы
Содержит постоянно изменяемые файлы, генерируемые процессами во время работы. Здесь есть системные журналы, кеши, базы данных и т.п.
/var/log - файлы логов
Содержит большинство логов всех установленных в операционной системе программ.
/var/lib — базы данных
Содержит файлы баз данных, пакеты и т.п.
/var/lock - блокировки
Файлы, расположенные здесь, означают, что ресурс, файл или устройство занято и не может быть использовано другим процессом.
/var/run — PID процессов
Содержит идентификаторы процессов, которые могут использоваться для взаимодейстия между программами. В отличие от /run данные сохраняются после перезагрузки.
Пользователи и группы
ОС UNIX предлагает базовые средства защиты и совместного использования файлов на основе отслеживания пользователя и группы, владеющих файлом, трех уровней доступа (для пользователя-владельца, для пользователей группы-владельца, и для всех остальных пользователей) и трех базовых прав доступа к файлам (на чтение, на запись и на выполнение). Базовые средства защиты процессов основаны на отслеживании принадлежности процессов пользователям.
Для отслеживания владельцев процессов и файлов используются числовые идентификаторы. Идентификатор пользователя и группы - целое число (обычно) в диапазоне от 0 до 65535. Присвоение уникального идентификатора пользователя выполняется при заведении системным администратором нового регистрационного имени. Среди пользователей системы выделяется один пользователь - системный администратор или суперпользователь, обладающий всей полнотой прав на использование и конфигурирование системы. Это пользователь с идентификатором 0 и регистрационным именем root.
Учетные записи пользователей, как и большинство другой информации о конфигурации системы UNIX, по традиции, представлена в виде текстовых файлов: /etc/passwd, /etc/group и /etc/shadow (в системах с теневым хранением паролей).
Основные команды для работы с пользователями и группами (часть команд указанных ниже будет требовать sudo для выполнения):
В современных дистрибутивах Linux вместо root аккаунта для администрирования как правило используется утилита sudo (substitute user and do), позволяющая выполнить команду от лица пользователя root.
Все настройки sudo находятся в файле /etc/sudoers. Здесь можно настроить очень много параметров, начиная от кому будет позволено выполнять команды от имени суперпользователя и заканчивая ограничением набора доступных команд. Неправильный синтаксис, добавленный в этот файл, может полностью нарушить распределение прав между пользователями. Потому для работы с этим файлом используется утилита visudo, которая открывает файл в обычном текстовом редакторе, но во время сохранения файла проверяет его синтаксис. Это позволяет избежать ошибок в конфигурации.
Работа с файловой системой: навигация, создание-перемещение-удаление файлов, ссылки
Основные команды, используемые для навигации по файловой системе из окна терминала, создание, перемещение и удаление файлов и каталогов:
В ОС Linux существует два вида ссылок.
Жесткие ссылки привязываются к иноду, таким образом, файл присутствует в системе под несколькими разными именами. Файл существует до тех пор, пока с его инодом связано хотя бы одно имя. Понятия «жёсткая ссылка на файл» и «имя файла» являются синонимами.
Жесткие ссылки могут быть только на файлы, не на директории. Также нельзя создать жесткую ссылку на файл в другой файловой системе (у каждой ФС свой набор инодов).
Cимволические ссылки (или симлинки) - специальный вид файла, который ссылается на другой файл по имени, а не напрямую на инод. Симлинки не предохраняют файл от удаления. Если файл удалить, то симлинк на него станет нерабочим (или битым).
При работе с большим количеством файлов бывает удобно использовать маски - т.н. wildcards.
Wildcard "*" соответствует нулю или большему количеству символов:
Wildcard "?" заменяет один любой символ:
Шаблон "[]" позволяет явно указать набор символов - будут найдеты совпадения, содержащие один из указанных в скобках символов. Также в можно указать диапазон символов (для этого используется символ –/дефис) или несколько диапазонов подряд, тогда шаблон будет совпадать с одним любым символом из этого диапазона:
Управление процессами и потоками, отправка сигналов, kill
Процесс (process) — некая виртуальная среда, инкапсулирующая в себе ресурсы (открытые файлы, файлы отображенные в память. ) и их дескрипторы, потоки и т.д. Каждый процесс имеет как минимум один поток. Также каждый процесс имеет свое собственное виртуальное адресное пространство и контекст выполнения, а потоки одного процесса разделяют адресное пространство процесса. Некоторые приложения могут создавать несколько процессов одновременно.
Каждому процессу в системе назначаются числовые идентификаторы PID (Process Identifier) в диапазоне от 1 до 65535 и идентификаторы родительского процесса PPID (Parent Process Identifier).
Сигнал в операционных системах семейства Unix - асинхронное уведомление процесса о каком-либо событии.
Когда сигнал послан процессу, операционная система прерывает выполнение процесса, при этом, если процесс установил собственный обработчик сигнала, операционная система запускает этот обработчик, передав ему информацию о сигнале, если процесс не установил обработчик, то выполняется обработчик по умолчанию.
SSH и передача файлов
SSH (Secure Shell) — защищенный протокол для удаленного доступа к компьютерам. В *nix-подобных системах (Linux, macOS) ssh-клиент обычно установлен по умолчанию и подключаться можно напрямую из терминала. Для подключения нужно указать адрес сервера и, опционально, имя пользователя и порт.
Простейший вариант - подключение по паролю. В таком случае система будет запрашивать пароль каждый раз при подключении.
Для подключения без ввода пароля можно использовать ключи: приватный (закрытый) и публичный (открытый). Эти ключи связаны друг с другом таким образом, что зашифровав информацию одним ключом, расшифровать ее можно только другим.
Для создания ключей необходимо выполнить команду:
Опционально можно ввести passphrase.
Будут созданы два файла:
/.ssh/id_rsa — приватный ключ.Его нельзя никому передавать.
/.ssh/id_rsa.pub — публичный ключ. Можно спокойно распространять.
Для загрузки публичного ключа на сервер нужно выполнить на локальной машине команду:
Другой вариант - добавить на удаленной машине в файл
/.ssh/authorized_keys содержимое публичного ключа.
Для более удобной работы с ключами можно добавить ключ к ssh-агенту. После этого для него больше не будет спрашиваться passphrase (если был задан) и не нужно будет вводить ключ вручную — он будет автоматически использован при соответствующем подключении.
ssh-agent привязан к сессии. Поэтому, например, если перезагрузить компьютер, то ключи нужно будет добавлять в агент заново.
Протокол SSH можно использовать для передачи файлов на удалённый сервер и загрузки их оттуда.
Перенаправление ввода/вывода
Можно организовать конвейер (pipe) выполняемых команд.
В примере выше вывод команды cat, т. е. текст из файла myfile, будет направлен на вход команды grep, которая выделит только строки, содержащие слово "Linux". Вывод команды grep будет, в свою очередь, направлен на вход команды wc -l, которая подсчитает число таких строк. Статус выхода из канала совпадает со статусом выхода, возвращаемым последней командой.
Работа с текстовыми файлами, find и grep
less - программа для просмотра содержимого текстовых файлов с возможностью его прокрутки. Умеет искать текст по шаблону и подсвечивать результат. Быстро работает с файлами больших размеров, т.к. не нуждается в чтении всего файла перед стартом.
После открытия текстового файла внутри утилиты можно набирать разные команды (они отображаются в левом нижнем углу), рассмотрим некоторые из них.
Для вызова справки внутри утилиты воспользуйтесь клавишей h.
Поиск внутри утилиты:
В режиме поиска:
tail - утилита, выводящая несколько последних строк файла, head - несколько первых строк.
Отображение последних 10 строк файла:
По умолчанию tail выводит именно 10 последних строк.
iconv - преобразование кодировки файла
Find — команда для поиска файлов и каталогов на основе специальных условий.
Команда grep - поиск по шаблону в файле.
Информация о размерах файлов и директорий, свободном пространстве
Для того, чтобы получить информацию о доступном в системе пространстве, можно использовать утилиту df (disk free):
Для оценки занимаемого файлом или директорией дискового пространства используется утилита du (disk usage):
Переменные окружения
Переменные окружения в Linux - специальные переменные, определенные оболочкой и используемые программами во время выполнения. Могут быть определены как системой, так и пользователем. Переменные являются парамти ключ - строковое значение. Несколько значений разделяются двоеточием, если в значении присутствует пробел - нужно использовать кавычки.
Существует три типа переменных окружения:
- локальные переменные окружения (environmental variables) - определены только для текущей сессии, будут безвозвратно стерты по ее завершении. Вывести текущие переменные окружения - команда printenv или env без параметров
- пользовательские переменные окружения (shell variables) - определяются для конкретного пользователя и устанавливаются при входе в систему или удаленном подключении. Хранятся в файлах конфигурации .bashrc, .bash_profile, .bash_login, .profile и других, размещенных в директории пользователя. Для просмотра используется команда set.
- системные переменные окружения - доступны всем пользователям, загружаются при старте системы из файлов /etc/environment, /etc/profile, /etc/profile.d/ /etc/bash.bashrc.
Конфигурационные файлы переменных окружения:
- .bashrc - переменные конкретного пользователя, загружается каждый раз при создании пользователем терминального сеанса
- .bash_profile - загружается каждый раз при удаленном подключении по SSH
- /etc/environment - файл для работы с переменными окружения на системном уровне, будут доступны всем пользователям системы, в том числе при удаленном подключении
- /etc/bashrc - выполняется для всех локальных пользователей при создании сессии в терминале
- /etc/profile - выполняется для всех удаленных пользователей при открытии терминала
Команды для работы с переменными окружения:
Работа с сетью
Основные команды для работы с сетью:
Адаптер lo (loopback) в выводе ifconfig используется системой для обращения к самой себе.
Работа со службами
В RHEL7 для управления службами в операционной системе используется утилита systemd, приносящая концепцию юнитов.
Юниты находятся в конфигурационных файлах, расположенных в директориях (указаны по возрастанию приоритета):
- /usr/lib/systemd/system/ - юниты из установленных покетов RPM
- /run/systemd/system/ - юниты, созданные в рантайме
- /etc/systemd/system/ - юниты, созданные и управляемые системным администратором с помощью команды systemctl enable.
Юниты содержат информацию о системных сервисах, прослушиваемых сокетах, сохраненных снапшотах состояний системы и других обьектах, относящихся к системе инициализации.
Типы юнитов systemd:
- .service – системный сервис,
- .target — группа юнитов systemd,
- .automount – точка автомонтирования файловой системы,
- .device – файл устройства, распознанного ядром,
- .mount – точка монтирования файловой системы,
- .path – файл или директория в файловой системе,
- .scope – процесс, созданный извне,
- .slice – группа иерархически организованных юнитов, управляющая системными процессами,
- .snapshot – сохраненное состояние менеджера systemd,
- .socket – сокет межпроцессного взаимодействия,
- .swap – свап-устройство или свап-файл (файл подкачки),
- .timer – таймер systemd.
Основные команды для работы со службами:
Менеджер пакетов YUM
Менеджер пакетов YUM - высокоуровневое решение по управлению RPM-пакетами. Основные преимущества YUM:
- хранение пакетов в централизованных репозиториях с определяющими зависимости метаданными. Если для установки одного пакета нужно докачать пакеты из других репозиториев - YUM будет об этом знать заранее
- автоматически разрешаются взаимосвязи между пакетами как при установке (докачать нужное) так и при удалении (удалить ставшее ненужным)
Читайте также: