Linux для чайника – Telegram
Linux для чайника
20K subscribers
88 photos
4 files
79 links
Linux
- Разбор утилит / инструментов
- Новости / факты
- Опросы для проверки знаний, навыков
и многое другое.

Только по вопросам сотрудничества: @altmainf

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
Массовое переименование файлов

В этом примере скрипт переименовывает все файлы с определенным расширением. Вы можете настроить переменные $source_extension и $new_extension, чтобы указать исходное и новое расширения файлов. После выполнения переименования скрипт выведет сообщение об успешном завершении.
Обновление системы

В этом примере скрипт обновляет операционную систему Linux. Он выполняет команды apt update, apt upgrade, apt autoclean и apt autoremove для обновления пакетов, очистки кэша и удаления неиспользуемых пакетов. После выполнения обновления скрипт выведет сообщение об успешном завершении.
Преимущества python над bash в написании скриптов

Python и Bash оба являются мощными инструментами для написания скриптов, но у них есть некоторые различия и особенности.

Преимущества:

Универсальность и многофункциональность: Python - полноценный язык программирования, который может использоваться для разработки разнообразных приложений, не только скриптов.

Простота чтения и понимания кода: Python-скрипты легче читать и поддерживать в долгосрочной перспективе.

Большая гибкость: Python обладает более широким функционалом и операционными возможностями по сравнению с Bash.

Переносимость: Python считается языком с высокой переносимостью. Скрипты, написанные на Python, могут выполняться на разных платформах и операционных системах, без необходимости модификации их кода.
Преимущества bash над python в написании скриптов

Хотя Python является более универсальным и гибким языком программирования, Bash также имеет свои преимущества в написании скриптов:

Близость к командной строке: Bash - это язык командной строки, который имеет прямой доступ к системным командам и утилитам.

Простота и скорость выполнения команд: Bash предоставляет простой способ выполнения команд и утилит операционной системы. Кроме того, Bash-скрипты выполняются намного быстрее.

Поддержка для системных задач: Bash обеспечивает прямой доступ к системным вызовам и возможности работы с процессами, переменными окружения, временными файлами и другими системными ресурсами.
Скрипт обработки текста на Python

Пример использования модуля re для поиска и замены текста в файле.

Также можно использовать регулярные выражения для более сложных операций поиска и замены текста.
Модули в Python, которые могут быть полезными для написания скриптов

В Python существует огромное количество модулей, которые могут быть полезными при написании скриптов для различных целей. Вот некоторые из них:

⁃ Модуль os предоставляет функции для создания/удаления файлов и папок, выполнения команд в командной строке, управления процессами и т.д.

⁃ Модуль re предоставляет функции для работы с регулярными выражениями.

⁃ Модуль argparse предоставляет удобный способ обработки аргументов командной строки.

⁃ Модуль datetime предоставляет классы для работы с датами и временем.
Преимущества использования Perl для автоматизации задач в Linux

Perl является мощным языком программирования, который широко используется для автоматизации задач в Linux и других операционных системах.

#!/usr/bin/perl

print "Привет, мир!\n";

Его преимущества:
⁃ Регулярные выражения: Perl известен своей мощной поддержкой регулярных выражений.
⁃ Кросс-платформенность: Perl является кросс-платформенным языком, что означает, что вы можете написать Perl-скрипт в Linux и запустить его на другой операционной системе, такой как Windows или macOS, без изменений.
⁃ Perl также предоставляет множество модулей для работы с сетью и широкий спектр модулей для работы с файлами.
Создание собственного пакета в Linux

Создание собственного пакета в Linux не только делает установку и обновление программного обеспечения проще, но и позволяет поделиться своим программным обеспечением с другими пользователями.

Процесс создания и установки пакетов может варьироваться в зависимости от дистрибутива Linux, но основные инструменты и концепции обычно остаются одинаковыми.

Вот некоторые основные инструменты, которые часто используются:
1. Build-essential
2. GNU Autotools
3. Checkinstall
4. rpmbuild
5. dh_make
Build-essential

Метапакет в Linux, который включает в себя все основные зависимости и инструменты, необходимые для сборки программного обеспечения.

В состав build-essential входят следующие основные компоненты:

1. Компиляторы: В основном это GCC, который является стандартным компилятором в среде разработки Linux.
2. Библиотеки разработчиков (dev-пакеты): Это заголовочные файлы и статические библиотеки, необходимые для разработки и сборки программ.
3. Util-linux: Этот пакет содержит различные утилиты командной строки, которые помогают в разработке и сборке программ (chroot, fdisk, mount).
4. dpkg-dev: Этот пакет содержит инструменты, необходимые для создания и управления пакетами в формате Debian (.deb).
5. make: Это универсальный инструмент для автоматизации сборки программ.
GNU Autotools

Набор инструментов для автоматической конфигурации, сборки и установки программного обеспечения в операционных системах на базе Unix.

Набор инструментов GNU Autotools включает в себя следующие компоненты:
1. GNU Autoconf — инструмент для создания скриптов "configure" автоматически. С помощью Autoconf можно определить зависимости программы, проверить наличие библиотек и других компонентов, а также установить различные параметры конфигурации.

2. GNU Automake — инструмент для создания Makefile из специализированного файла "Makefile.am".

3. GNU Libtool — инструмент для упрощения создания и использования динамических библиотек. Libtool абстрагирует сложности, связанные с созданием и использованием различных форматов библиотек (например, .so или .dll), обеспечивая переносимость программного кода между различными платформами.
Checkinstall

Утилита, которая позволяет установить программное обеспечение в систему Linux из исходного кода или собранного пакета.

При установке программы с помощью Checkinstall создается пакет, который можно добавить в систему через менеджер пакетов.

Checkinstall также предоставляет возможность указать некоторые метаданные о пакете, такие как имя, версия, разработчик, описание и другие параметры.

Основное преимущество Checkinstall заключается в простоте установки, отслеживании и удалении программ, установленных из исходного кода.
rpmbuild

Командный инструмент, входящий в пакет rpm-build, используемый для сборки RPM-пакетов из исходных файлов(RPM — формат пакетов и утилита для управления пакетами в системах на базе Red Hat).

Чтобы создать RPM-пакет с помощью rpmbuild, вам нужно создать специальный файл спецификации (.spec), в котором указываются все необходимые детали и инструкции для сборки пакета.

Файл спецификации содержит информацию о пакете, его зависимостях, сценарии установки и другие параметры.

После создания .spec файла и необходимых исходных файлов, вы можете запустить команду rpmbuild, указав путь к .spec файлу. rpmbuild выполнит сборку пакета в соответствии с указанными настройками и создаст готовый RPM-пакет.
dh_make

Утилита в ОС на базе Debian, которая помогает автоматизировать создание файла спецификации (debian/control) и других файлов, необходимых для упаковки программного обеспечения в формате Debian-пакета.

При запуске команды dh_make в командной строке, вас просят указать исходные файлы вашей программы, которую вы хотите упаковать.

Затем dh_make создает стандартный набор файлов и директорий, основываясь на указанных исходных файлах. В результате получается основа для пакета, которую вы можете дальше настраивать.

Обратите внимание, что dh_make представляет собой только исходный набор файлов и структуру папок для пакета Debian. Вы по-прежнему должны вручную настроить содержимое и файлы конфигурации для вашего пакета.
GNU Autoconf

Набор утилит и макросов, разработанных в рамках проекта GNU, предназначенный для облегчения процесса автоматической конфигурации ПО на различных платформах и ОС.

Autoconf позволяет разработчикам писать скрипты, которые опрашивают систему, чтобы определить специфичные характеристики, такие как наличие определенных библиотек, функций, заголовочных файлов и других зависимостей.

Этот процесс конфигурации основан на использовании файла "configure.ac", который содержит инструкции на специальном языке макроопределений M4. С помощью Autoconf и M4, "configure.ac" преобразуется в скрипт "configure", который может быть запущен на целевой системе для автоматической проверки и настройки программного обеспечения.
GNU Automake

Инструмент, который упрощает процесс создания и управления файлами сборки (Makefile).

Automake основан на системе сборки GNU Make и позволяет разработчикам определить зависимости между файлами и задать правила для сборки проекта. Automake использует скрипты Makefile.am, которые содержат инструкции для создания Makefile. Затем, с помощью утилиты "automake", эти скрипты обрабатываются и преобразуются в соответствующие Makefile.

Automake обеспечивает автоматическую генерацию сложных правил сборки, включая компиляцию, линковку, установку и тестирование проекта.
GNU Libtool

Инструмент, который упрощает процесс создания и управления динамических библиотек в проектах.

Одной из главных целей Libtool является облегчение процесса создания и использования динамических библиотек, включая автоматическое управление зависимостями библиотек, установку и обновление версий библиотек, контроль совместимости между разными версиями библиотек и т.д.

Libtool часто используется вместе с GNU Autoconf и GNU Automake, чтобы обеспечить полную систему автоматической настройки, сборки и установки проектов.
Легковесная оболочка LXDE в Linux

Это одна из самых легких и быстрых графических сред в Linux.

Она предлагает простой и интуитивно понятный интерфейс, а также минималистичный дизайн.

LXDE имеет низкие требования к системным ресурсам, что делает его подходящим выбором для старых компьютеров или компьютеров с ограниченной памятью.
Легковесная оболочка Xfce в Linux

Графическая среда Xfce также известна своей легкостью и производительностью.

Она обладает большим набором функций и более современным дизайном по сравнению с LXDE.

Также она более настраиваемая и предлагает пользовательские панели инструментов, окна и темы, позволяя адаптировать макет рабочего стола под свои потребности.
LDAP-сервер в Linux

1. Для установки LDAP-сервера в Ubuntu или Debian, выполните команду:
sudo apt-get install slapd

2. Во время установки LDAP-сервера будет предложено задать пароль для административной учетной записи. Задайте пароль и запомните его

3. Отредактируйте файл /etc/ldap/slapd.conf, указав базовый DN, а также некоторые дополнительные параметры, такие как максимальный размер БД и файл журнала.

4. В файле конфигурации определите используемые схемы и манифесты.
Например:
include /etc/ldap/schema/core.schema
include /etc/ldap/schema inetorgperson.schema
include /etc/ldap/schema/nis.schema

5. Создайт базу данных и административную учетную запись, выполнив команду:
sudo dpkg-reconfigure slapd

6. Перед запуском LDAP-сервера убедитесь, что настройки в файле конфигурации заданы правильно, выполнив команду:
sudo slaptest -u

7. Если ошибок нет, запустите LDAP-сервер:
sudo service slapd start
nftables

Утилита командной строки для управления брандмауэром в Linux, которая заменяет устаревшую команду iptables.

Примеры использования:
1. Создание таблицы и цепочки:
Создать таблицу:
nft add table inet mytable
Создать цепочку в таблице:
nft add chain inet mytable mychain

2. Добавление правил:
Добавить правило для разрешения доступа из конкретного IP-адреса:
nft add rule inet mytable mychain ip saddr 192.168.1.100 accept
Добавить правило для блокировки порта:
nft add rule inet mytable mychain tcp dport 22 drop
Добавить правило для перенаправления порта: nft add rule inet mytable mychain tcp dport 80 redirect to :8080

3. Удаление правил:
Удалить правило:
nft delete rule inet mytable mychain handle 5
Удалить все правила из цепочки:
nft flush chain inet mytable mychain

4. Сохранение и загрузка правил:
Сохранить правила в файл:
nft list ruleset > myfile.nft
Загрузить правила из файла:
nft -f myfile.nft
Iptables vs Nftables

Выбор между iptables и nftables зависит от ваших потребностей и уровня опыта.

Если вам уже знаком iptables или вам требуется использовать определенные функции, то iptables может быть хорошим выбором. Однако, если вы начинаете и хотите более простой и удобный в использовании вариант, то рекомендуется попробовать nftables.

Необходимо отметить, что nftables представляет будущее развитие брандмауэра в Linux и будет заменять iptables в перспективе.