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
Codex
A Lightweight coding agent that runs in your Linux terminal
🔗Links
- Requirements
- Installation
- Source code & more info
Organization: OpenAI
🏷 Tags: #AI#Linux#WSL#MacOS#Utilities#Coding
📰 Waydroid runs Android apps on Linux better than Windows ever ran them on WSA
The Windows Subsystem for Android (WSA) is history now. Microsoft caved in and killed the project, which angered a lot of users because it was one of the main highlights of the Windows 11 launch. Microsoft failed to anticipate the demand for running Android apps with Google Play Store support, and the option to only download apps via the Amazon Appstore didn’t appeal to a lot of users. I thought WSA would kill third-party Android emulators on...
🔗 Source: https://www.xda-developers.com/waydroid-runs-android-apps-on-linux-better-than-windows-wsa/
#android#linux
📰 Linux is the best way to run Android apps on your PC, and it's not close
Running Android apps on my PC used to feel wrong, but Linux makes them feel right at home, and it's better than any Winddows solution.
🔗 Source: https://www.xda-developers.com/linux-best-way-run-android-apps-on-pc-until-gaming/
#linux#android
[$] Objections to systemd age-attestation changes go overboard
systemd 项目拟在用户记录中添加出生日期字段,以帮助应用遵守年龄验证法规。这一改动引发社区强烈反对,甚至出现针对贡献者的恶意攻击和人肉搜索。实际上,该字段仅用于存储信息,并非强制验证。
原文链接:https://lwn.net/Articles/1064706/
#Linux#开源社区#隐私保护#系统管理
#AIGC
Read more
New NTFS File-System Driver Submitted For Linux 7.1
Linux 7.1 合并窗口迎来了一项重要更新:一个全新的、现代化的 NTFS 文件系统驱动程序已提交。Linus Torvalds 尚未确认是否会合并此驱动,但它看起来已准备就绪,旨在提供比现有的 NTFS3 驱动更好的 Linux NTFS 体验。当前的 NTFS3 驱动由 Paragon Software 几年前贡献至内核主线,但后续功能进展有限。
原文链接:https://www.phoronix.com/news/New-NTFS-Driver-Submitted-Linux
#Linux#内核#文件系统#NTFS
#AIGC
Read more
[$] A visualizer for BPF program state
BPF 验证器非常复杂,它需要检查 BPF 程序执行可能经过的每一条路径。其判断程序是否安全是基于程序的整个生命周期,而非简单的局部因素,这意味着验证失败的原因并不总是显而易见的。
在 2025 年东京 Linux Plumbers 大会上,Ihor Solodrai 和 Jordan Rome 介绍了他们正在构建的 **BPF 验证器可视化工具**。该工具旨在让诊断验证失败的过程变得更加容易。
通过这个可视化工具,开发者可以更直观地理解验证器的内部状态和决策过程,从而更快地定位和修复 BPF 程序中的问题。
原文链接:https://lwn.net/Articles/1050585/
相关资源:演示文稿 | 项目仓库
#Linux#BPF#内核开发#调试工具
#AIGC
Read more