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
📰 Asahi Linux Improves Apple Silicon Support as Fedora Asahi Remix 44 Nears
Asahi Linux moves Apple Silicon support forward with a new installer, Mac Pro support, firmware updates, and Fedora Asahi Remix 44 preparations.
🔗 Source: https://linuxiac.com/asahi-linux-improves-apple-silicon-support-as-fedora-asahi-remix-44-nears/
#fedora#linux
📰 Microsoft Reportedly Looking At Rebasing Azure Linux On Fedora
Microsoft's in-house Azure Linux operating system used within Azure and for WSL and other purposes is reportedly pursuing an overhaul where it would be derived from Fedora Linux...
🔗 Source: https://www.phoronix.com/news/MS-Azure-Linux-Fedora-Based
#fedora#linux
📰 Mesa Granted Permanent Updates Exception For Fedora Linux
It doesn't change too much in practice with how Mesa updates typically have been handled under Fedora Linux, but now it's officially documented: Mesa graphics drivers have a permanent updates exception so new Mesa versions can be shipped as updates in Fedora stable releases...
🔗 Source: https://www.phoronix.com/news/Mesa-Updates-Exception-Fedora
#linux#fedora
📰 Fedora 44 will automatically make your Windows games run faster, no tweaks required
Don't get me wrong; gaming on Linux has come a long way in the last few years. A decade ago, getting any game running on Linux that wasn't designed natively for it was a massive headache at best and impossible at worst. Now, thanks to the efforts from several sources, such as Valve with Proton, it seems like 2026 may be the year of gaming on Linux after all.
🔗 Source: https://www.xda-developers.com/fedora-44-will-automatically-make-your-windows-games-run-faster-no-tweaks-required/
#fedora#linux
📰 Someone is Bringing Fedora Linux to Phones (And It’s Not Red Hat)
A small community project is building immutable Fedora images for tablets and phones.
🔗 Source: https://itsfoss.com/news/fedora-pocketblue-remix-overview/
#linux#fedora
[$] An API for handling arithmetic overflow
Kees Cook 提交了一套补丁,旨在消除内核中无声、无意的整数溢出风险。Linus Torvalds 对此方案并不满意,引发了关于“安全”整数运算含义及处理整数溢出的 API 设计的详细讨论。最终,开发者们就一个不同的 API 达成共识,该 API 应能大大简化内核中溢出错误的处理。
原文链接:https://lwn.net/Articles/1065889/
#Linux#内核开发#编程#API设计
#AIGC
Read more
Linux from Scratch to drop System V versions
Linux From Scratch (LFS) 项目宣布将停止维护其 System V 版本,未来的版本将仅专注于 systemd。
做出这一决定主要有两个原因:
1. **工作量过大**:LFS 项目完全由志愿者维护,需要跟踪海量的上游软件包更新。为 System V 和 systemd 两个初始化系统分别检查和更新所有软件包,给编辑者带来了难以承受的负担。
2. **软件生态的推动**:像 GNOME 以及即将到来的 KDE Plasma 等主流桌面环境,越来越多地依赖 systemd 提供的特定功能,这些功能是 System V init 所不具备的。虽然可以转向 OpenRC 等其他初始化系统,但这依然无法解决持续维护的工作量问题。
项目负责人 Bruce Dubbs 在公告中表达了对这一决定的个人遗憾。他认为 LFS 的核心是帮助用户理解系统如何工作,而理解启动过程是其中重要的一环。System V init 的实现相对简洁(约22个C文件和一些脚本),而 systemd 则庞大复杂得多(约1678个C文件)。转向 systemd 虽然带来了更多功能,但也意味着会失去一些他认为重要的、用于教学理解的东西。
预计仅支持 systemd 的下一个主要版本 LFS 13.0 将于今年三月发布。
原文链接:https://lwn.net/Articles/1057509/
#Linux#Systemd#开源项目#系统管理
#AIGC
Read more