Question
How can I run shell (terminal) in Google Colab?
I know that I can call !ls
to issue ls
command to shell.
But I want features like history or tab-completion.
Is it possible to do so in Google Colab?
Question
I know that I can call !ls
to issue ls
command to shell.
But I want features like history or tab-completion.
Is it possible to do so in Google Colab?
Solution
You can use jQuery Terminal Emulator backed with google.colab.kernel.invokeFunction
Here's an example notebook.
The key part is here, where you back it with shell function.
def shell(command):
return JSON([getoutput(command)])
output.register_callback('shell', shell)
And here's how you use 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));
}
Here's a screenshot.
I have taken @Anant's answer and add it into my library. Now you can run console easily with just
!pip install kora
from kora import console
console.start() # and click link
If you subscribe to Colab Pro, terminal is now available. Just click the 'Terminal' icon on the left pane.
Solution
I just wrote a tool to run xterm in colab. Just three lines of code and you can get an interactive terminal.
!pip install colab-xterm
%load_ext colabxterm
%xterm
If you feel it is useful, please star this project. ⭐️