ru
Feedback
GNU/Linux | Notes

GNU/Linux | Notes

Открыть в Telegram

Open Source, GNU/Linux, Debian/Ubuntu, Dotfiles, Software, Scripts, Notes, Terminal, Shell, Tools, Games, Fun, Misc, Music, Geek, Free Software Movement. Почта: krekhov.dev@gmail.com Кто я: https://t.me/krxnotes/246 GitHub: https://github.com/krekhovx

Больше
2 281
Подписчики
-124 часа
-17 дней
-1230 день
Архив постов
shellcheck ShellCheck — это статический анализатор скриптов на языке shell (bash, sh и других). Основная цель утилиты — помочь разработчикам выявлять и исправлять ошибки, потенциальные баги и нарушения стиля в их скриптах. ShellCheck анализирует код и предоставляет рекомендации по улучшению, предупреждая о возможных проблемах, таких как: 1. Синтаксические ошибки. 2. Неинициализированные переменные. 3. Некорректное использование команд. 4. Проблемы с кавычками и экранированием. 5. Советы по улучшению читаемости и поддерживаемости кода. Установка:
$ apt install shellcheck
Запуск:
$ shellcheck ./script.sh
Использование ShellCheck помогает сделать скрипты более надежными и переносимыми. Оно особенно полезно для автоматизации процессов, где стабильность и корректность выполнения скриптов имеют критическое значение. #utils #shell

Релиз Debian 13 ожидается во второй половине 2025 года. Первая стадия заморозки уже началась. Новость: https://www.opennet.ru/opennews/art.shtml?num=62893 Расписание заморозки: https://release.debian.org/testing/freeze_policy.html #debian

live-build live-build — это инструмент, используемый для создания Live-образов в Debian.
$ apt install live-build
Live-образ — это версия операционной системы, которая загружается прямо с носителя (например, USB-флешки или DVD) без необходимости установки на жесткий диск. Это позволяет пользователям протестировать систему, выполнить восстановление или диагностику, а также использовать её в качестве портативной операционной системы. Live-образы полезны для демонстраций и тестирования, так как изменения в системе не сохраняются после перезагрузки, если не использовать специальные методы для сохранения данных. Когда вы загружаетесь с Live-образа, обычно вам предлагается опция "Установить", которая запускает установщик. Это позволяет вам протестировать операционную систему без изменений в текущей системе, а затем, если она вам подходит, установить её на ваш компьютер. Установочный процесс с Live-образа обычно очень похож на стандартный установочный процесс для дистрибутива. Конфигурацию проекта можно осуществить с помощью команды:
$ /usr/bin/lb config -d bookworm --debian-installer live \
  --debian-installer-distribution bookworm \
  --archive-areas "main contrib non-free non-free-firmware" \
  --debootstrap-options "--variant=minbase"
Сборка:
$ /usr/bin/lb build
На выходе получится готовый ISO образ на базе Debian. > Salsa #build #debian #software #utils

CI/CD (Continuous Integration) Непрерывная интеграция - постоянное слияние рабочих копий в общую основую ветвь разработки и выполнение частых автоматизированных сборок проекта для скорейшего выявления потенциальных дефектов. (Continuous delivery) Непрерывная поставка - частые выпуски RC, такой подход позволяет уменьшить стоимость, время и риски внесения изменений путем более частных мелких обновлений в продакшн-приложение. Гарантия того, что ПО стабильно и может быть передано в эксплуатацию в любое время. Целью является сборка, тестирование и релиз программного обеспечения с большей скоростью и частотой. * Pipelines: Последовательность шагов, которые нужно выполнить для того, чтобы код прошел через все стадии проверки, тестирования и развертывания. Процесс преобразования кода из "только что написанного" в "готово к использованию". * Jobs: Это отдельные задания или задачи внутри Pipeline. Например, одна работа может быть связана с компиляцией кода, другая — с запуском тестов, третья — с развертыванием. * Artifacts: Это файлы, которые создаются и сохраняются в ходе выполнения Jobs. Например, если есть шаг сборки, который компилирует код, то результат этой сборки (например, исполняемый файл или архив) будет артефактом. Артефакты могут быть использованы в последующих шагах или сохранены для будущего использования. #misc #build

#fun
#fun

tasksel $ apt install tasksel Используется для установки групп программ или пакетов, известных как "задачи" в Debian. Эти зад
tasksel
$ apt install tasksel
Используется для установки групп программ или пакетов, известных как "задачи" в Debian. Эти задачи представляют собой предопределенные наборы пакетов, которые можно установить для выполнения определенной роли или функции на системе. Например, это могут быть задачи для установки рабочего стола, веб-сервера, почтового сервера и т.д. После запуска утилиты появляется TUI окно: Software selection (можно установить GNOME, KDE, Xfce и т.д). #debian #software #utils

Подписание тегов и коммитов Подписание тегов и коммитов в Git является важным шагом для обеспечения безопасности и доверия в процессе разработки. Когда вы подписываете коммиты и теги с помощью GPG-ключа, вы подтверждаете, что именно вы, владелец ключа, совершили эти изменения. Это помогает предотвратить подмену кода или внесение несанкционированных изменений, поскольку получатели могут верифицировать подпись и убедиться в подлинности автора. Кроме того, такие подписи создают прозрачный и надежный лог, который способствует более эффективному сотрудничеству в команде, обеспечивая уверенность в том, что код, который вы интегрируете, пришёл из доверенного источника. 1. Сгенерировать GPG ключ:
$ gpg --full-generate-key
2. Экспортировать ключ:
$ gpg --export --armor <Key ID>
3. В GitLab/GitHub: Settings -> GPG Keys Добавить экспортируемый ключ. 4. Прописать:
[user]
  email = example@gmail.com
  name = Ivan Ivanov
  signingkey = <Key ID>

[commit]
  gpgSign = true
Коммиты будут автоматически подписываться, а для тегов можно использовать:
$ git tag -s <new-tag>
В истории коммитов в веб-версии можно будет увидеть значок Verified #git #security

Rolling Release Rolling Release модель — это метод разработки и обновления программного обеспечения, при котором система и все её компоненты постепенно обновляются по мере выхода новых версий, а не через крупные релизы, как это делается в традиционных циклах разработки. Вот ключевые особенности этой модели: 1. Постоянные обновления: В системе Rolling Release вы получаете регулярные обновления, которые могут включать новые функции, исправления ошибок и обновления безопасности. Это позволяет пользователям всегда иметь актуальное программное обеспечение без необходимости переустановки или крупного обновления системы. 2. Отсутствие крупных релизов: В отличие от традиционной модели с фиксированными релизами, где обновления происходят в виде крупных пакетов в установленные сроки, Rolling Release обновляется постепенно и постоянно. 3. Преимущества: - Актуальность: Пользователи всегда имеют доступ к новейшим версиям программного обеспечения и функциям. - Плавные обновления: Обновления происходят более плавно, без резких изменений, что уменьшает вероятность крупных проблем при переходе на новую версию. 4. Недостатки: - Потенциальная нестабильность: Поскольку обновления происходят постоянно, иногда могут возникать конфликты или нестабильности из-за несовместимости новых версий. - Требование постоянного внимания: Пользователи должны регулярно обновлять систему и следить за возможными проблемами после обновлений. 5. Примеры дистрибутивов: Void Linux, Arch Linux, openSUSE Tumbleweed и Manjaro (хотя Manjaro делает это с небольшой задержкой для тестирования). Rolling Release модель подходит для пользователей, которые предпочитают всегда иметь доступ к последним версиям программного обеспечения и готовы уделять внимание поддержанию системы в актуальном состоянии. В Debian используется модель стабильных выпусков (Stable Release модель). Это значит, что новые версии выходят примерно каждые два года, и в течение этого времени система получает только обновления безопасности и критические исправления. Это обеспечивает высокую стабильность и надежность. #misc #debian

PortProton PortProton — это проект, разработанный командой linux-gaming.ru, который упрощает запуск Windows-игр и других приложений на Linux. Он предоставляет удобный интерфейс и гибкие настройки, делая процесс запуска максимально простым как для начинающих, так и для опытных пользователей. PortProton использует WINE Proton и включает различные оптимизации для повышения производительности. WINE Proton и PortProton — это разные вещи. WINE Proton — это версия WINE, разработанная Valve для запуска Windows-игр через Steam. PortProton — это отдельный проект, который использует WINE Proton, но работает без Steam и предоставляет дополнительные настройки и оптимизации для запуска Windows-игр и приложений на Linux. Как установить: https://linux-gaming.ru/t/ustanovka-portproton-ispolzovanie-wine-proton-bez-steam/24 После установки появится возможность запускать .exe файлы игр с помощью PortProton. #games

#fun
#fun

Абсолютный путь Как узнать абсолютный путь файла?
$ realpath free_hugepages
/sys/kernel/mm/hugepages/hugepages-2048kB/free_hugepages Как узнать абсолютный путь текущей директории?
$ pwd # print working directory
/home/user/Downloads #utils

ФСТЭК ФСТЭК (Федеральная служба по техническому и экспортному контролю) — это российский государственный орган, который занимается вопросами технической защиты информации и экспортного контроля. В контексте IT, ФСТЭК разрабатывает и утверждает различные стандарты и требования для обеспечения безопасности информационных систем. ФСТЭК актуален в первую очередь для России. Зачем нужен ФСТЭК? 1. Защита информации: ФСТЭК устанавливает требования к защите информации, чтобы предотвратить утечки, кражи или несанкционированный доступ к данным. Это особенно важно для государственных органов, крупных компаний и организаций, работающих с конфиденциальной информацией. 2. Сертификация: ФСТЭК проводит сертификацию программного обеспечения и аппаратных средств, чтобы убедиться, что они соответствуют установленным стандартам безопасности. Это включает в себя операционные системы, антивирусные программы, системы шифрования и другие средства защиты информации. 3. Экспортный контроль: ФСТЭК также занимается вопросами экспортного контроля, чтобы предотвратить утечку технологий и информации, которые могут быть использованы в военных или иных чувствительных областях. ФСТЭК и операционная система Linux ФСТЭК устанавливает требования к операционным системам, которые используются в российских государственных органах и крупных компаниях. Эти требования включают в себя: 1. Сертификация операционных систем: Операционные системы, такие как Linux, должны пройти сертификацию ФСТЭК, чтобы быть использованы в государственных и корпоративных сетях. Это означает, что они должны соответствовать определенным стандартам безопасности и защиты информации. 2. Использование российских криптографических алгоритмов: ФСТЭК требует, чтобы операционные системы поддерживали российские криптографические алгоритмы, такие как ГОСТ (Государственный стандарт). Это необходимо для обеспечения безопасности данных и соответствия российским нормативным требованиям. 3. Контроль доступа: Операционные системы должны иметь механизмы контроля доступа, которые соответствуют требованиям ФСТЭК. Это включает в себя управление пользователями, правами доступа и аудитом событий безопасности. Таким образом, ФСТЭК играет важную роль в обеспечении безопасности информационных систем в России, устанавливая стандарты и требования, которые должны соблюдаться для защиты данных и предотвращения утечек информации. Многие отмечают, что система сертификации и требований ФСТЭК может быть довольно бюрократизированной и сложной для выполнения. Это может создавать дополнительные трудности для компаний и организаций, стремящихся соответствовать этим стандартам. а где бюрократия там и высокий уровень коррупции. #security #misc

Кризис в продвижении Rust в ядро из-за опасений усложнения сопровождения Оказывается не всё так просто как хотелось, война между С и Rust, а точнее между инженерами, которые продвигают разные подходы. Кто же победит? https://www.opennet.ru/opennews/art.shtml?num=62685 #kernel

Debian входит в число дистрибутивов с наибольшим количеством поддерживаемых архитектур процессоров и отличной поддержкой кросс-компиляции. Мы работаем над улучшением возможностей кросс-компиляции и обеспечением возможности кросс-загрузки из исходного кода для будущих архитектур процессоров в Debian. https://micronews.debian.org/2025/1739368586.html #debian

ctags Это утилита, которая генерирует индекс (так называемый "tags file") для исходного кода, что позволяет быстро переходить к определениям функций, переменных и других символов в коде. В Debian эта утилита часто устанавливается в виде пакета exuberant-ctags:
$ apt-get install exuberant-ctags
Затем можно сгенерировать tags файл для проекта. Перейдите в корневую директорию вашего проекта и выполните команду:
$ ctags -R .
Опция -R означает рекурсивное сканирование всех файлов в текущей директории и её поддиректориях. Это создаст файл tags в текущей директории. Использование ctags в Vim Например:
$ apt-get source coreutils
$ cd coreutils-9.5/
$ ctags -R . # появится файл tags
$ vim src/chmod.c
Переход к определению символа: Поместите курсор на имя функции, переменной или другого символа и нажмите Ctrl + ]. Vim откроет файл, в котором этот символ определён, и переместит курсор к его определению. Возврат к предыдущему местоположению: После перехода к определению символа вы можете вернуться назад, нажав Ctrl + T. Таким образом, ctags и Vim вместе предоставляют мощный инструмент для навигации по коду, что значительно ускоряет процесс разработки. #utils

Open Source: Взаимодействие с Социализмом, Капитализмом и Коммунизмом Социализм Социализм — это политическая и экономическая система, в которой средства производства (например, фабрики, рабочие места) находятся в общественной или государственной собственности. Основная идея социализма заключается в том, чтобы распределять ресурсы и блага более равномерно среди населения, минимизируя классовое неравенство. В социалистических системах часто акцентируется внимание на общественных благах и социальных программах. Капитализм Капитализм — это экономическая система, основанная на частной собственности на средства производства и их управлении с целью получения прибыли. В капиталистической системе рынок играет ключевую роль в распределении ресурсов, а конкуренция стимулирует инновации и эффективность. Индивидуальные права и свободы часто являются основополагающими в капиталистическом обществе. Коммунизм Коммунизм — это идеология и политическая система, стремящаяся к полному упразднению частной собственности и установлению всеобщей равенства. В коммунистической системе все средства производства находятся в общественной собственности, и ресурсы распределяются по потребностям каждого человека. Конечная цель коммунизма — достижение бесклассового общества. Open Source Open Source (открытое программное обеспечение) — это подход к разработке программного обеспечения, при котором исходный код программы находится в открытом доступе, и любой может его использовать, изменять и распространять. Open Source основывается на принципах прозрачности, сотрудничества и свободного обмена знаниями. Взаимосвязь Open Source с этими системами - Социализм: Open Source имеет много общего с социалистическими принципами, поскольку акцентируется на коллективной собственности, сотрудничестве и свободном обмене ресурсами. В open source-сообществах часто наблюдается равноправное участие и совместная работа над проектами, что соответствует социалистическим идеалам. - Капитализм: Хотя Open Source может показаться противоречащим капиталистическим принципам из-за отсутствия частной собственности на код, он находит свое место и в капиталистической системе. Open Source может стимулировать инновации и конкуренцию, так как компании могут разрабатывать коммерческие продукты на основе открытого кода и предоставлять услуги, связанные с ним. Примеры включают Red Hat и другие компании, которые построили успешный бизнес вокруг open source. - Коммунизм: В теории, Open Source может быть ближе к коммунистической идее полного отказа от частной собственности, так как код принадлежит всем и каждому. Однако в реальной практике open source-сообщества все еще зависят от добровольного участия и не имеют четкого механизма распределения ресурсов по потребностям, как этого требует коммунизм. Таким образом, Open Source имеет элементы, которые можно сопоставить с различными политическими и экономическими системами, но он не обязательно полностью вписывается в одну из них. Open Source представляет собой уникальный подход, который сочетает в себе аспекты всех этих систем для достижения своих целей. #misc #opensource

#fun
#fun

sed Замена user на AAA:
$ sed 's/user/AAA/' /etc/passwd
Удаление 3-й строки:
$ sed '3d' /etc/passwd
Удаление с 3-й строки до конца файла:
$ sed '3,$d' /etc/passwd
Удаление последней строки в файле:
$ sed -i '$d' /etc/passwd
Замена hello на new в самом файле:
$ sed -i 's/hello/new/' /etc/passwd
Получение второй строки:
$ cat /etc/passwd | sed -n 2p
#utils

find Поиск файла по имени:
$ find . -name 'file'
Поиск файла без учета регистра:
$ find . -iname 'file'
Поиск только директорий:
$ find . -type d
Поиск только файлов:
$ find . -type f
Ограничение глубины поиска:
$ find . -maxdepth 1
Поиск файлов по владельцу:
$ find /tmp -user 'root'
Поиск файлов с определенным расширением:
$ find /tmp -name '*.sh'
Поиск всех файлов, кроме указанного:
$ find . -not -name 'file'
Найти файлы и прочитать их:
$ find /tmp -type f -exec cat {} \;
Найти файлы и вывести их разрешения:
$ find /tmp -type f -exec ls -ld {} \;
Найти пустые файлы:
$ find /tmp -type f -empty
Удалить все файлы:
$ find . -type f -exec rm -rf {} \;
Найти файлы больше 1G:
 $ find / -size +1G
Удалить все файлы:
$ find . -type f -delete
Найти setuid файлы:
$ find / -perm -u=s
Найти по inode:
$ find / -inum <inode>
Показать все *.png и *.jpg файлы:
$ find . -name '*.png' -o -name '*.jpg'
Искать все *.orig, но игнорировать .pc/*:
$ find . -name '*.orig' -not -path './.pc/*'
Переместить все *.i686.rpm файлы в ../ww/ директорию:
$ find . -name "*.i686.rpm" -exec mv {} ../ww/ \;
Искать по полному пути:
$ find . -wholename "*/debian/control"
#utils

grep Не учитывать регистр:
$ grep -i 'name' /path/to/file
Рекурсивный поиск слова hello:
$ grep -r 'hello' /path/to/dir
Показать номер строки совпадения:
$ grep -n 'user' /etc/passwd
Поиск строк, содержащих user или root:
$ grep -E 'user|root' /etc/passwd
Рекурсивный поиск слова yes во всех .c файлах:
$ grep -r --include='*.c' 'yes' /path/to/dir
Покажет только совпадения со словом user:
$ grep -o user /etc/passwd
Рекурсивный поиск с выводом имен файлов:
$ grep -rl 'pattern'
#utils