A web simulation of my terminal setup (which uses zsh)
MIT License
An almost functional zsh terminal in any div
You can install via npm
$ npm install zsh.js
Include the script and style:
<link href="path/to/zsh.min.css" rel="stylesheet" />
<script src="path/to/zsh.js"></script>
You can either access it though a global variable ZSH
or via a client side
require:
var ZSH = require('zsh.js');
var FileSystem = require('zsh.js/lib/fs');
var CommandManager = require('zsh.js/lib/command-manager');
In order to display the terminal, call ZSH.create
with the target div's ID:
ZSH.create('container');
You can also include zsh.js
as a web component:
<link rel="import" href="path/to/zsh.js/zsh-terminal.html"/>
<zsh-terminal></zsh-terminal>
An example is also available
The commands, such as cd
and mv
, are written in javascript and hosted at /usr/bin
. You can ls
directory to see which commands are currently implemented, cat
a command to see its implementation, check the contents of lib/fs/usr/bin or simply run help
, which will show you all the aliases and commands available.
Some other functionalities include:
Executable files are stored inside the actual file system folder and can be viewed within the terminal.
The path is not customizable yet, so all the commands are in src/lib/fs/usr/bin/*.js
Notice that: It is still possible to add commands through the CommandManager, but they are not automatically required, but could work if you are writing a plugin (example: tadeuzagallo.com/src/js/site-helpers.js)
The most complex command so far is mv.js, check it out if you want to implement a custom command.
Terminal.js is available under MIT licence. See the LICENCE file for more info.