首页 > 解决方案 > 如何在 Google Colab 中运行 shell(终端)?

问题描述

我知道我可以调用!ls来向 shell 发出ls命令。

但我想要历史记录或制表符补全等功能。

可以在 Google Colab 中这样做吗?

标签: shellcommand-lineterminalgoogle-colaboratory

解决方案


您可以使用支持的 jQuery Terminal Emulatorgoogle.colab.kernel.invokeFunction

这是一个示例笔记本

关键部分在这里,你用 shell 函数支持它。

def shell(command):
  return JSON([getoutput(command)])
output.register_callback('shell', shell)

这里是你如何使用invokeFunction

try {
    let res = await google.colab.kernel.invokeFunction('shell', [command])
    let out = res.data['application/json'][0]
    this.echo(new String(out))
} catch(e) {
    this.error(new String(e));
}

这是一个屏幕截图。

在此处输入图像描述

更新(2020 年 7 月)

我已将@Anant 的答案添加到我的库中。现在您可以轻松运行控制台

!pip install kora
from kora import console
console.start()  # and click link

更新 (12/2020)

如果您订阅 Colab Pro,现在可以使用终端。只需单击左侧窗格中的“终端”图标。

终端图标


推荐阅读