Xonsh 项目介绍
什么是 Xonsh?
Xonsh 是一个由 Python 驱动的 shell,功能全面且跨平台。Xonsh 语言是 Python 3.6+ 的超集,并添加了一些 shell 原语。Xonsh 的名字来源于“conch”(海螺 🐚)的一部分,表达了其在命令行 shell 领域的归属。
Xonsh 的特点
Xonsh 是 Shell
Xonsh 同时支持常见的 shell 命令和 Python 语法,用户可以直接在命令行中运行类似于 shell 的命令,例如:
cd $HOME
id $(whoami)
cat /etc/passwd | grep root > ~/root.txt
$PROMPT = '@ '
Xonsh 是 Python
在 Xonsh 中,用户也可以轻松地执行 Python 代码:
2 + 2
var = "hello".upper()
import json; json.loads('{"a":1}')
[i for i in range(0,10)]
Xonsh 是基于 Python 的 Shell
Xonsh 将 shell 和 Python 无缝结合,可以在 shell 中使用 Python 来简化任务:
len($(curl -L https://xon.sh))
$PATH.append('/tmp')
p'/etc/passwd'.read_text().find('root')
xontrib load dalias
id = $(@json docker ps --format json)['ID']
用户甚至可以在命令行中定义和调用 Python 函数:
name = 'foo' + 'bar'.upper()
echo @(name) > /tmp/@(name)
ls @(input('file: '))
touch @([f"file{i}" for i in range(0,10)])
aliases['e'] = 'echo @(2+2)'
aliases['a'] = lambda args: print(args)
如何开始?
用户可以通过 pip 来安装 Xonsh:
python -m pip install 'xonsh[full]'
有关更多信息,用户可以访问 Xonsh 的官方网站。
扩展功能:Xontribs
Xonsh 支持扩展和插件系统,称为 xontribs。这些扩展可以在 GitHub 上找到,用户还可以通过模板创建自己的 xontribs。
Xonsh 社区与贡献
Xonsh 是由一个社区志愿者开发的项目,新贡献者和创意都非常欢迎。您可以通过解决问题、提出新想法、提高 Xonsh 的核心 API 以及其他方式来为 Xonsh 作出贡献。
Xonsh 的发展也得到了 Zulip 社区的支持,帮助其建立和维持了一个活跃的用户和开发者社区。欢迎有兴趣的用户成为 Xonsh 的贡献者,与大家一起创造一个更好的命令行工具!