2022-03-23 13:21:14 +08:00
|
|
|
|
[#]: subject: "Xonsh Shell Combines the Best of Bash Shell and Python in Linux Terminal"
|
|
|
|
|
[#]: via: "https://itsfoss.com/xonsh-shell/"
|
|
|
|
|
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
|
|
|
|
|
[#]: collector: "lujun9972"
|
|
|
|
|
[#]: translator: "lkxed"
|
2022-03-24 11:19:31 +08:00
|
|
|
|
[#]: reviewer: "wxy"
|
|
|
|
|
[#]: publisher: "wxy"
|
|
|
|
|
[#]: url: "https://linux.cn/article-14390-1.html"
|
2022-03-23 13:21:14 +08:00
|
|
|
|
|
2022-03-24 11:19:31 +08:00
|
|
|
|
Xnosh Shell:在 Linux 终端结合 Bash Shell 和 Python 的最佳特性
|
2022-03-23 13:21:14 +08:00
|
|
|
|
======
|
|
|
|
|
|
2022-03-24 11:19:31 +08:00
|
|
|
|
![](https://img.linux.net.cn/data/attachment/album/202203/24/111824ufw1815lyvclnsr2.jpg)
|
|
|
|
|
|
2022-03-23 13:21:14 +08:00
|
|
|
|
最受欢迎的 shell 是什么?我猜你会回答 bash 或者 zsh,没错,的确如此。
|
|
|
|
|
|
2022-03-24 11:19:31 +08:00
|
|
|
|
UNIX 和 Linux 系统上有许多可用的 shell,包括 Bash、Ksh、Zsh、Fish 等等。
|
2022-03-23 13:21:14 +08:00
|
|
|
|
|
|
|
|
|
最近,我碰到了另外一个 shell,它结合了 Python 和 bash,还蛮特别的。
|
|
|
|
|
|
|
|
|
|
### Xonsh shell,为喜爱 Python 的 Linux 用户而打造
|
|
|
|
|
|
|
|
|
|
[Xonsh][1] 是一个使用 Python 编写的跨平台 shell 语言和命令提示符。
|
|
|
|
|
|
2022-03-24 11:19:31 +08:00
|
|
|
|
它结合了 Python 和 Bash shell,因此你可以在这个 shell 中直接运行 Python 命令(语句)。你甚至可以把 Python 命令和 shell 命令混合起来使用。
|
2022-03-23 13:21:14 +08:00
|
|
|
|
|
|
|
|
|
![][2]
|
|
|
|
|
|
|
|
|
|
听起来不错吧?如果你是一个 Python 程序员的话,你应该会更加兴奋。
|
|
|
|
|
|
|
|
|
|
### 在 Linux 上安装 Xonsh shell
|
|
|
|
|
|
|
|
|
|
有多种方式可以在 Linux 系统上安装 Xonsh shell。
|
|
|
|
|
|
|
|
|
|
你可以使用软件包管理器安装它(主要的 Linux 发行版的仓库中都有 Xonsh shell)。
|
|
|
|
|
|
|
|
|
|
在 Ubuntu 和 Debian 上,你可以尝试运行:
|
|
|
|
|
|
|
|
|
|
```
|
2022-03-24 11:19:31 +08:00
|
|
|
|
sudo apt install xonsh
|
2022-03-23 13:21:14 +08:00
|
|
|
|
```
|
|
|
|
|
|
2022-03-24 11:19:31 +08:00
|
|
|
|
因为它本质上是一个 Python 应用,所以你总是可以使用 Pip 来安装(如果你的系统已经安装了的话)。或者,你也可以使用 Conda 来安装 Xonsh。同时,它还提供了 AppImage 格式和 Docker 镜像。
|
2022-03-23 13:21:14 +08:00
|
|
|
|
|
|
|
|
|
你可以自由选择你喜欢的安装方式。
|
|
|
|
|
|
|
|
|
|
### Xonsh shell 初体验
|
|
|
|
|
|
2022-03-24 11:19:31 +08:00
|
|
|
|
如果你不熟悉 Linux 的“多 shell”概念和终端的相关知识,我推荐你阅读 [我写的一篇终端入门的文章][3]。这篇文章会帮助 Linux 新手弄清楚很多东西。
|
2022-03-23 13:21:14 +08:00
|
|
|
|
|
|
|
|
|
我在这里简单介绍一下。你的终端运行着一个默认的 shell(通常是 bash shell)。如果你在系统上安装了其他的 shell,你可以 [轻松地切换这些 shell][4]。
|
|
|
|
|
|
|
|
|
|
要进入 Xonsh shell,只需运行一条命令:
|
|
|
|
|
|
|
|
|
|
```
|
2022-03-24 11:19:31 +08:00
|
|
|
|
xonsh
|
2022-03-23 13:21:14 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
![][5]
|
|
|
|
|
|
|
|
|
|
它会建议你运行一个设置向导,然后创建一个 Xonsh shell 的自定义 `rc` 配置文件。这是可选的,你也可以晚些时候再做。
|
|
|
|
|
|
|
|
|
|
一旦你开始使用它,你就立刻会感觉到一些不同。
|
|
|
|
|
|
|
|
|
|
当你开始输入一条命令时,Xonsh 会自动建议历史记录中的最后一条匹配命令。你可以按下右箭头键确认使用这条自动建议的命令。你也可以按下上、下箭头键来选择历史记录中的其他匹配命令。
|
|
|
|
|
|
|
|
|
|
![Xonsh shell automatically suggests last matching command from the history as you type][6]
|
|
|
|
|
|
2022-03-24 11:19:31 +08:00
|
|
|
|
不仅如此,它还支持交互式的 Tab 补全。当你开始输入命令,并按下 `tab` 键,它会显示一个类似于下拉式的交互式菜单。你可以在这个菜单中选择可用的命令。
|
2022-03-23 13:21:14 +08:00
|
|
|
|
|
|
|
|
|
![Tab completion in Xonsh shell][7]
|
|
|
|
|
|
|
|
|
|
你可以混合使用 Python 和 bash 命令,并且直接在 shell 中运行它们。
|
|
|
|
|
|
2022-03-24 11:19:31 +08:00
|
|
|
|
如果你对 [终端定制][8] 感兴趣,你可以花点时间和精力,根据自己的喜好来定制 Tab 补全、按键绑定和颜色样式。
|
2022-03-23 13:21:14 +08:00
|
|
|
|
|
|
|
|
|
它同时拥有一个叫做 [Xontrib][9] 的用户自定义插件系统,你可以使用这些插件来扩展 Xonsh shell 的功能。
|
|
|
|
|
|
|
|
|
|
如果你是一个终端爱好者,并渴望学习更多终端知识,你可以浏览它的 [丰富的文档系统][10]。
|
|
|
|
|
|
|
|
|
|
### 最后
|
|
|
|
|
|
2022-03-24 11:19:31 +08:00
|
|
|
|
大多数用户坚持使用默认的 Bash shell,这很正常。有一些开发者和系统管理员会选择使用 Zsh,因为它有很多附加特性。而 Xonsh 完全聚焦在 Python 上,对于 Python 使用者来说,它或许具有吸引力。对于其余的人来说,Bash 已经足够好了。
|
2022-03-23 13:21:14 +08:00
|
|
|
|
|
2022-03-24 11:19:31 +08:00
|
|
|
|
你使用过 Xonsh 或者其他的 shell 吗?你用它来代替 Bash 的原因是什么呢?欢迎在评论区留言。
|
2022-03-23 13:21:14 +08:00
|
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
via: https://itsfoss.com/xonsh-shell/
|
|
|
|
|
|
|
|
|
|
作者:[Abhishek Prakash][a]
|
|
|
|
|
选题:[lujun9972][b]
|
|
|
|
|
译者:[lkxed](https://github.com/lkxed)
|
2022-03-24 11:19:31 +08:00
|
|
|
|
校对:[wxy](https://github.com/wxy)
|
2022-03-23 13:21:14 +08:00
|
|
|
|
|
|
|
|
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
|
|
|
|
|
|
|
|
|
[a]: https://itsfoss.com/author/abhishek/
|
|
|
|
|
[b]: https://github.com/lujun9972
|
|
|
|
|
[1]: https://xon.sh/
|
|
|
|
|
[2]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2022/03/xonsh-shell-combines-python-bash.png?resize=800%2C470&ssl=1
|
|
|
|
|
[3]: https://itsfoss.com/basic-terminal-tips-ubuntu/
|
|
|
|
|
[4]: https://linuxhandbook.com/change-shell-linux/
|
|
|
|
|
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2022/03/xonsh-shell.png?resize=800%2C451&ssl=1
|
|
|
|
|
[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2022/03/auto-suggestions-from-history-in-xonsh-shell.png?resize=800%2C258&ssl=1
|
|
|
|
|
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2022/03/tab-completion-xonsh-shell.png?resize=800%2C354&ssl=1
|
|
|
|
|
[8]: https://itsfoss.com/customize-linux-terminal/
|
|
|
|
|
[9]: https://github.com/topics/xontrib
|
|
|
|
|
[10]: https://xon.sh/tutorial.html
|