Xonsh Shell:在 Linux 终端结合 Bash Shell 和 Python 的最佳特性


Xonsh Shell:在 Linux 终端结合 Bash Shell 和 Python 的最佳特性

文章插图
最受欢迎的 shell 是什么?我猜你会回答 bash 或者 zsh , 没错 , 的确如此 。
UNIX 和 linux 系统上有许多可用的 shell , 包括 Bash、Ksh、Zsh、Fish 等等 。
最近 , 我碰到了另外一个 shell , 它结合了 Python 和 bash , 还蛮特别的 。
 
Xonsh shell , 为喜爱 Python 的 Linux 用户而打造Xonsh是一个使用 Python 编写的跨平台 shell 语言和命令提示符 。
它结合了 Python 和 Bash shell , 因此你可以在这个 shell 中直接运行 Python 命令(语句) 。你甚至可以把 Python 命令和 shell 命令混合起来使用 。
Xonsh Shell:在 Linux 终端结合 Bash Shell 和 Python 的最佳特性

文章插图
听起来不错吧?如果你是一个 Python 程序员的话 , 你应该会更加兴奋 。
 
在 Linux 上安装 Xonsh shell有多种方式可以在 Linux 系统上安装 Xonsh shell 。
你可以使用软件包管理器安装它(主要的 Linux 发行版的仓库中都有 Xonsh shell) 。
在 Ubuntu 和 Debian 上 , 你可以尝试运行:
sudo apt install xonsh因为它本质上是一个 Python 应用 , 所以你总是可以使用 Pip 来安装(如果你的系统已经安装了的话) 。或者 , 你也可以使用 Conda 来安装 Xonsh 。同时 , 它还提供了 AppImage 格式和 Docker 镜像 。
你可以自由选择你喜欢的安装方式 。
 
Xonsh shell 初体验如果你不熟悉 Linux 的“多 shell”概念和终端的相关知识 , 我推荐你阅读 我写的一篇终端入门的文章 。这篇文章会帮助 Linux 新手弄清楚很多东西 。
我在这里简单介绍一下 。你的终端运行着一个默认的 shell(通常是 bash shell) 。如果你在系统上安装了其他的 shell , 你可以 轻松地切换这些 shell 。
要进入 Xonsh shell , 只需运行一条命令:
xonsh
Xonsh Shell:在 Linux 终端结合 Bash Shell 和 Python 的最佳特性

文章插图
它会建议你运行一个设置向导 , 然后创建一个 Xonsh shell 的自定义 rc配置文件 。这是可选的 , 你也可以晚些时候再做 。
一旦你开始使用它 , 你就立刻会感觉到一些不同 。
当你开始输入一条命令时 , Xonsh 会自动建议历史记录中的最后一条匹配命令 。你可以按下右箭头键确认使用这条自动建议的命令 。你也可以按下上、下箭头键来选择历史记录中的其他匹配命令 。
Xonsh Shell:在 Linux 终端结合 Bash Shell 和 Python 的最佳特性

文章插图
不仅如此 , 它还支持交互式的 Tab 补全 。当你开始输入命令 , 并按下 tab键 , 它会显示一个类似于下拉式的交互式菜单 。你可以在这个菜单中选择可用的命令 。
Xonsh Shell:在 Linux 终端结合 Bash Shell 和 Python 的最佳特性

文章插图
你可以混合使用 Python 和 bash 命令 , 并且直接在 shell 中运行它们 。
如果你对 终端定制感兴趣 , 你可以花点时间和精力 , 根据自己的喜好来定制 Tab 补全、按键绑定和颜色样式 。
【Xonsh Shell:在 Linux 终端结合 Bash Shell 和 Python 的最佳特性】它同时拥有一个叫做 Xontrib的用户自定义插件系统 , 你可以使用这些插件来扩展 Xonsh shell 的功能 。
如果你是一个终端爱好者 , 并渴望学习更多终端知识 , 你可以浏览它的 丰富的文档系统 。
 
最后大多数用户坚持使用默认的 Bash shell , 这很正常 。有一些开发者和系统管理员会选择使用 Zsh , 因为它有很多附加特性 。而 Xonsh 完全聚焦在 Python 上 , 对于 Python 使用者来说 , 它或许具有吸引力 。对于其余的人来说 , Bash 已经足够好了 。
你使用过 Xonsh 或者其他的 shell 吗?你用它来代替 Bash 的原因是什么呢?欢迎在评论区留言 。
via: https://itsfoss.com/xonsh-shell/
作者:Abhishek Prakash选题:lujun9972译者:lkxed校对:wxy
本文由 LCTT原创编译 , Linux中国荣誉推出




    推荐阅读