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

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

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
Время изменения (ctime)

Ctime — временная метка файла, представляющая собой последний раз, когда метаданные файла были изменены.

Метаданные: права доступа к файлам, право собственности и временные метки.

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

Например, с помощью ctime можно найти все файлы, созданные 5 и более дней назад:
find /path/to/search -type f -ctime +5
Управление выполнения команд с помощью anacron

anacron — это утилита в Linux, которая помогает выполнять запланированные задачи, даже если ваша система не всегда включена.

1. Создание anacron job
Anacron jobs определяются в файле /etc/anacrontab. Для каждого задания указывается период (в днях), по истечении которого задание должно быть выполнено.
Пример базовой записи:
# /etc/anacrontab
# syntax: period delay job-identifier command
7 1 anacron_daily /bin/sh /path/to/your/noscript.sh

2. Запуск
Чтобы вручную запустить anacron и выполнить запланированные задачи, используйте следующую команду:
anacron -s

3. Проверка последнего выполнения
Вы можете проверить, когда anacron job выполнялось в последний раз, проверив временную метку в соответствующем файле временных меток. Эти файлы обычно хранятся в /var/spool/anacron/ и имеют те же имена, что и идентификаторы заданий в файле anacrontab.
Синхронизация и передача файлов и каталогов с помощью rsync

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

Примеры использования:
Скопировать файл из одного каталога в другой локально:
rsync /path/to/source/file /path/to/destination/

Скопировать весь каталог и его содержимое в другую папку:
rsync -av /path/to/source/directory/ /path/to/destination/

Скопировать файлы или каталоги на удаленный сервер с помощью SSH:
rsync -av /path/to/local/source user@remote:/path/to/remote/destination
Изменение или преобразование изображений

Команда mogrify предназначена для модификации изображений. Будьте осторожны при использовании, так как команда может перезаписать исходные изображения.

изменить размер изображений до определенной ширины и высоты:
mogrify -resize 800x600 image1.jpg image2.png

повернуть изображения на указанный угол (по часовой стрелке):
mogrify -rotate 90 image1.jpg image2.png

преобразовать изображения в чб:
mogrify -type Grayscale image1.jpg image2.png

добавить текст к изображениям с указанным шрифтом, размером и цветом:
mogrify -pointsize 24 -draw "text 100,100 'Hello, World!'" image1.jpg image2.png
Наложения одного изображения на другое в терминале

Команда composite используется для объединения двух или более изображений путем наложения одного изображения на другое.

Чтобы наложить изображение на другое:
composite overlay.png base.jpg output.jpg

overlay.png — изображение, которое вы хотите наложить.
base.jpg — изображение, на которое вы хотите наложить другое изображение.
output.jpg — выходное изображение.

Также можно наложить изображение с прозрачностью:
composite -blend 50% overlay.png base.jpg output.jpg
Создание коллажей в терминале

Команда montage используется для создания составного изображения путем расположения нескольких изображений в виде сетки или мозаики.

Создать базовую мозаичную компоновку изображений:
montage image1.jpg image2.png image3.jpg -mode concatenate -tile 2x2 output.jpg

Можно также добавить границы вокруг каждого изображения:
montage image1.jpg image2.png -mode concatenate -tile 2x1 -border 10 output.jpg
Создание анимации и гивок

Команда animate — универсальный инструмент для создания простых анимаций, анимированных GIF-файлов и многого другого.

Отобразить последовательность изображений в виде анимации:
animate frame1.jpg frame2.png frame3.jpg

Контроль задержки (в миллисекундах) между кадрами:
animate -delay 100 frame1.jpg frame2.png frame3.jpg

Зациклить анимацию определенное количество раз (используйте 0 для бесконечного цикла):
animate -loop 3 frame1.jpg frame2.png frame3.jpg
Сравнение двух изображений

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

Сравнить два изображения и создать разностное изображение:
compare image1.jpg image2.png difference.png
Настройка Git и GitHub на линукс

Шаг 1: Убедитесь, что у вас установлен Git на вашем Linux-устройстве. Если нет, выполните следующую команду:
sudo apt-get install git

Шаг 2: Когда Git установлен, следующим шагом является настройка вашего имени пользователя и адреса электронной почты. Выполните следующие команды, заменив "Your Name" и "your@email.com":
git config --global user.name "Your Name"
git config --global user.email "your@email.com"


Шаг 3
: Прежде чем мы начнем использовать Git, нам нужно создать новый репозиторий на GitHub. Зайдите на сайт GitHub, войдите в свою учетную запись и нажмите кнопку "New repository".

Шаг 4: Теперь, когда есть репозиторий на GitHub, свяжем его с нашим локальным Git-репозиторием. Перейдите в каталог вашего проекта и выполните следующие команды:
git init
git remote add origin https://github.com/username/repository.git


Здесь "username" - ваше имя пользователя на GitHub, а "repository" - название вашего репозитория.
Скриптовые языки

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

Самый распространённый скриптовый язык - Bash. Это командный язык интерпретатора оболочки UNIX. Он используется для написания скриптов на Linux и других UNIX-подобных операционных системах.

Пример скрипта на Bash:
#!/bin/bash
echo "Привет, мир!"
С помощью скриптовых языков можно сделать все!

Ну или почти все… благодаря им можно:

1. Автоматизировать повторяющиеся задачи:
Есть задача, которую нужно выполнять регулярно, вы можете написать скрипт, который будет выполнять эту задачу за вас. Например, скрипт для резервного копирования файлов, автоматической обработки данных или запуска ночных процессов.

2. Упростить сложные задачи:
Если есть сложная задача с множеством шагов или с большим объемом данных, скрипт может помочь вам разбить эту задачу на более простые части и автоматизировать каждый шаг. Это поможет снизить вероятность ошибок в процессе выполнения задачи и сэкономить время.

3. Улучшить процесс разработки:
Можно использовать для автоматизации сборки, тестирования и развертывания приложений. Например, вы можете написать скрипт для автоматической компиляции кода, запуска модульных тестов и развертывания приложений на сервере. Это позволяет сократить время разработки и повысить ее эффективность.
Скрипт для обработки большого файла данных

Этот пример скрипта обрабатывает файл данных, извлекает конкретную информацию (имя и продажи) и генерирует индивидуальный отчет в report.txt. Он подсчитывает общее количество обработанных записей, общий объем продаж, средний объем продаж на запись и перечисляет 5 лучших продавцов на основе продаж.

Чтобы использовать этот скрипт:
1. Сохраните его в файл (например, data-processing.sh).
2. Сделайте его исполняемым с помощью chmod +x data-processing.sh.
3. Поместите файл данных в тот же каталог или укажите полный путь в data_file.
4. Запустите его с помощью ./data-processing.sh
Массовое переименование файлов

В этом примере скрипт переименовывает все файлы с определенным расширением. Вы можете настроить переменные $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: Это универсальный инструмент для автоматизации сборки программ.