PyLinux - Всё о Linux, Python и IT
PyLinux — сообщество для всех, кто интересуется Linux, Python и информационными технологиями. Здесь вы найдёте: * библиотеки и скрипты на Python; * инструменты для Linux; * полезный софт; * важнейшие новости из мира информационных технологий. Присоединяйтесь к нам, чтобы быть в курсе последних событий и трендов в мире IT!
Часто пользуются dd
:
dd if=/dev/zero of=out.txt bs=1M count=10
Но я рекомендую использовать
fallocate
:fallocate -l 10M file.txt
Майские скидки!
Профессия «Python-разработчик» 🐍
🎁 Скидка до 30 000 р. Успейте до 14 мая получить специальное предложение!
Освойте один из самых популярных языков для бэкенда, научитесь создавать полноценные сайты и веб-приложения и реализовать внутреннюю логику работы программ на фреймворке Django.
Уже во время обучения вы вступите в программу «Карьерный трек», чтобы найти свою первую работу в IT.
📌 Пройдите 5 бесплатных уроков и поймите, подходит ли вам профессия и стоит ли продолжать!
Метакласс – это класс, который определяет свойства других классов. С помощью метакласса мы можем определять свойства, которые следует добавлять в новые классы, определенные в нашем коде.
class MyMeta(type):
def __new__(cls, name, bases, dct):
# Добавление нового метода к классу
dct['my_method'] = lambda self: print("Hello from my_method!")
return super().__new__(cls, name, bases, dct)
# Определение класса с использованием метакласса
class MyClass(metaclass=MyMeta):
pass
# Создание экземпляра класса и вызов добавленного метода
obj = MyClass()
obj.my_method() # Вывод: Hello from my_method!
В этом примере
MyMeta
- пользовательский метакласс, который добавляет новый метод my_method
к классу MyClass
. При создании экземпляра класса MyClass данный метод становится доступным для вызова.
Часто для проверки работы алгоритмов нужно собрать достаточно данных, чтобы на них тестировать.
Создание данных вручную занимает очень много времени, для избавления от этой рутины может помочь модуль mimesis, который умеет генерировать рандомные данные по нескольким критериям.
import mimesis
from mimesis import Person
pers = Person(mimesis.locales.RU)
print("Научная степень:", pers.academic_degree())
print("Полное имя мужское:", pers.full_name(mimesis.enums.Gender.MALE))
print("Полное имя женское:", pers.full_name(mimesis.enums.Gender.FEMALE))
print("Национальность:", pers.nationality())
print("Работа:", pers.occupation())
print("Университет:", pers.university())
print("Телефон:", pers.telephone())
>>> Научная степень: Специалист
>>> Полное имя мужское: Намиг Варахобов
>>> Полное имя женское: Солина Гафилова
>>> Национальность: Англичанка
>>> Работа: Бармен
>>> Университет: Государственная морская академия имени адмирала С.О. Макарова
>>> Телефон: +7-(913)-024-20-76
pip install mimesis
uGet заслужил звание менеджера загрузок №1 с открытым исходным кодом для дистрибутивов Linux и способен справиться с любой задачей загрузки, которую вы можете ему поставить, включая использование нескольких соединений, очередей, категорий и т.д.
sudo apt install uget
Существует multitail
, который может следить за несколькими файлами сразу. Но он не поставляется из-под коробки, а права для установки есть не всегда.
tail -f /var/logs/*.log
Бывает, что на сервере, где крутится некое приложение, лазят разные тестировщики, разработчики и все смотрят лог приложения через
tail -f
. При перезапуске приложения, остаются висящие «tail -f», которые могут висеть несколько дней или даже месяцев. Это не то, чтобы проблема, но не аккуратненько.
Полезно будет сделать алиас, который получает PID вашего приложения из PID файла, и автоматически завершит tail при завершении процесса:
alias TFapplog='tail -f --pid=$(cat /opt/app/tmp/app.pid) /opt/app/logs/app.log'
Fastfetch - это инструмент для получения системной информации, похожий на Neofetch, но с более высокой производительностью, поскольку он написан на языке C и обладает большей настраиваемостью, предоставляя вам больше контроля над выводом.time
эта утилита оказалась на 78,53 % быстрее, чем neofetch.
К примеру, используя предустановленный модуль, выведем информацию об аппаратной части устройства:
fastfetch -c hardware
Ну, а для получения классического вывода информации о системе, используем просто команду:
fastfetch
Для более подробного ознакомления с опциями, можете использовать
man
или заглянуть на эту страницу.
Бывают моменты, когда необходимо считать данные с файла, изменить их и перезаписать в тот же файл. В такие моменты приходится либо хранить данные в буфере, либо создавать новый файл и работать сразу с двумя файлами. Модуль in_place берет на себя работу с временными файлами, благодаря чему новый файл будет носить такое же название.
import in_place
with in_place.InPlace('tmp.txt', encoding="utf-8") as fp:
for line in fp:
words = []
for word in line.split():
for char in "1234567890":
word = word.replace(char, "")
words.append(word)
fp.write(" ".join(words) + "\n")
•
mode=<'b'|'t'|None>
- тип файла, ‘b’ - бинарный, ‘t’/None - текстовый•
backup=<PATH>
- путь к оригиналу файла•
backup_ext=<EXTENSION>
- создаст бэкап с именем файла + backup_ext•
move_first=<BOOL>
- меняет поведение при создании временных файловpip install in_place
Dstat это универсальный инструмент статистики ресурсов. Этот инструмент сочетает в себе возможности iostat, vmstat, netstat и ifstat. Утилита позволяет нам отслеживать системные ресурсы в режиме реального времени.
Инструмент дает нам подробную информацию обо всей системе в столбцах, например, мы можем видеть дисковое пространство в сочетании с прерываниями контроллера IDE.
Дстат находится внутри репозиториев Ubuntu По умолчанию вы можете легко установить его, выполнив следующую команду:
apt-get install dstat