Чем отличается команда rm от unlink?
Обе эти команды умеют удалять, но в 99% используется именно rm, потому что про unlink вы либо не слышали, либо rm с головой хватает.
Есть ошибочное мнение, что unlink предназначен для удаления лишь ссылок — команда вполне может удалять обычные файлы. А если углубиться, то весь процесс удаления в Linux, это удаление ссылок.
У unlink есть всего лишь два ключа запуска help и version. Очень ограниченный инструмент, но чем инструмент проще, тем проще его синтаксис.
Софт очень молчаливый — после удаления, он промолчит и ничего не выведет на экран.
Команда unlink использует системную команду unlink, в то время как команда rm использует системный вызов unlinkat. Оба системных вызова практически одинаковы.
Unlink не умеет работать с wildcard и globbing шаблонами. Так же вы не сможете с помощью нее удалить каталог.
Запустим команду и пытаемся насильно удалить файл которого нет в каталоге:
И получаем - НИЧЕГО. То есть rm -f не вернул ошибку, что файл отсутствует. А если сделать так:
получим ошибку:
unlink: cannot unlink 'test.txt': No such file or directory
То есть если нужно будет обработать результат выполнения команды rm -f, то будет непонятно, существовал ли вообще файл.
С unlink можно гибче обрабатывать эксепшены в скриптах. А еще при использовании команды unlink отсутствует проверка безопасности. Она удалит файл, защищенный от записи. Хотя современная версия rm теперь тоже так умеет.
Небольшой секрет: если нужно, чтобы файл никто не смог удалить, включая root:
chattr позволяет устанавливать и отключать атрибуты файлов, на уровне файловой системы не зависимо от стандартных (чтение, запись, выполнение).
Ключ i - сделает файл неизменяемым. Чтобы снять с файла этот аттрибут, в команде которая выше, замените знак «+» на «-».
📲 Мы в MAX
👉 @sysadminof
Обе эти команды умеют удалять, но в 99% используется именно rm, потому что про unlink вы либо не слышали, либо rm с головой хватает.
Есть ошибочное мнение, что unlink предназначен для удаления лишь ссылок — команда вполне может удалять обычные файлы. А если углубиться, то весь процесс удаления в Linux, это удаление ссылок.
У unlink есть всего лишь два ключа запуска help и version. Очень ограниченный инструмент, но чем инструмент проще, тем проще его синтаксис.
# unlink /tmp/hardlink
# unlink /tmp/fileСофт очень молчаливый — после удаления, он промолчит и ничего не выведет на экран.
Команда unlink использует системную команду unlink, в то время как команда rm использует системный вызов unlinkat. Оба системных вызова практически одинаковы.
Unlink не умеет работать с wildcard и globbing шаблонами. Так же вы не сможете с помощью нее удалить каталог.
Запустим команду и пытаемся насильно удалить файл которого нет в каталоге:
rm -f test.txtИ получаем - НИЧЕГО. То есть rm -f не вернул ошибку, что файл отсутствует. А если сделать так:
unlink test.txtполучим ошибку:
unlink: cannot unlink 'test.txt': No such file or directory
То есть если нужно будет обработать результат выполнения команды rm -f, то будет непонятно, существовал ли вообще файл.
С unlink можно гибче обрабатывать эксепшены в скриптах. А еще при использовании команды unlink отсутствует проверка безопасности. Она удалит файл, защищенный от записи. Хотя современная версия rm теперь тоже так умеет.
Небольшой секрет: если нужно, чтобы файл никто не смог удалить, включая root:
chattr +i test.txtchattr позволяет устанавливать и отключать атрибуты файлов, на уровне файловой системы не зависимо от стандартных (чтение, запись, выполнение).
Ключ i - сделает файл неизменяемым. Чтобы снять с файла этот аттрибут, в команде которая выше, замените знак «+» на «-».
📲 Мы в MAX
👉 @sysadminof
👍6❤1🔥1🗿1
🥷 Living off the Browser — пентест из вкладки Chrome
Приглашаем на открытый урок.
🗓 05 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Пентест. Инструменты и методы проникновения в действии».
Программа вебинара
✔️ Как работает Direct Sockets API в Chrome
✔️ Почему Isolated Web Apps (IWA) — подписные и изолированные приложения
✔️ Как IWA открывают прямой доступ к сетевым протоколам транспортного уровня из JavaScript
Кому будет интересно:
Пентестерам и специалистам по информационной безопасности, которые хотят понять возможности браузера как инструмента для тестирования инфраструктуры.
🔗 Ссылка на регистрацию: https://vk.cc/d2bXbG
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Приглашаем на открытый урок.
🗓 05 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Пентест. Инструменты и методы проникновения в действии».
Программа вебинара
Кому будет интересно:
Пентестерам и специалистам по информационной безопасности, которые хотят понять возможности браузера как инструмента для тестирования инфраструктуры.
🔗 Ссылка на регистрацию: https://vk.cc/d2bXbG
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🔥 Bash: Удаление старых логов автоматически
📌 Расшифровка:
*
*
*
*
*
📅 Можно повесить этот скрипт на
📲 Мы в MAX
👉 @sysadminof
#!/bin/bash
# Удалить логи старше 7 дней в указанной директории
LOG_DIR="/var/log/myapp"
find "$LOG_DIR" -type f -name "*.log" -mtime +7 -delete
📌 Расшифровка:
*
find — ищем файлы*
-type f — только файлы*
-name "*.log" — с расширением .log*
-mtime +7 — старше 7 дней*
-delete — удаляем📅 Можно повесить этот скрипт на
cron, чтобы запускался каждый день:
# Открываем планировщик
crontab -e
# Добавляем строчку (запуск в 3:00 ночи)
0 3 * * * /path/to/script.sh
📲 Мы в MAX
👉 @sysadminof
👍4🔥3
Zenith - что-то вроде top или htop, но с диаграммами с возможностью масштабирования, использованием CPU, GPU, сети и диска.
Особенности
Дополнительные графики использования ЦП, памяти, сети и дисков
Быстрый просмотр свободного места на диске, IP-адресов сетевых карт, частоты процессора
Выделение основных пользователей ЦП, памяти и диска
Процент заряда батареи, время зарядки или разрядки, потребляемая мощность
Таблица процессов с возможностью фильтрации по типу верхней части, включающая использование диска каждым процессом
Изменение приоритета процесса
Представления диаграмм с возможностью масштабирования (с поддержкой прокрутки назад во времени)
Управление процессами с помощью сигналов
Сохранение данных о производительности между запусками
Метрики использования GPU для графических процессоров NVIDIA (с --features nvidia), включая использование GPU для каждого процесса
Графики свободного места на диске
Учет задержек (в Linux при запуске zenith с правами root)
Установка на дистрибутивы Linux на базе Debian/Ubuntu (64-бит)
https://github.com/bvaisvil/zenith
📲 Мы в MAX
👉 @sysadminof
Особенности
Дополнительные графики использования ЦП, памяти, сети и дисков
Быстрый просмотр свободного места на диске, IP-адресов сетевых карт, частоты процессора
Выделение основных пользователей ЦП, памяти и диска
Процент заряда батареи, время зарядки или разрядки, потребляемая мощность
Таблица процессов с возможностью фильтрации по типу верхней части, включающая использование диска каждым процессом
Изменение приоритета процесса
Представления диаграмм с возможностью масштабирования (с поддержкой прокрутки назад во времени)
Управление процессами с помощью сигналов
Сохранение данных о производительности между запусками
Метрики использования GPU для графических процессоров NVIDIA (с --features nvidia), включая использование GPU для каждого процесса
Графики свободного места на диске
Учет задержек (в Linux при запуске zenith с правами root)
Установка на дистрибутивы Linux на базе Debian/Ubuntu (64-бит)
sudo apt install curl
curl -sL https://raw.githubusercontent.com/wimpysworld/deb-get/main/deb-get | sudo -E bash -s install deb-gethttps://github.com/bvaisvil/zenith
📲 Мы в MAX
👉 @sysadminof
👍6🔥2
Горячие клавиши терминала в Linux
Управление процессами
Перемещение курсора
Редактирование текста
Вырезание и вставка текста
Дополнение команды
Поиск команд в истории
📲 Мы в MAX
👉 @sysadminof
Управление процессами
Ctrl + C - прервать процесс (послать сигнал Interrupt).Ctrl + Z - приостановить процесс (послать сигнал Stop).Перемещение курсора
Ctrl + A - переместить курсор в начало строки.Ctrl + E - переместить курсор в конец строки (E - End).Alt + F - переместить курсор на одно слово вперед (F - Forward).Alt + B - переместить курсор на одно слово назад (B - Back).Ctrl + F - переместить курсор на один символ вперед (F - Forward).Ctrl + B - переместить курсор на один символ назад (B - Back).Редактирование текста
Ctrl + L - очистить экран. Аналог команде clear.Ctrl + D - удалить символ под курсором (D - Delete).Alt + T - поменять местами два слова. Слово под курсором меняется со словом слева от курсора (T - Translocate)Ctrl + T - поменять местами два символа. Символ под курсором меняется с символом слева от курсора (T - Translocate).Alt + L - перевести символы в нижний регистр, начиная с символа под курсором и до конца слова (L - Lowercase).Alt + U - перевести символы в верхний регистр, начиная с символа под курсором и до конца слова (U - Uppercase).Вырезание и вставка текста
Ctrl + K - вырезать текст от курсора до конца строки (K - Kill).Ctrl + U - вырезать текст от курсора до начала строки.Alt + D - вырезать слово от курсора до его конца (D - Delete).Alt + Backspace - вырезать слово от курсора до его начала. Если курсор находится на начале слова, то удаляется предыдущее слово.Ctrl + Y - вставить вырезанный текст из буфера обмена на место курсора.Дополнение команды
Tab - дополнить текст команды. (ls essa => ls essay.txt)Alt + ? - вывести все варианты дополнения (тоже если нажать Tab дважды).Alt + * - вставить все варианты дополнения в аргументы команды.Поиск команд в истории
Ctrl + R - начать поиск команд в истории. Нажмите еще раз чтобы двигаться вверх по истории. Нажмите Enter чтобы выполнить найденную команду.Ctrl + J - вставить найденную команду в терминал, без выполнения.Ctrl + G - прекратить поиск команд в истории.Ctrl + P - показать предыдущую запись в истории. Аналог клавише со стрелкой вверх. (P - uP).Ctrl + N - показать следующую запись в истории. Аналог клавише со стрелкой вниз. (N - dowN).Alt + < - перейти к первой записи в истории.Alt + > - перейти к последней записи в истории.Alt + N - поиск в прямом порядке (ввести команду и нажать Enter).Alt + P - поиск в обратном порядке (ввести команду и нажать Enter).Ctrl + O - выполнить команду из истории и перейти к выполнению следующей по списку. Работает только в поиске Ctrl+R.📲 Мы в MAX
👉 @sysadminof
👍8❤1🔥1
Труконф на Видео+Конференции 2026 ☄️
21 октября в Москве — встречаемся на главном форуме страны о решениях для корпоративных коммуникаций!
В программе:
🔴 Опыт российских компаний — заказчики и пользователи о создании инфраструктуры коммуникаций с нуля, миграции на новые системы и дальнейшее развитие проектов.
🔴 Аналитика рынка ВКС и мессенджеров — обсудим главные тренды и события.
🔴 Роль ИИ в вашем бизнесе — разберёмся с MCP и безопасным внедрением агентов в рабочий мессенджер.
✨ Кстати, поговорим и об эффективности ИИ-решений в общении — своим мнением поделятся представители крупных организаций во время специальной панельной дискуссии.
👥 Продуктовое шоу главного спонсора — Труконф. Анонсируем новые возможности и решения. Ранний доступ — в нашей демозоне 🔥
🔜 Зарегистрироваться на Видео+Конференцию 2026
Реклама. ООО «Труконф». erid:2VtzqwHGXMF
21 октября в Москве — встречаемся на главном форуме страны о решениях для корпоративных коммуникаций!
В программе:
Реклама. ООО «Труконф». erid:2VtzqwHGXMF
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🤪3
Команда crontab: опции, ключи и примеры использования
Планировщик cron для запуска задач с заданными интервалом времени от имени текущего пользователя. Формат планирования задачи: "(минута) (час) (день_месяца) (месяц) (день_недели) команда".
Редактирует файл crontab для текущего пользователя:
Выводит список существующих задая для текущего пользоваетеля:
Удаляет все задачи cron для текущего пользователя:
Пример задачи, которая запускается ежедневно в 10:00. * означает любое значение:
Пример задачи, которая запускается каждую минуту 3-го апреля:
Пример задачи, которая запускается каждую пятницу в 02:30:
📲 Мы в MAX
👉 @sysadminof
Планировщик cron для запуска задач с заданными интервалом времени от имени текущего пользователя. Формат планирования задачи: "(минута) (час) (день_месяца) (месяц) (день_недели) команда".
Редактирует файл crontab для текущего пользователя:
crontab -eВыводит список существующих задая для текущего пользоваетеля:
crontab -lУдаляет все задачи cron для текущего пользователя:
crontab -rПример задачи, которая запускается ежедневно в 10:00. * означает любое значение:
0 10 * * * {{path/to/script.sh}}Пример задачи, которая запускается каждую минуту 3-го апреля:
* * 3 Apr * {{path/to/script.sh}}Пример задачи, которая запускается каждую пятницу в 02:30:
30 2 * * Fri {{path/to/script.sh}}📲 Мы в MAX
👉 @sysadminof
👍6