Python + bash
Если вам часто требуется запускать shell команды из Python-кода, какой способ вы используете?
Самый низкоуровневый это функция os.system(), либо os.popen(). Рекомендованный способ это subprocess.call(). Но это всё еще достаточно неудобно.
Советую обратить своё внимание на очень крутую библиотеку sh.
Что она умеет?
🔸 удобный синтаксис вызова команд как функций
# os
import os
os.system("tar cvf demo.tar ~/")
# subprocess
import subprocess
subprocess.call(['tar', 'cvf', 'demo.tar', '~/'])
# sh
import sh
sh.tar('cvf', 'demo.tar', "~/")
🔸 простое создание функции-алиаса для длинной команды
fn = sh.lsof.bake('-i', '-P', '-n')
output = sh.grep(fn(), 'LISTEN')
в этом примере также задействован пайпинг
🔸 удобный вызов команд от sudo
with sh.contrib.sudo:
print(ls("/root"))
Такой запрос спросит пароль. Чтобы это работало нужно соответствующим способом настроить юзера.
А вот вариант с вводом пароля через код.
password = "secret"
sudo = sh.sudo.bake("-S", _in=password+"\n")
print(sudo.ls("/root"))
Это не все фишки. Больше интересных примеров смотрите в документации.
Специально для Windows💀 юзеров
#libs#linux
👩💻 Администрирование Linux.
• Нашел очень полезную подборку из 27 репозиториев на GitHub. Тут вам и коллекция полезных скриптов для автоматизации различных задач, и настройка безопасности, и даже различные задачки для повышения скила. В общем и целом, много крутых и полезных ресурсов, обязательно ознакомьтесь:
➡️https://github.com/topics/linux-administration
#Linux
👩💻 Test drive Linux distros online!
• Ещё один ресурс, где можно прямо в браузере протестировать работу разных дистрибутивов Linux:
➡️https://distrosea.com/
#Linux
👩💻 Траблшутинг Linux. Основные команды, примеры.
• Основные команды для быстрого поиска проблем (траблшутинга) сервера или виртуальной машины на Linux (Ubuntu, Debian, CentOS, Astra). Как диагностировать проблемы с дисками, процессами, оперативной памятью, сетью. Как смотреть логи в Linux.
- Мониторинг;
- Место на дисках;
- Состояние дисков;
- Нагрузка на диски;
- Процессор;
- Оперативная память;
- Процессы;
- Сеть;
- Логи.
#Linux
🥇 Understanding process thread priorities in Linux.
• Интересная статья о приоритетах в Linux: какие инструменты можно использовать для просмотра информации по приоритетам и о работе ядра с приоритетами.
➡️https://blogs.oracle.com/linux/post/task-priority
#Linux
👩💻 Understanding process thread priorities in Linux.
• Интересная статья о приоритетах процессов в Linux, о работе ядра c приоритетами, и о том какие инструменты можно использовать для просмотра информации о приоритетах:
➡️https://blogs.oracle.com/linux/post/task-priority
#Linux
👩💻 FHS (Filesystem Hierarchy Standard) — стандарт иерархии файловой системы.
• Раньше я очень любил простоту Windows. A:\ для флоппика, C:\ для системы, D:\ для дистрибутивов игр, фото и видео, E:\ для CD-ROM. Всё просто!
• А теперь обратите внимание на gif к этому посту, так наглядно показан минимальный минимум, который встретится Вам в большинстве UNIX-подобных систем.
• Если нужно подробное описание, то информация есть на вики: https://ru.wikipedia.org/wiki/FHS
#Linux
📚 Пошаговое руководство по внедрению эксплойта в ядро Linux.
• Сразу хочу обозначить, что данное руководство было опубликовано в 2018 году, но до сих пор является весьма ценным и будет очень полезным для новичков.
• В этом руководстве детально рассмотрен процесс по разработке и внедрению эксплойта в ядро Linux на основе CVE-описания. Эта информация в основном ориентирована на начинающих разработчиков, поскольку в большинстве статей, посвященных разработке эксплойтов уровня ядра, подразумевается, что читатель уже в теме. Мы же начнем с самых азов и рассмотрим основные структуры данных и важные участки кода ядра. После ознакомления со всем циклом подразумевается, что вы сможете досконально разобраться с эксплойтом, включая то, как влияет каждая строка кода на ядро.
• Рассматривайте это руководство как путеводитель по ядру в Linux, сопровождаемый практическим примером. Написание эксплойтов дает хорошее понимание схемы функционирования ядра. Кроме того, вы рассмотрите различные отладочные техники, инструменты, наиболее распространенные подводные камни и методы решения возникающих проблем.
#Linux
7-Zip 开发者释出了首个官方 Linux 版本
2021-03-13 20:58#Linux
7-Zip 开发者 Igor Pavlov 不用 Linux,因此这个非常流行的解压软件一直没有官方的 Linux 版本。7-Zip 的非官方版本 p7zip 由另一名开发者维护,但项目已经四五年没有更新了。在这种情况下,Igor Pavlov 决定根据最新的源代码创建官方的 Linux 版本,他发布了 AMD64、ARM64、x86 和 armhf 架构的 Linux 版本。他只提供了二进制程序,目前还没有公开源代码,原因就是他不用 Linux,维护 Linux 编译脚本和包有点难度。