3 steps to emulate a terminal in Google Colab
2 min readJun 8, 2020
Let’s make it confortable
A demo is available here. Below the process to emulate a terminal in your Google Colab.
Part 1
Just copy past this code in a cell of your colab and run:
from IPython.display import JSON
from google.colab import output
from subprocess import getoutput
import osdef shell(command):
if command.startswith('cd'):
path = command.strip().split(maxsplit=1)[1]
os.chdir(path)
return JSON([''])
return JSON([getoutput(command)])
output.register_callback('shell', shell)
Part 2
In another cell copy/past/run the following:
#@title Colab Shell
%%html
<div id=term_demo></div>
<script src="https://code.jquery.com/jquery-latest.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery.terminal/js/jquery.terminal.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/jquery.terminal/css/jquery.terminal.min.css" rel="stylesheet"/>
<script>
$('#term_demo').terminal(async function(command) {
if (command !== '') {
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));
}
} else {
this.echo('');
}
}, {
greetings: 'Welcome to Colab Shell',
name: 'colab_demo',
height: 250,
prompt: 'colab > '
});
You should be close to that:
Part 3
Hide the code:
and the magic happen
Sharing is caring !