Команда chgrp и изменение атрибутов ссылок
В Linux у каждого файла есть владелец и группа. Также описываются права остальных пользователей, которые состоят из трёх пунктов: чтение, запись, выполнение. Для их изменения (определения дефолтных) используется команда umask, для изменения владельца и группы: chown и chgrp. Подробно про группы говорили тут.
Без параметров chgrp просто меняет группу для конкретного файла либо каталога:
И вот тут момент №1 - если вы меняете группу у символьной ссылки, ее атрибуты остаются нетронутыми и аффектится только целевой файл. Для того, чтобы изменить атрибут ссылки, нужно использовать флаг "-h" (аналогично для chown):
Момент №2 - если вы рекурсивно меняете группу для каталога, при обработке ссылки атрибуты выставляются именно для нее, а не файла. Для дереференса ссылок есть 2 флага: "-H" и "-L".
"-H" переходит по ссылкам и меняет атрибуты ресурсов. При переходе на каталог рекурсивная обработка для него прекращается (только каталогу группу поменяем и все). "-L" при переходе на каталог идет рекурсивно и по нему тоже.
LinuxCamp | #utils
В Linux у каждого файла есть владелец и группа. Также описываются права остальных пользователей, которые состоят из трёх пунктов: чтение, запись, выполнение. Для их изменения (определения дефолтных) используется команда umask, для изменения владельца и группы: chown и chgrp. Подробно про группы говорили тут.
Без параметров chgrp просто меняет группу для конкретного файла либо каталога:
$ sudo chgrp avengers file
-rw-rw-r-- 1 parallels avengers file
И вот тут момент №1 - если вы меняете группу у символьной ссылки, ее атрибуты остаются нетронутыми и аффектится только целевой файл. Для того, чтобы изменить атрибут ссылки, нужно использовать флаг "-h" (аналогично для chown):
$ chgrp -h parallels file_ln
lrwxrwxrwx 1 root parallels file_ln -> ../file
Момент №2 - если вы рекурсивно меняете группу для каталога, при обработке ссылки атрибуты выставляются именно для нее, а не файла. Для дереференса ссылок есть 2 флага: "-H" и "-L".
"-H" переходит по ссылкам и меняет атрибуты ресурсов. При переходе на каталог рекурсивная обработка для него прекращается (только каталогу группу поменяем и все). "-L" при переходе на каталог идет рекурсивно и по нему тоже.
$ chgrp -RH www-data /var/www
$ chgrp -RL www-data /var/www
LinuxCamp | #utils
👍20🔥10❤🔥2❤1
Linux roadmap
Набросал тут план изучения Linux для новичков. Давайте фитбек - чего бы добавили, что может быть лишним)
Основные модули:
1. Введение - понимание базовых определений, различий между "Server" и "Desktop" дистрибутивами, умение накатить линуху на виртуальную машину и физическое железо.
2. Терминал и оболочка - понимание того, что из себя представляет оболочка и какие они бывают.
3. Файловая система - разбор дерева каталогов, типов файлов, их атрибутов и прав доступа, дисков и разделов.
4. Пользователи и группы - управление пользователями/группами, работа со спец. файлами "/etc/group" и т.д. Что такое sudo и привилегии администратора.
5. Процессы и программы - понимание различий между понятиями, инструменты мониторинга процессов, управление заданиями, использование сигналов.
6. Демоны и systemd - управление и отладка демонов/сервисов.
7. Работа с пакетами - пакетные менеджеры, подключение репозиториев. Принципы управления пакетами.
8. Переменные оболочки - способы их объявления, знание основных переменных "PATH", "HOME" и т.д.
9. Продвинутая работа с оболочкой - перенаправление ввода/вывода, пайпы, шаблоны, условные списки.
10. Создание bash скриптов - базовый синтаксис, примеры, где может пригодиться набросать свой скрипт для автоматизаций.
11. Логирование и мониторинг - умение отлаживать ошибки системы и софта через syslog и journal.
12. Сети и протоколы - понимание различий между ssh, scp, ftp. Умение передавать данные с клиента на сервер и обратно. Подгрузка файлов с инета через curl и wget.
13. Конфигурация системы - структура графического окружения (wm, dm, композитинг) и его настройка.
14. Сборка софта по исходникам - базовая работа с системами (cmake, meson). Понимание файлов, которые используются для сборки (если к проекту не прилагается нормальный README)
LinuxCamp | Chat | #roadmap
Набросал тут план изучения Linux для новичков. Давайте фитбек - чего бы добавили, что может быть лишним)
Основные модули:
1. Введение - понимание базовых определений, различий между "Server" и "Desktop" дистрибутивами, умение накатить линуху на виртуальную машину и физическое железо.
2. Терминал и оболочка - понимание того, что из себя представляет оболочка и какие они бывают.
3. Файловая система - разбор дерева каталогов, типов файлов, их атрибутов и прав доступа, дисков и разделов.
4. Пользователи и группы - управление пользователями/группами, работа со спец. файлами "/etc/group" и т.д. Что такое sudo и привилегии администратора.
5. Процессы и программы - понимание различий между понятиями, инструменты мониторинга процессов, управление заданиями, использование сигналов.
6. Демоны и systemd - управление и отладка демонов/сервисов.
7. Работа с пакетами - пакетные менеджеры, подключение репозиториев. Принципы управления пакетами.
8. Переменные оболочки - способы их объявления, знание основных переменных "PATH", "HOME" и т.д.
9. Продвинутая работа с оболочкой - перенаправление ввода/вывода, пайпы, шаблоны, условные списки.
10. Создание bash скриптов - базовый синтаксис, примеры, где может пригодиться набросать свой скрипт для автоматизаций.
11. Логирование и мониторинг - умение отлаживать ошибки системы и софта через syslog и journal.
12. Сети и протоколы - понимание различий между ssh, scp, ftp. Умение передавать данные с клиента на сервер и обратно. Подгрузка файлов с инета через curl и wget.
13. Конфигурация системы - структура графического окружения (wm, dm, композитинг) и его настройка.
14. Сборка софта по исходникам - базовая работа с системами (cmake, meson). Понимание файлов, которые используются для сборки (если к проекту не прилагается нормальный README)
LinuxCamp | Chat | #roadmap
🔥65👍30❤6✍4❤🔥1🗿1
Как исправить "rm: cannot remove ‘file’: Device or Resource Busy"?
Бывало же у вас такое - заканчиваешь работать с каким-то ресурсом (файлом/каталогом/устройством), хочешь его удалить и видишь ошибку о том, что он чем-то занят (используется системой либо каким-то процессом).
Тут нужно понять, в чем конкретная причина и чем он задействован: то ли процессом, то ли это, быть может, точка монтирования для какой-то FS…
Распространенных решения вижу 2:
1. Использование команд "lsof + fuser" для определения занятых ресурсов и завершения процессов. Если вы не знаете, какая программа мешает выполнить операцию, используйте lsof:
Если у нас ресурс занимают 2 процесса, можно и через kill все грохнуть. Если их много, можно более автоматизированно - через fuser. Эта команда завершит все процессы, которые что-то используют в целевом каталоге:
После выполнение мы вырубим сразу оба процесса 22331 и 22332.
2. Определение точки монтирования. Это полезно, когда какая-нибудь флешка или внешний диск монтирован в целевой каталог. Узнать, так ли это, можно через команду mount. Допустим, у меня не получается удалить test:
Проверяем, является ли tmpfsdir точкой монтирования:
Вывод говорит о том, что в каталог tmpfsdir примонтирована FS tmpfs. Для успешного выполнения операции нужно размонтировать каталог:
LinuxCamp | Chat | #filesystem
Бывало же у вас такое - заканчиваешь работать с каким-то ресурсом (файлом/каталогом/устройством), хочешь его удалить и видишь ошибку о том, что он чем-то занят (используется системой либо каким-то процессом).
rm: cannot remove 'file-or-directory': Device or resource busy
Тут нужно понять, в чем конкретная причина и чем он задействован: то ли процессом, то ли это, быть может, точка монтирования для какой-то FS…
Распространенных решения вижу 2:
1. Использование команд "lsof + fuser" для определения занятых ресурсов и завершения процессов. Если вы не знаете, какая программа мешает выполнить операцию, используйте lsof:
$ lsof +D Sources/App/
COMMAND PID USER FD NAME
server 22331 xoadmin txt Sources/App/server
client 22332 xoadmin txt Sources/App/client
Если у нас ресурс занимают 2 процесса, можно и через kill все грохнуть. Если их много, можно более автоматизированно - через fuser. Эта команда завершит все процессы, которые что-то используют в целевом каталоге:
$ fuser -k Sources/App/
После выполнение мы вырубим сразу оба процесса 22331 и 22332.
2. Определение точки монтирования. Это полезно, когда какая-нибудь флешка или внешний диск монтирован в целевой каталог. Узнать, так ли это, можно через команду mount. Допустим, у меня не получается удалить test:
$ rm -rf test
rm: cannot remove 'test/tmpfsdir': Device or resource busy
Проверяем, является ли tmpfsdir точкой монтирования:
$ mount | grep test/tmpfsdir
none on /home/u/test/tmpfsdir type tmpfs (rw,relatime,inode64)
Вывод говорит о том, что в каталог tmpfsdir примонтирована FS tmpfs. Для успешного выполнения операции нужно размонтировать каталог:
$ sudo umount test/tmpfsdir
$ rm -rf test
LinuxCamp | Chat | #filesystem
👍33🔥13❤🔥2
Лучшие эмуляторы терминала
Эмулятор терминала - утилита, которая дает доступ к командной оболочке и позволяет нам работать с системой через CLI интерфейс.
Их, на самом деле, не 1 и не 2) Вы, возможно, привыкли к дефолтным эмуляторам оболочки от гнома там и kde. Вдруг вам чего-то в них не хватает, что есть в сторонних...
1. Terminator - ключевая фича заключается в том, что оно позволяет раскидывать свои окна по удобной сетке.
Может пригодиться, если вам не нравится переключаться по вкладкам или плодить много окон. Более подробно про него вот тут.
2. Tilix - поддерживает систему “drag and drop”. Вы можете перетащить файл в окно терминала и получите на выходе полный путь в строке ввода.
Также он удобно структурирует окна списком, по которому можно ходить через горячие клавиши. Как и Terminator может разбивать окна по сетке.
3. Guake - неплохо кастомизируется через встроенный менеджер. Сворачивается и разворачивается по горячим клавишам.
4. Alacritty - отличает от остальных его тот факт, что он “GPU-accelerated”. Это говорит о том, что для рендера он использует видюху => работает плавнее. Также он кроссплатформенный - запускается на Windows/Linux/MacOS.
Так как для рендера используется OpenGL, эмулятор позволяет более продвинуто настроить внешний вид и добавить, например, прозрачность.
Кастомизируется он через файл. Более подробно про его настройку можете почитать тут. Пример готового конфига приложу по ссылке. Также найти его можно на гите проекта в релизах.
Инструкцию по установке на Ubuntu также прикладываю.
LinuxCamp | Chat | #top
Эмулятор терминала - утилита, которая дает доступ к командной оболочке и позволяет нам работать с системой через CLI интерфейс.
Их, на самом деле, не 1 и не 2) Вы, возможно, привыкли к дефолтным эмуляторам оболочки от гнома там и kde. Вдруг вам чего-то в них не хватает, что есть в сторонних...
1. Terminator - ключевая фича заключается в том, что оно позволяет раскидывать свои окна по удобной сетке.
Может пригодиться, если вам не нравится переключаться по вкладкам или плодить много окон. Более подробно про него вот тут.
$ sudo apt install terminator
2. Tilix - поддерживает систему “drag and drop”. Вы можете перетащить файл в окно терминала и получите на выходе полный путь в строке ввода.
Также он удобно структурирует окна списком, по которому можно ходить через горячие клавиши. Как и Terminator может разбивать окна по сетке.
$ sudo apt install tilix
3. Guake - неплохо кастомизируется через встроенный менеджер. Сворачивается и разворачивается по горячим клавишам.
$ sudo apt install guake
4. Alacritty - отличает от остальных его тот факт, что он “GPU-accelerated”. Это говорит о том, что для рендера он использует видюху => работает плавнее. Также он кроссплатформенный - запускается на Windows/Linux/MacOS.
Так как для рендера используется OpenGL, эмулятор позволяет более продвинуто настроить внешний вид и добавить, например, прозрачность.
Кастомизируется он через файл. Более подробно про его настройку можете почитать тут. Пример готового конфига приложу по ссылке. Также найти его можно на гите проекта в релизах.
Инструкцию по установке на Ubuntu также прикладываю.
LinuxCamp | Chat | #top
👍28✍7🔥7❤3🥴1
Топ 5 полезных приложений на Linux
В линухе хоть и меньше толковых приложений, чем в MacOS или Windows, но они все еще есть и очень выручают:
1. Todoist - очень популярный планировщик задач. Он кроссплатформенный, в свое время использовал и на android и на ios. Ставится он через snap либо AppImage:
Есть платный и бесплатный формат использования. Мне от него требовалось только приоритизировать задачи и раскидывать их на неделю - все это включено даром.
2. Standard Notes - приложение для заметок, которое может выступать некой заменой obsidian и notion. Также ставится на разные ОС. Отлично подходит, если вы пишите какие-то сценарии либо длинные лонгриды - их удобно менеджерить. Ставится через AppImage, ссылку приложил.
3. KDE Connect - входит в десктопное окружение Plasma. Позволяет управлять мобилкой через десктоп: просматривать уведомления, уровень заряда, передавать файлы и т.д. В некоторых дистрах предоставлена по дефолту.
4. TimeShift - утилита для создания бэкапов системы (FS, настроек, конфигураций). Для Linux это может быть очень полезно, т.к. нередко новички в процессе разбирательств что-то лишнее тыкают и все ломают. Нашел отличный туториал по ее использованию. Установка:
5. Syncthing - используется для синхронизации файлов между системами. Предположим, мы постоянно работаем с каталогом Documents на компе и ноуте. Если обе системы используют syncthing и следят за Documents, то на них всегда будет актуальное содержимое этого каталога. Установка тут. Еще докину ссылку на информативный туториал.
LinuxCamp | #top
В линухе хоть и меньше толковых приложений, чем в MacOS или Windows, но они все еще есть и очень выручают:
1. Todoist - очень популярный планировщик задач. Он кроссплатформенный, в свое время использовал и на android и на ios. Ставится он через snap либо AppImage:
$ sudo snap install todoist
Есть платный и бесплатный формат использования. Мне от него требовалось только приоритизировать задачи и раскидывать их на неделю - все это включено даром.
2. Standard Notes - приложение для заметок, которое может выступать некой заменой obsidian и notion. Также ставится на разные ОС. Отлично подходит, если вы пишите какие-то сценарии либо длинные лонгриды - их удобно менеджерить. Ставится через AppImage, ссылку приложил.
3. KDE Connect - входит в десктопное окружение Plasma. Позволяет управлять мобилкой через десктоп: просматривать уведомления, уровень заряда, передавать файлы и т.д. В некоторых дистрах предоставлена по дефолту.
4. TimeShift - утилита для создания бэкапов системы (FS, настроек, конфигураций). Для Linux это может быть очень полезно, т.к. нередко новички в процессе разбирательств что-то лишнее тыкают и все ломают. Нашел отличный туториал по ее использованию. Установка:
$ sudo apt install timeshift
5. Syncthing - используется для синхронизации файлов между системами. Предположим, мы постоянно работаем с каталогом Documents на компе и ноуте. Если обе системы используют syncthing и следят за Documents, то на них всегда будет актуальное содержимое этого каталога. Установка тут. Еще докину ссылку на информативный туториал.
LinuxCamp | #top
👍25🔥10❤5🤪2💊1
GE-Proton 10-2: исправления для Windows игр на Linux, SteamOS (Steam Deck)
Proton — специальный «прослойка» от Valve, которая позволяет запускать Windows-игры на Linux. Сделана на основе Wine.
GE-Proton (GloriousEggroll Proton) — модифицированная версия Proton, которую делает разработчик с ником GloriousEggroll.
Она обновляется быстрее, включает больше фиксиков, свежие патчи и поддержку некоторых проблемных игр, которые не заводятся на официальном проекте.
Основные изменения в GE-Proton:
— Исправлена ошибка в скрипте, вызванная отсутствующей запятой, что приводило к проблемам с префиксами. Мем😁
— Добавлен патч для поддержки прокрутки с тачпада в WineWayland
— Добавлены патчи, позволяющие запускать больше лаунчеров в среде Wayland (epic, battlenet, star citizen)
— Обновлена библиотека xalia с включением изменений из основного репозитория
Вот ссылка на релиз 10-2. В гите можно подробнее ознакомиться с проектом и правками📱
LinuxCamp | #news
Proton — специальный «прослойка» от Valve, которая позволяет запускать Windows-игры на Linux. Сделана на основе Wine.
GE-Proton (GloriousEggroll Proton) — модифицированная версия Proton, которую делает разработчик с ником GloriousEggroll.
Она обновляется быстрее, включает больше фиксиков, свежие патчи и поддержку некоторых проблемных игр, которые не заводятся на официальном проекте.
Основные изменения в GE-Proton:
— Исправлена ошибка в скрипте, вызванная отсутствующей запятой, что приводило к проблемам с префиксами. Мем
— Добавлен патч для поддержки прокрутки с тачпада в WineWayland
— Добавлены патчи, позволяющие запускать больше лаунчеров в среде Wayland (epic, battlenet, star citizen)
— Обновлена библиотека xalia с включением изменений из основного репозитория
Вот ссылка на релиз 10-2. В гите можно подробнее ознакомиться с проектом и правками
LinuxCamp | #news
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍9❤🔥3😁1
Приводим хаос данных к порядку
Сегодня мы говорим о команде sort. Утилита выводит текстовые строки в определенном порядке. С помощью нее может быть отсортировано содержимое файла либо вывод какой-либо команды. Основные опции можете просмотреть на OpenNet.
Примеры использования
Создадим файл с несколькими строками, на котором и будем проверять возможности утилиты. Кста, заполнить его из CMD можно вот так:
Опция "-e" указывает команде, что нужно обрабатывать спецсимволы, а "\n" у нас - спецсимвол перевода строки. Теперь выполним сортировку строк:
После выполнения команды сам файл никак не поменяется: sort просто получает на вход данные с ресурса и итог кидает в stdout. Посмотрим на несколько принципов, по которым выполняется сортировка:
- Строки с цифрами размещаются выше других строк
- Строки, начинающиеся с букв нижнего регистра размещаются выше
- Сортировка выполняется в соответствии алфавиту
- Строки сначала сортируются по алфавиту, а уже вторично по другим правилам.
Удаление дубликатов
100% полезная опция "-u". Она удаляет дубликаты. Представьте, вам нужно проверить логи в "/var/log/syslog", которые туда посылает образный "демон". Если он пишет туда много одинаковых, вероятно, вам не нужен лишний спам. Для предварительной очистки вывода используйте "-u":
Сортировка по колонке
Давайте упорядочим вывод по конкретному полю. Для этого указываем флаг "-k" с номером колонки. Сейчас будем работать с названиями каталогов:
Сортировка по номеру
Входные данных также можем отсортировать по числовому значению. Для этого используем "-n":
LinuxCamp | #utils
Сегодня мы говорим о команде sort. Утилита выводит текстовые строки в определенном порядке. С помощью нее может быть отсортировано содержимое файла либо вывод какой-либо команды. Основные опции можете просмотреть на OpenNet.
Примеры использования
Создадим файл с несколькими строками, на котором и будем проверять возможности утилиты. Кста, заполнить его из CMD можно вот так:
$ echo -e "computer\nmouse\nLAPTOP\ndata" > test.txt
$ cat test.txt
computer
mouse
LAPTOP
data
Опция "-e" указывает команде, что нужно обрабатывать спецсимволы, а "\n" у нас - спецсимвол перевода строки. Теперь выполним сортировку строк:
$ sort test.txt
computer
data
LAPTOP
mouse
После выполнения команды сам файл никак не поменяется: sort просто получает на вход данные с ресурса и итог кидает в stdout. Посмотрим на несколько принципов, по которым выполняется сортировка:
- Строки с цифрами размещаются выше других строк
- Строки, начинающиеся с букв нижнего регистра размещаются выше
- Сортировка выполняется в соответствии алфавиту
- Строки сначала сортируются по алфавиту, а уже вторично по другим правилам.
Удаление дубликатов
100% полезная опция "-u". Она удаляет дубликаты. Представьте, вам нужно проверить логи в "/var/log/syslog", которые туда посылает образный "демон". Если он пишет туда много одинаковых, вероятно, вам не нужен лишний спам. Для предварительной очистки вывода используйте "-u":
$ sort -u /var/log/syslog
Сортировка по колонке
Давайте упорядочим вывод по конкретному полю. Для этого указываем флаг "-k" с номером колонки. Сейчас будем работать с названиями каталогов:
$ ls -l | sort -k9
... 6 user user 4096 дек 6 14:29 Android
... 3 user user 4096 янв 14 22:18 Desktop
... 5 user user 12288 янв 15 14:59 Downloads
... 7 user user 4096 янв 13 11:42 Lightworks
Сортировка по номеру
Входные данных также можем отсортировать по числовому значению. Для этого используем "-n":
$ ls -l | sort -nk2
... 5 user user 12288 янв 15 14:59 Downloads
... 6 user user 4096 дек 6 14:29 Android
... 7 user user 4096 июн 10 2015 Sources
... 8 user user 12288 янв 11 12:33 Pictures
LinuxCamp | #utils
👍29🔥10❤7
Шпора по флагам rsync
Rsync - программка, которую можно использовать для синхронизации файлов и каталогов с локального компьютера на удаленный и наоборот. Чем-то напоминает scp.
Взаимодействием с сервером возможности утилиты не ограничиваются. Все операции можно выполнять и локально. По умолчанию rsync копирует ресурсы без учета предыдущего содержимого целевого каталога.
Например, если вы перенесли каталог d, содержащий файлы a и b, на машину, на которой был файл d/c, то после копирования сервер будет содержать d/a, d/b и d/c.
Чтобы создать точную копию исходного каталога, необходимо из целевого каталога удалить не существующие в исходном каталоге файлы, например d/c в примере:
Посмотрим на еще 1 пример:
В результате выполнения, каталоги "dir1, dir2 и dir3", вместе со всем их содержимым, будут рекурсивно скопированы в каталог backup.
Если какие-то файлы уже есть в каталоге backup, и не были изменены, они будут пропущены.
Исключение файлов и каталогов
Еще одной значительной фичей rsync является способность исключать файлы и каталоги из процесса передачи.
Например, ты хочешь перенести локальный каталог src на хост и при этом исключить все данные с именем .git. Можно сделать следующим образом:
Чтобы базовые флаги всегда были под рукой, собрал небольшую шпору, сохраняем)
LinuxCamp | #utils
Rsync - программка, которую можно использовать для синхронизации файлов и каталогов с локального компьютера на удаленный и наоборот. Чем-то напоминает scp.
$ rsync file1 file2 ... user@host:dest
$ rsync -a dir host:dest_dir
Взаимодействием с сервером возможности утилиты не ограничиваются. Все операции можно выполнять и локально. По умолчанию rsync копирует ресурсы без учета предыдущего содержимого целевого каталога.
Например, если вы перенесли каталог d, содержащий файлы a и b, на машину, на которой был файл d/c, то после копирования сервер будет содержать d/a, d/b и d/c.
Чтобы создать точную копию исходного каталога, необходимо из целевого каталога удалить не существующие в исходном каталоге файлы, например d/c в примере:
$ rsync -a --delete dir host:dest_dir
Посмотрим на еще 1 пример:
$ rsync -avh --del --progress dir1 dir2 dir3 backup
В результате выполнения, каталоги "dir1, dir2 и dir3", вместе со всем их содержимым, будут рекурсивно скопированы в каталог backup.
Если какие-то файлы уже есть в каталоге backup, и не были изменены, они будут пропущены.
Исключение файлов и каталогов
Еще одной значительной фичей rsync является способность исключать файлы и каталоги из процесса передачи.
Например, ты хочешь перенести локальный каталог src на хост и при этом исключить все данные с именем .git. Можно сделать следующим образом:
$ rsync -a --exclude=.git src host:
Чтобы базовые флаги всегда были под рукой, собрал небольшую шпору, сохраняем)
LinuxCamp | #utils
🔥22👍17❤3
Пополнение софта в библиотеке
Компания Fender, известная своими гитарами и аудиооборудованием, представила новое приложение для записи и обработки звука – Fender Studio. Оно доступно на нашем Linux).
Fender Studio базируется на профессиональной DAW Studio One Pro (приложение для цифровой аудиосистемы), но предлагает упрощённый интерфейс.
Что предлагает Fender Studio?
- Интуитивный интерфейс для музыкантов, подходящий как новичкам, так и профессионалам.
- Многодорожечную запись с поддержкой VST-плагинов.
- Встроенные инструменты для обработки гитарного звука, включая эффекты и усилители.
- Совместимость с ALSA и PipeWire.
Приложение доступно для бесплатной загрузки в формате Flatpak с официального сайта. Появление утилиты – знак растущего интереса крупных компаний к открытой платформе.
LinuxCamp | #news
Компания Fender, известная своими гитарами и аудиооборудованием, представила новое приложение для записи и обработки звука – Fender Studio. Оно доступно на нашем Linux).
Fender Studio базируется на профессиональной DAW Studio One Pro (приложение для цифровой аудиосистемы), но предлагает упрощённый интерфейс.
Что предлагает Fender Studio?
- Интуитивный интерфейс для музыкантов, подходящий как новичкам, так и профессионалам.
- Многодорожечную запись с поддержкой VST-плагинов.
- Встроенные инструменты для обработки гитарного звука, включая эффекты и усилители.
- Совместимость с ALSA и PipeWire.
Приложение доступно для бесплатной загрузки в формате Flatpak с официального сайта. Появление утилиты – знак растущего интереса крупных компаний к открытой платформе.
LinuxCamp | #news
👍20🔥9❤🔥2❤2😁1
Как работает cron и зачем он нужен?
Если вы хоть раз хотели, чтобы скрипт запускался сам — без вашего участия — скорее всего, вам пригодится cron. Это системный инструмент (ДЕМОН), который позволяет выполнять команды/скрипты по расписанию.
Сфер применения достаточно много, но суть технологии - автоматизировать рутинные задачи: очистка логов, обновление данных и т.д. Как говорилось в одной из статей выше cron — демон, который выполняет команды в запланированное время.
Дополню, что он каждую минуту проверяет свое расписание, наступило ли время начинать выполнять задачу. Расписание хранится в специальной таблице — crontab и задается в формате:
Этот скрипт будет запускаться каждый день в 4:00. Звёздочка означает «каждое значение»:
* * * * * — каждую минуту, каждый час, каждый день...;
30 9 * * * — каждый день в 9:30;
0 0 * * 0 — каждое воскресенье в полночь;
На старте может быть непонятно, поэтому пользуйтесь: crontab.guru
Практический пример
Допустим у нас в какой-нибудь папке (например, /var/log/myapp) копятся логи и мы хотим удалять раз в неделю старые. Сначала создадим простой bash-скрипт clear_logs.sh:
Этот скрипт ищет ".log" файлы в указанной директории (LOG_DIR) и удаляет те, что старше 7 дней (DAYS_TO_KEEP). Делаем файл исполняемым и добавляем cron-задачу:
"0 0 * * 0" — каждое воскресенье в 00:00;
">> /var/log/clear_logs.log" — всё, что скрипт напишет в stdout (обычный вывод), попадёт в лог;
"2>&1" — перенаправление потока ошибок stderr в поток stdout, чтобы они тоже записывались в лог;
В нашем случае скрипт ничего не выводит, однако если возникнут ошибки по типу: "нет доступа к папке" или "нет прав на удаление", то они пойдут в stderr и запишутся в лог.
Важные команды:
Чтобы посмотреть список задач (расписание), можно использовать команду "crontab -l". Создание и изменение задач, команда "crontab -e". Удаление всех задач "crontab -r".
LinuxCamp | #cron
Если вы хоть раз хотели, чтобы скрипт запускался сам — без вашего участия — скорее всего, вам пригодится cron. Это системный инструмент (ДЕМОН), который позволяет выполнять команды/скрипты по расписанию.
Сфер применения достаточно много, но суть технологии - автоматизировать рутинные задачи: очистка логов, обновление данных и т.д. Как говорилось в одной из статей выше cron — демон, который выполняет команды в запланированное время.
Дополню, что он каждую минуту проверяет свое расписание, наступило ли время начинать выполнять задачу. Расписание хранится в специальной таблице — crontab и задается в формате:
* * * * * команда
┬ ┬ ┬ ┬ ┬
│ │ │ │ └── День недели (0–7) — где 0 и 7 — это воскресенье
│ │ │ └──── Месяц (1–12)
│ │ └─────── День месяца (1–31)
│ └──────── Час (0–23)
└────────── Минута (0–59)
0 4 * * * /home/user/backup.sh
Этот скрипт будет запускаться каждый день в 4:00. Звёздочка означает «каждое значение»:
* * * * * — каждую минуту, каждый час, каждый день...;
30 9 * * * — каждый день в 9:30;
0 0 * * 0 — каждое воскресенье в полночь;
На старте может быть непонятно, поэтому пользуйтесь: crontab.guru
Практический пример
Допустим у нас в какой-нибудь папке (например, /var/log/myapp) копятся логи и мы хотим удалять раз в неделю старые. Сначала создадим простой bash-скрипт clear_logs.sh:
#!/bin/bash
LOG_DIR="/var/log/myapp"
DAYS_TO_KEEP=7
find "$LOG_DIR" -type f -name "*.log" -mtime +$DAYS_TO_KEEP -exec rm -f {} \;
Этот скрипт ищет ".log" файлы в указанной директории (LOG_DIR) и удаляет те, что старше 7 дней (DAYS_TO_KEEP). Делаем файл исполняемым и добавляем cron-задачу:
chmod +x /home/user/noscripts/clear_logs.sh
0 0 * * 0 /home/user/noscripts/clear_logs.sh >> /var/log/clear_logs.log 2>&1
"0 0 * * 0" — каждое воскресенье в 00:00;
">> /var/log/clear_logs.log" — всё, что скрипт напишет в stdout (обычный вывод), попадёт в лог;
"2>&1" — перенаправление потока ошибок stderr в поток stdout, чтобы они тоже записывались в лог;
В нашем случае скрипт ничего не выводит, однако если возникнут ошибки по типу: "нет доступа к папке" или "нет прав на удаление", то они пойдут в stderr и запишутся в лог.
Важные команды:
Чтобы посмотреть список задач (расписание), можно использовать команду "crontab -l". Создание и изменение задач, команда "crontab -e". Удаление всех задач "crontab -r".
LinuxCamp | #cron
🔥31👍22❤2😢1
Новое ядро подъехало "Linux 6.15"
В новую версию принято 15945 исправлений от 2154 разрабов, размер патча - 59 МБ (добавлено 739608 строк кода). Около 41% всех изменений связаны с драйверами устройств.
Из ключевого:
— многочисленные апгрейды драйверов для AMD и Intel;
— дальнейшая интеграция Rust в ядро (язык всё активнее применяется в кодовой базе, где критична безопасность);
— стабилизация файловой системы Bcachefs (близка к полноценному применению в продуктивных сценариях);
— новая подсистема FWCTL (предназначен для управления прошивками);
— доработка поддержки Apple Silicon (архитектура ARM постепенно получает стабильные драйверы и поддержку в ядре);
— улучшения планировщика задач (положительно скажется на общей отзывчивости систем под высокой нагрузкой);
— расширение поддержки игровых контроллеров через драйвер XPad;
Подробнее о нововведениях можно прочитать тут.
LinuxCamp | #news
В новую версию принято 15945 исправлений от 2154 разрабов, размер патча - 59 МБ (добавлено 739608 строк кода). Около 41% всех изменений связаны с драйверами устройств.
Из ключевого:
— многочисленные апгрейды драйверов для AMD и Intel;
— дальнейшая интеграция Rust в ядро (язык всё активнее применяется в кодовой базе, где критична безопасность);
— стабилизация файловой системы Bcachefs (близка к полноценному применению в продуктивных сценариях);
— новая подсистема FWCTL (предназначен для управления прошивками);
— доработка поддержки Apple Silicon (архитектура ARM постепенно получает стабильные драйверы и поддержку в ядре);
— улучшения планировщика задач (положительно скажется на общей отзывчивости систем под высокой нагрузкой);
— расширение поддержки игровых контроллеров через драйвер XPad;
Подробнее о нововведениях можно прочитать тут.
LinuxCamp | #news
👍31🔥13❤4👏2
Продвинутый просмотр размера каталога: du
Вы сейчас можете подумать, есть же команда "ls -l", которая показывает расширенный список атрибутов... Размер каталога значит тоже должна выводить. Ну, нет) Для этого нам нужно использовать утилиту du, которая для этих целей подойдет отлично.
Размер каталога
В качестве примера возьмем папку Downloads и выведем ее размер:
Для лучшего понимания вкратце пройдемся по задействованным опциям:
-s - выводить только общий размер самой папки и не отображает информацию о ее вложенных ресурсах. Тем самым, не захламляя stdout;
-h - выводить информацию в привычном виде. Речь о единицах измерения (K – килобайт, M – мегабайт и т. д.);
Размер файлов на верхнем уровне
Также можно глянуть общий размер только файлов на самом верхнем уровне каталога. Для этого добавляем опцию "-S". Тут мы не пойдем вглубь и не станем проверять ресурсы внутри образного "~/Downloads/dir1" и т.д:
Размер вложенных каталогов
В результате отобразится сначала размер вложенных каталогов, а потом и самого "Downloads" С помощью опции --max-depth можно задать максимальную глубину вложенности. Если вам интересен только верхний каталог, то глубина == 0, если еще и вложенные в нее, то >= 1:
Это будет особенно полезно, когда директория сильно разрослась, и нужно ограничить область действия для утилиты.
Размер файлов с учетом вложенности
Также можно увидеть размер целевого каталога и всех ресурсов внутри (с учетом вложенности). Для этих целей нужно приписать флаг "-a":
Если данных на выходе получается слишком много, то может иметь смысл их отсортировать по размеру:
LinuxCamp | #utils
Вы сейчас можете подумать, есть же команда "ls -l", которая показывает расширенный список атрибутов... Размер каталога значит тоже должна выводить. Ну, нет) Для этого нам нужно использовать утилиту du, которая для этих целей подойдет отлично.
Размер каталога
В качестве примера возьмем папку Downloads и выведем ее размер:
$ sudo du -sh ~/Downloads
96M /home/parallels/Downloads
Для лучшего понимания вкратце пройдемся по задействованным опциям:
-s - выводить только общий размер самой папки и не отображает информацию о ее вложенных ресурсах. Тем самым, не захламляя stdout;
-h - выводить информацию в привычном виде. Речь о единицах измерения (K – килобайт, M – мегабайт и т. д.);
Размер файлов на верхнем уровне
Также можно глянуть общий размер только файлов на самом верхнем уровне каталога. Для этого добавляем опцию "-S". Тут мы не пойдем вглубь и не станем проверять ресурсы внутри образного "~/Downloads/dir1" и т.д:
$ sudo du -sSh ~/Downloads
92M /home/parallels/Downloads
Размер вложенных каталогов
$ sudo du -h ~/Downloads
В результате отобразится сначала размер вложенных каталогов, а потом и самого "Downloads" С помощью опции --max-depth можно задать максимальную глубину вложенности. Если вам интересен только верхний каталог, то глубина == 0, если еще и вложенные в нее, то >= 1:
$ sudo du -h --max-depth=1 /etc
16K /etc/lighttpd
8.0K /etc/python3
56K /etc/iproute2
Это будет особенно полезно, когда директория сильно разрослась, и нужно ограничить область действия для утилиты.
Размер файлов с учетом вложенности
Также можно увидеть размер целевого каталога и всех ресурсов внутри (с учетом вложенности). Для этих целей нужно приписать флаг "-a":
$ sudo du -ah ~/Downloads
96M ...Downloads/code_1.99.3-1744760597_arm64.deb
4.0K ...Downloads/file-part_2
4.0K ...Downloads/file-part_1
Если данных на выходе получается слишком много, то может иметь смысл их отсортировать по размеру:
$ sudo du -ah ~/Downloads | sort -rh
96M .../Downloads/code_1.99.3-1744760597_arm64.deb
96M .../Downloads
20K .../Downloads/test
LinuxCamp | #utils
👍35🔥11❤7🤔1
Шпаргалка по ufw для базовой настройки фаервола
Сетевой безопасностью часто пренебрегают при создании своих проектов на своем сервере. Но даже базовая настройка фаервола уже существенно снижает риски.
ufw (Uncomplicated Firewall) - простой способ настроить фаервол на Linux. Работает как обёртка над iptables, но не требует глубоких знаний сетевого стека.
Зачем вообще нужен фаервол?
Когда ты поднимаешь сервер (особенно публичный), он сразу становится видимым всему интернету. И даже если ты не настраиваешь ничего «опасного», какие-то сервисы по умолчанию могут слушать порты.
ufw помогает ограничить доступ: только те порты, которые ты явно разрешил - будут открыты. Если ты только поднял VPS и хочешь защитить сервер - это именно то, что нужно. Если по какой-то причине у тебя ufw не установлен:
Перед включением стоит задать основные правила, иначе можно случайно отрезать себя от SSH-доступа (особенно на VPS). Начнем с самого важного:
Теперь можно активировать фаервол:
Просмотр статуса и активных правил:
Отключение при необходимости:
Базовые правила, которые стоить задать
Одно правило по разрешению ssh-доступа мы уже добавили, также будет правильно разрешить веб-траффик (http/https):
Полезно запретить весь входящий трафик по умолчанию и разрешить только нужное. Также оставить открытым все на выход:
Полезные команды:
Удалить правило:
Разрешить доступ по конкретному IP:
Это может понадобиться, например, чтобы открыть порты для веб-траффика только Cloudflare или ServicePipe и закрыть для всего остального:
Сбросить все правила и начать с нуля:
После настройки рекомендую протестировать сервер из другого устройства или использовать онлайн-сервисы вроде portquiz или nmap для сканирования портов. Также полезно мониторить логи:
Если ufw работает - ты увидишь записи о заблокированных соединениях, особенно на нестандартные порты. Даже минимальные настройки ufw — это уже огромный шаг вперёд в безопасности. Он не требует глубокого понимания iptables и легко вписывается в ежедневный рабочий процесс. Один раз настроил — и забыл.
LinuxCamp | #utils #devops
Сетевой безопасностью часто пренебрегают при создании своих проектов на своем сервере. Но даже базовая настройка фаервола уже существенно снижает риски.
ufw (Uncomplicated Firewall) - простой способ настроить фаервол на Linux. Работает как обёртка над iptables, но не требует глубоких знаний сетевого стека.
Зачем вообще нужен фаервол?
Когда ты поднимаешь сервер (особенно публичный), он сразу становится видимым всему интернету. И даже если ты не настраиваешь ничего «опасного», какие-то сервисы по умолчанию могут слушать порты.
ufw помогает ограничить доступ: только те порты, которые ты явно разрешил - будут открыты. Если ты только поднял VPS и хочешь защитить сервер - это именно то, что нужно. Если по какой-то причине у тебя ufw не установлен:
$ sudo apt install ufw
Перед включением стоит задать основные правила, иначе можно случайно отрезать себя от SSH-доступа (особенно на VPS). Начнем с самого важного:
$ sudo ufw allow ssh
Теперь можно активировать фаервол:
$ sudo ufw enable
Просмотр статуса и активных правил:
$ sudo ufw status verbose
Отключение при необходимости:
$ sudo ufw disable
Базовые правила, которые стоить задать
Одно правило по разрешению ssh-доступа мы уже добавили, также будет правильно разрешить веб-траффик (http/https):
$ sudo ufw allow 80,443/tcp
Полезно запретить весь входящий трафик по умолчанию и разрешить только нужное. Также оставить открытым все на выход:
$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing
Полезные команды:
Удалить правило:
$ sudo ufw delete allow 80/tcp
Разрешить доступ по конкретному IP:
$ sudo ufw allow from 192.168.1.10
Это может понадобиться, например, чтобы открыть порты для веб-траффика только Cloudflare или ServicePipe и закрыть для всего остального:
$ ufw default deny incoming
$ ufw default allow outgoing
# пердположим что 192.168.1.10 - IP нашего ServicePipe
$ sudo ufw allow from 192.168.1.10 to any port 22
Сбросить все правила и начать с нуля:
$ sudo ufw reset
После настройки рекомендую протестировать сервер из другого устройства или использовать онлайн-сервисы вроде portquiz или nmap для сканирования портов. Также полезно мониторить логи:
$ sudo less /var/log/ufw.log
Если ufw работает - ты увидишь записи о заблокированных соединениях, особенно на нестандартные порты. Даже минимальные настройки ufw — это уже огромный шаг вперёд в безопасности. Он не требует глубокого понимания iptables и легко вписывается в ежедневный рабочий процесс. Один раз настроил — и забыл.
LinuxCamp | #utils #devops
👍28🔥12❤8❤🔥1