Альтернативный python

В операционной системе Linux, основанной на Debian (Debian, Ubuntu, Mint, Kali и т.д.), может быть установлено несколько версий python. Вы можете запустить команду ls чтобы посмотреть версии, установленные на вашей системе:

$ ls /usr/bin/python*
/usr/bin/python  /usr/bin/python2  /usr/bin/python2.7  /usr/bin/python3  /usr/bin/python3.8  /usr/bin/python3.8m  /usr/bin/python3m

Чтобы проверить, какая версия python используется по умолчанию, выполните:

$ python --version
Python 2.7.8

Изменение версии python для отдельных пользователей

Чтобы изменить версию python для отдельного пользователя, просто создайте alias для домашней директории пользователя. Откройте файл ~/.bashrc и добавьте новый alias чтобы изменить путь к исполняемому файлу python по умолчанию:

alias python='/usr/bin/python3.8'

После внесения изменений перелогиньтесь или перечитайте файл .bashrc:

$ . ~/.bashrc

Проверьте версию python по умолчанию:

$ python --version
Python 3.8.5

Если вы используете не bash, а другую оболочку, внесите алиас в соответствующий .rc-файл.

Читать далее

Pi-KVM

Pi-KVM1Подкинули ссылку на интересный проект, называется Pi-KVM. Из названия можно догадаться, что проект разработан на основе платы Raspberry Pi, а назначение проекта – бюджетный IP-KVM (keyboard, video, mouse).

Заказал Люсю (модуль-переходник HDMI <-> CSI-2) и решил собрать проект на Raspberry Pi Zero W. В комплекте с переходником был шлейф, который подключается к RPi 2, 3 или 4, т.е. широкий. Пришлось заказывать еще и шлейфы с зауженным концом, подходящим к платкам Зеро. Думал, придется ждать еще месяц-другой, но случайно обнаружил у себя такой шлейф* и начал сборку.

Читать далее

Лайфхак: загрузка видео с сайта Майкрософт

Matt Bierner

Майкрософт на Фейсбуке поделился ссылкой — Visual Studio Code tips and tricks. Я очень не люблю пользоваться сайтовыми медиаплеерами, которые вечно то глючат, то меняют качество видео. Для начала нужно открыть в браузере DevTools -> Network и посмотреть, откуда качается видео. В моем случае это было что-то типа такого. Эту ссылку вначале нужно привести к такому виду. Т.е. отрезать в конце адреса всё и после .ism добавить «/manifest(format=mpd-time-csf)&selected_id=1_V_video_1» (или только «/manifest(format=mpd-time-csf)»). Полученную ссылку нужно скормить YouTube-dl*, он скачает манифест и само видео.
*У меня он настроен скачивать видео в максимально доступном разрешении.

А вообще, если интересна такая тема, подписывайтесь на канал этого парня.

Обновление libc6 на Ubuntu под Windows WSL

После попытки обновить порты, стали валиться ошибки, что нельзя обновить libc-bin. dpkg ругался так:

# dpkg --configure libc6:amd64
Setting up libc6:amd64 (2.31-0ubuntu9) ...
Checking for services that may need to be restarted...
Checking init scripts...
Nothing to restart.
sleep: cannot read realtime clock: Invalid argument
dpkg: error processing package libc6:amd64 (--configure):
 installed libc6:amd64 package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 libc6:amd64

Помогло это:

~# dpkg --remove --force-remove-reinstreq --force-remove-essential --force-depends libc-bin
~# dpkg --purge --force-remove-reinstreq --force-remove-essential --force-depends libc-bin
~# mv /var/lib/dpkg/info/libc6\:amd64.* /tmp/
~# apt install -f libc-bin
~# mv /tmp/libc6\:amd64.* /var/lib/dpkg/info/

Дальше обычное обновление всего остального софта.

pkg: wrong architecture

На днях в портах FreeBSD у одного порта, а именно, у ports-mgmt/pkg-devel, прописали "abi":"FreeBSD:12.0:i386" вместо "abi":"FreeBSD:12:i386". Аналогично сделали на архитектуре amd64 и на других ветках, не только 12. При попытке обновить порты выпадает следующая ошибка:

~ ~> pkg update -f
Updating FreeBSD repository catalogue...
Fetching meta.conf: 100%    163 B   0.2kB/s    00:01
Fetching packagesite.txz: 100%    6 MiB   1.6MB/s    00:04
Processing entries:  64%
pkg: wrong architecture: FreeBSD:12.0:i386 instead of FreeBSD:12:i386
pkg: repository FreeBSD contains packages with wrong ABI: FreeBSD:12.0:i386
Processing entries: 100%
Unable to update repository FreeBSD
Error updating repositories!

В amd64, соответственно, ошибка:

pkg: wrong architecture: FreeBSD:12.0:amd64 instead of FreeBSD:12:amd64

В качестве workaround, можно прописать в файл /usr/local/etc/pkg.conf:

ABI = "FreeBSD:12:i386";
ALTABI = "FreeBSD:12.0:i386"

Только поправить под свою архитектуру. Проверить используемые ABI можно так:

~> pkg -vv | grep ABI
ABI = "FreeBSD:12:i386";
ALTABI = "FreeBSD:12.0:i386";

А проверить наличие проблемного пакета так:

fetch -qo - https://pkg.freebsd.org/FreeBSD:12:i386/latest/packagesite.txz | tar -xzOf - | grep -a "FreeBSD:12.0"

И, на всякий случай, сделайте пометку в motd, что файл /usr/local/etc/pkg.conf изменен.

Как удалить MBRFilter

Три года назад я писал, как можно защитить MBR(Master Boot Record) вашего ПК от изменений вирусом NotPetya. С того времени защищать MBR научились, пожалуй, все антивирусы и не только. У меня MBR защищает еще и Acronis True Image 2020 (мелочь, а приятно).

На данный момент необходимости в этом фильтре у меня нет и я решил его удалить. Иногда нужно записать флешку для Raspberry Pi или обновления БИОСа, а из-за этого фильтра этого сделать нельзя.

Добавление фильтра производится записью его в реестр в ветку

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e967-e325-11ce-bfc1-08002be10318}\UpperFilters.

На чистой системе ветка реестра может выглядеть так:

MBRFilter-example

 

Читать далее

Windows Subsystem for Linux

neofetch

Если вы не в курсе, что такое Windows Subsystem for Linux или WSL (или WSL 2), то воспользуйтесь Гуглом. Вкратце, это Linux, работающий внутри OS Windows. Устанавливать эмулятор, вроде Virtual Box или VMWare не нужно, несколько готовых сборок можно установить из магазина Microsoft как обычные  программы. После запуска у вас будет консоль, внешне, естественно, похожая на консоль командной строки, но почти такая же удобная и гибкая, как PuTTY или другой терминал.

Мне эта штука понравилась тем, что у пользователя есть доступ ко всем дискам и разделам операционной системы и можно писать практически любые скрипты для задач по работе с файлами. Поиск файлов, поиск текста внутри файлов, поиск и обработка файлов, чтение файлов в реальном времени (tail –F) и т.д. производится так же, как на обычном Линуксе. Огромное количество удобных утилит доступны практически просто из коробки.

Сегодня мне понадобилось конвертировать несколько flac-файлов в mp3. Я набросал простой скрипт, несколько минут – и все готово. Не нужно устанавливать программы, да еще и зачастую платные, достаточно установить одну или несколько консольных утилит и запустить скрипт.

У меня установлена сборка Debian, для работы с аудиофайлами я использовал ffmpeg, для этого нужно сначала его установить:

sudo apt install ffmpeg -y

Затем нужно перейти в каталог с файлами, которые нужно конвертировать (cd /mnt/c/folder, где “c” – буква  раздела, а folder – каталог с музыкой), создать файл (выполнить nano re.sh) и вставить туда скрипт (правой клавишей, как в обычной командной строке):

#!/bin/sh
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

for f in *.flac
do
 ffmpeg -i "$f" -ab 320k -map_metadata 0 -id3v2_version 3 "$f".mp3
done

CTRL+X Y ENTER. Всё, файл сохранен. Запускаем командой sh re.sh и смотрим за процессом выполнения.

Упомянутый выше поиск текста в файлах выглядит примерно так:

find . -name "*.*htm*" -exec grep -i "iframe" {} \; -print

Точка – это текущий каталог, можно указать путь к каталогу. Данный однострочник найдет в текущем каталоге все файлы с расширением, содержащим htm, т.е. .html, .htm, .shtml и т.д. и если внутри файла содержится текст iframe – выведется имя файла и строка в файле с этим словом.

Возможностей море, можно искать готовые скрипты для своих нужд на страничках линуксоидов или писать свои. Если вы не линуксоид, то есть хороший повод начать изучать консоль Линукс.

Iconic One Theme | Powered by Wordpress