Советы по GNU/Linux
155 subscribers
203 photos
6 videos
43 files
314 links
Канал, посвящённый GNU/Linux и свободному ПО.

Другие наши каналы:

@calmira_gnu_linux - чат по дистрибутиву Calmira GNU/Linux-libre, который разрабатывает один из админов этого канала
Download Telegram
Плавно переходим к небольшим заметкам.

https://linuxoid85.github.io/LinuxSovet/stats/programming/python/environ.html

#Programming #Python
https://linuxoid85.github.io/LinuxSovet/stats/programming/python/files/cp-mv.html

Статья о работе с файлами. Получение списка директорий, получение размера файла, копирование и перемещение. Немного про модуль shutil. Только начал его рассматривать, о нём нужно писать отдельную статью с примерами работы.

#Programming #Python
Переключился на более короткие статьи. Но не менее подробные, надеюсь :)

Работа с tar-архивами в Python. Рассмотрены создание и добавление файлов, распаковка, просмотр содержимого архива.

https://linuxoid85.github.io/LinuxSovet/stats/programming/python/files/tarfile.html

#Python #Programming
Извращение с терминалом. tput.

tput — команда, использующая базу данных terminfo для предоставления шеллу терминало-зависимых возможностей. При использовании команды можно указать тип терминала, но обычно это не делается, так как по-умолчанию тип берется из переменной $TERM.

Рассмотрим следующий скрипт:

#!/bin/bash

# -e - включить управление escape-последовательностями
# -n - не переносить на новую строку
SUCCESS="echo -en \\e[1;32m"
FAIL="echo -en \\e[1;31m"
NORMAL="echo -en \\e[0;39m"

touch $1 # Создаём определённый пустой файл

# Проверяем на успешность операции
# Можно тестировать на наличие файла $1,
# но я доверюсь кодам завершения программы.
if [ $? -eq 0 ]; then
$SUCCESS
echo -n "$(tput hpa $(tput cols))$(tput cub 6)[0k]"
$NORMAL
echo # Переход на новую строку. Без комментариев.
else
$FAIL
echo -n "$(tput hpa $(tput cols))$(tput cub 6)[FAIL]"
$NORMAL
echo
fi

Теперь расшифровка параметров:

- tput hpa X - сдвиг курсора на Х позиций;
- tput cols - получение количества колонок в терминале (ровно как tput lines - получение кол-ва строк);
- tput cub 6 - сдвиг курсора на 6 позиций влево (т.о. сообщение [0k]/[FAIL] "прижаты" к краю)

Кроме того, вместо escape-последовательностей можно использовать тот же самый tput. Я не стал так делать во избежание усложнения скрипта, пусть и небольшого.

Запуск скрипта:

./script.sh $FILENAME

Замените $FILENAME на имя файла. Если файл существует, то touch выдаст код завершения 1, соответственно, на экране увидим [FAIL]. Если такого файла нет, то он будет создан и touch выдаст код завершения 0. Переменная $? содержит в себе это.

Смотрите также:

- man bash
- man tput
- help echo

Применение найдите сами.

#Bash #Programming #Рукоблудие
PyUSB - модуль Python, обеспечивающая лёгкий доступ к USB.

Кто есть кто

Все модули PyUSB имеют в начале название usb.*:

usb.core - основной модуль;
usb.util - вспомогательные функции;
usb.control - стандартные запросы управления;
usb.legacy - слой совместимости с версиями 0.х;
usb.backend - бэкенд.

Например:

#!/usr/bin/python3

import usb.core as usb

print(usb.show_devices()) # Показывает список подключенных устройств

Работу с этим модулем смотрите в документации.

Смотрите также:

- help(usb.core)
- help(usb.util)
- help(usb.control)
- help(usb.legacy)
- help(usb.backend)

#Python #Programming
https://pyneng.readthedocs.io/ru/latest/book/additional_info/argparse.html

Одно из самых полных руководств по этому модулю (и по Python в целом). Рекомендуется к прочтению.

#Programming #Python
https://linuxoid85.github.io/LinuxSovet/stats/programming/bash/

Первая часть статьи об использовании BASH для написания скриптов. Рассмотрен ввод/вывод информации, перенаправление, а так же конструкции ветвления и выбора.

#BASH #Linux #Programming
👍1
Доброго времени суток! Благодаря @crazy_linux сегодня мы перешагнули планку в 100 участников 😊. Так как на сообщество подписалось довольно много людей, принял решение сделать пост со списком старых статей, рекомендуемых для прочтения либо беглого ознакомления. Удачи!

Цикл "Строение GNU/Linux". Состоит на данный момент из четырёх частей. В несколько модифицированном виде присутствует в более крупном проекте - "Linux для себя" (lx4u.ru). Скоро выйдет пятая часть!
https://linuxoid85.github.io/LinuxSovet/stats/LFS/LinuxStr.preview.html

UPD от 25.02 - сегодня была написана пятая часть статьи об управлении программным обеспечением! Читать здесь, а также здесь (сайт дружественного нам сообщества).

"Настройка клавиатуры в LFS". Вы только что собрали свой дистрибутив по LFS с системой инициализации SysVInit и хотите настроить переключение раскладок клавиатуры, шрифт и прочие вещи? Читайте эту статью.
https://linuxoid85.github.io/LinuxSovet/stats/LFS/keyboard-lfs.html

"Расширения GNOME Shell". Без комментариев, всё понятно из названия. Статья периодически правится и дополняется. Кроме того, в марте, если не ошибаюсь, выйдет GNOME 42, поэтому статью через какое-то время придётся править снова ;).
https://linuxoid85.github.io/LinuxSovet/stats/GNOME/look/1/extensions.html

"Calmira GNU/Linux и CPL" - ещё один цикл статей, посвящённый LFS, LX4U и дистрибутиву, собранному по этим руководствам. Его я делаю только для себя, здесь же делюсь опытом.
https://linuxoid85.github.io/LinuxSovet/stats/blog/cpl/

"Использование BASH для написания скриптов. Часть 1" - небольшая заметка о создании BASH-скриптов. Скоро выйдет вторая часть. Кстати, это одна из последних статей здесь.
https://linuxoid85.github.io/LinuxSovet/stats/programming/bash/

Раз уж зашла речь о BASH, то неплохим будет описать и тему парсинга JSON-файлов в нём. Конечно, сторонними средствами, но от этого хуже не стало 😉
https://linuxoid85.github.io/LinuxSovet/stats/programming/bash/jq.html

#Stats #Programming #LFS #LX4U #Soft #BASH #Linux
👍6🔥2
https://habr.com/ru/company/wunderfund/blog/654493/

Сразу вспомнилось. Я себе написал скрипт для получения данных об АКБ ноутбука. Кроме обычных возможностей вроде просмотра состояния АКБ, процента заряда, типа АКБ и пр. скрипт умеет анализировать заряд/разряд АКБ за определённый период и на основании полученных данных строить график (matplotlib). Так вот - я поразился потреблением памяти этого скрипта - около 50 Мб! А ведь на том этапе он только лишь получал данные об АКБ от ядра Linux, просто читая данные из текстового файла. И тут я понял, что я делаю что-то не так. И не только я, а многие другие разрабы. Даже учитывая особенности работы Linux с RAM, когда процессы потребляют максимально возможный объём ОЗУ, 50 Мб для простого скрипта - мне показалось это очень жирным.

#Programming #Python
👍3
Новая Старая статья на нашем обновлённом сайте!

Парсинг JSON в BASH

Данная небольшая статья описывает использование программы jq для работы с JSON-файлами из BASH.

Все старые статьи с сайта LinuxSovet были утеряны в 2022 году, поэтому наше обновлённое сообщество мне пришлось делать с нуля. Однако пару дней назад я нашёл один из последних архивов со статьями. Поэтому на протяжении этой недели буду выкладывать некоторые из них [наиболее на мой взгляд удачные] на обновлённый сайт UNIX Time.

#BASH #Programming #Статьи

[Подписаться на нас] | [Чат] | [Длинные статьи] | [Донат]
👍2
Новая Старая статья на нашем обновлённом сайте!

Использование BASH для написания скриптов. Часть 1.

В этой статье рассмотрел основные понятия BASH, которые пригодятся для написания скриптов на этом языке:

- права доступа и shebang
- потоки данных и перенаправление
- условные операторы
- операторы выбора

Все старые статьи с сайта LinuxSovet были утеряны в 2022 году, поэтому наше обновлённое сообщество мне пришлось делать с нуля. Однако пару дней назад я нашёл один из последних архивов со статьями. Поэтому на протяжении этой недели буду выкладывать некоторые из них [наиболее на мой взгляд удачные] на обновлённый сайт UNIX Time.

#BASH #Programming #Статьи

[Подписаться на нас] | [Чат] | [Длинные статьи] | [Донат]
👍3