2015-11-18 02:38:47 +03:00
|
|
|
---
|
|
|
|
next: true
|
2015-11-20 00:45:26 +03:00
|
|
|
sort: 3
|
|
|
|
title: Basic Operation
|
2015-11-18 02:38:47 +03:00
|
|
|
---
|
|
|
|
|
2015-11-20 00:45:26 +03:00
|
|
|
# Basic Operation
|
2015-11-18 02:38:47 +03:00
|
|
|
|
|
|
|
Once urbit is installed, if you have an invitation, it's a planet
|
|
|
|
like `~fintud-macrep` and a ticket like
|
|
|
|
`~fortyv-tombyt-tabsen-sonres`. Run
|
|
|
|
|
|
|
|
bin/urbit -w fintud-macrep -t fortyv-tombyt-tabsen-sonres
|
|
|
|
|
|
|
|
(You can leave the `~` on, but it annoys some Unix shells.)
|
|
|
|
|
|
|
|
If you don't have an invitation, pick a nickname for your comet,
|
|
|
|
like `mycomet`. Urbit will randomly generate a 128-bit plot:
|
|
|
|
|
|
|
|
bin/urbit -c mycomet
|
|
|
|
|
|
|
|
Either way, creating your urbit will take some time. Some of
|
2015-11-19 05:16:11 +03:00
|
|
|
this time involves generating keys; some of it involves
|
|
|
|
downloading code over Urbit itself.
|
2015-11-18 02:38:47 +03:00
|
|
|
|
|
|
|
If you turn off your pier at any time (either "nicely" with `^D`
|
|
|
|
from talk or the dojo or by power-failure, oom-killer, or other
|
|
|
|
calamity), then you can start it up again with the path to your
|
|
|
|
pier directory (your planet name if you have an invitation,
|
|
|
|
otherwise the name you chose after `-c`):
|
|
|
|
|
|
|
|
bin/urbit fintud-macrep
|
|
|
|
|
|
|
|
or
|
|
|
|
|
|
|
|
bin/urbit mycomet
|
|
|
|
|
|
|
|
## Basic operation
|
|
|
|
|
|
|
|
Out of the box, your urbit is running two default appliances,
|
|
|
|
`:dojo` (a shell or REPL) and `:talk`. Switch between them with
|
|
|
|
`^X`. Note that all apps share an output log, but `^X` switches
|
|
|
|
the prompt.
|
|
|
|
|
|
|
|
`^D` from either default appliance exits the urbit process.
|
|
|
|
|
|
|
|
If your plot is `~fintud-macrep`, the dojo prompt is
|
|
|
|
|
|
|
|
~fintud-macrep:dojo>
|
|
|
|
|
|
|
|
Type any Hoon expression at the command line and see the result:
|
|
|
|
|
|
|
|
~fintud-macrep:dojo> (add 2 2)
|
|
|
|
|
|
|
|
You'll see:
|
|
|
|
|
|
|
|
> (add 2 2)
|
|
|
|
4
|
|
|
|
~fintud-macrep:dojo>
|
|
|
|
|
2015-11-19 05:16:11 +03:00
|
|
|
While there are some tools for interacting with urbit's
|
|
|
|
filesystem direclty, often it's useful to edit urbit files from
|
|
|
|
Unix. Use `|mount` to set up a Dropbox-style sync directory in
|
|
|
|
your pier directory:
|
|
|
|
|
|
|
|
~fintud-macrep:dojo> |mount %
|
2015-11-18 02:38:47 +03:00
|
|
|
>=
|
2015-11-19 05:16:11 +03:00
|
|
|
~fintud-macrep:dojo> |unmount %
|
2015-11-18 02:38:47 +03:00
|
|
|
>=
|
|
|
|
|
|
|
|
Look inside your pier directory to find your files, and edit them
|
|
|
|
with your favorite Unix text editor.
|
|
|
|
|
|
|
|
Sometimes you want to get files from another urbit. There's two
|
|
|
|
main commands to do this.
|
|
|
|
|
2015-11-19 05:16:11 +03:00
|
|
|
~fintud-macrep:dojo> |merge %examples ~wactex-ribmex %examples
|
2015-11-18 02:38:47 +03:00
|
|
|
>=
|
|
|
|
; ~wactex-ribmex is your neighbor
|
|
|
|
; ~wactex-ribmex is your neighbor
|
|
|
|
[time passes...]
|
|
|
|
merged with strategy %init
|
|
|
|
|
|
|
|
This pulls a bunch of examples from `~wactex-ribmex`'s `%examples`
|
2015-11-19 05:16:11 +03:00
|
|
|
desk and puts them in our `%examples` desk. A desk is a
|
2015-11-18 02:38:47 +03:00
|
|
|
branch (in the git branch sense) of our filesystem.
|
|
|
|
|
|
|
|
You can, of course, merge the examples into your `%home`
|
|
|
|
(default) desk if you wish. Merging into a new desk creates it,
|
|
|
|
while merging into an existing desk does an intelligent git-style
|
|
|
|
merge, with conflict resolution and stuff.
|
|
|
|
|
2015-11-19 05:16:11 +03:00
|
|
|
~fintud-macrep:dojo> |sync %examples ~wactex-ribmex %examples
|
2015-11-18 02:38:47 +03:00
|
|
|
>=
|
2015-11-19 05:16:11 +03:00
|
|
|
activated sync from %examples on ~wactex-ribmex to %examples
|
|
|
|
sync succeeded from %examples on ~wactex-ribmex to %examples
|
|
|
|
~fintud-macrep:dojo> |unsync %examples ~wactex-ribmex %examples
|
|
|
|
ended autosync from %examples on ~wactex-ribmex to %examples
|
2015-11-18 02:38:47 +03:00
|
|
|
|
|
|
|
`|sync` does an initial `|merge`, then listens for changes on the
|
|
|
|
foreign desk and runs `|merge` automatically whenever it changes.
|
|
|
|
By default your `%home` desk is synced to your parent's `%kids`
|
|
|
|
desk, so the entire network is upgraded at once. You may, of
|
|
|
|
course, unsync it, but this voids your warranty.
|
|
|
|
|
|
|
|
You can change which desk is your current working directory with:
|
|
|
|
|
2015-11-19 05:16:11 +03:00
|
|
|
~fintud-macrep:dojo> =dir /=examples
|
|
|
|
|
|
|
|
> `dir` is a special dojo variable, but you can also create your
|
|
|
|
> own variables with the same syntax. `=my-var (add 2 3)` allows
|
|
|
|
> you to use `my-var` for `5` anywhere later on.
|
2015-11-18 02:38:47 +03:00
|
|
|
|
2015-11-19 05:16:11 +03:00
|
|
|
When you change your desk all commands will use the files from
|
|
|
|
that desk. Unfortunately, changing your working directory to
|
|
|
|
anywhere but the top directory is currently
|
|
|
|
[broken](http://github.com/urbit/urbit/issues/565). If this is
|
|
|
|
fixed when you're reading this, please submit a pull request for
|
|
|
|
this document explaining how to do it!
|
2015-11-18 02:38:47 +03:00
|
|
|
|
|
|
|
The last command we'll discuss in this quickstart is `+moon`,
|
|
|
|
which only works on planets.
|
|
|
|
|
2015-11-19 05:16:11 +03:00
|
|
|
~fintud-macrep:dojo> +moon
|
2015-11-18 02:38:47 +03:00
|
|
|
"moon: ~ramnec-rossug-fintud-macrep; ticket: ~holtyl-mognyl-dostyp-moslud"
|
|
|
|
|
|
|
|
This generates a random moon and ticket. A moon is a subidentity
|
|
|
|
of your planet, so it's a separate urbit that's associated with
|
|
|
|
your planet. If your planet is off, then your moon won't
|
|
|
|
function very well over the network (it'll work just fine
|
|
|
|
locally, of coures).
|
|
|
|
|
|
|
|
You can start up your moon with `bin/urbit -w moon-name -t
|
|
|
|
ticket`. We recommend doing this for development because there
|
|
|
|
are still some instabilities that have the potential to explode
|
|
|
|
your planet if you develop on it. If this happens, then your
|
|
|
|
planet will be unusable until the next continuity breach. If you
|
|
|
|
tell us how you exploded your planet, we may give you a
|
|
|
|
replacement, but it's still a hassle for you.
|
|
|
|
|
|
|
|
Don't worry too much about exploding your moons -- you have four
|
|
|
|
billion of them, and they get replenished after every continuity
|
|
|
|
breach. Still do file a bug, though.
|