ctrl f Fills in a file name - similar to tab in bash or ksh
ctrl a goes to the begining of a line
ctrl e goes to the end
ctrl " runs the last command
Because of utf8 through the entire system plan9 supports man special charecters, all of which can be typed with basic keyboard shortcuts. see keyboard(6) for a partial list and summary. to get a full list cat /lib/keyboard.
Note: all these short cut reqire alt as the leader key. For example /lib/keyboard says:
00A1 !! ¡ inverted exclamation mark
So you type alt - ! - !
name space importing
You can import namespaces's of a remote system set up as a cpu service (service=cpu).
Note: in these exapmples I use the command rimport. This only works in 9front, use the import command in legacy or labs
You can read the mail of a remote system with:
; rimport [ip or url] /mail ; mail
You can mount the /srv/ directory for access to another systems running services. For example mount /srv and view the dumps of another machine.
; rimport [ip or url] /srv ; 9fs dump
you can mount /proc to manage and debug proccess on remote machines.
; rimport [ip or url] /proc ; acid [pid of remote proc] ; Kill [name of remote proc] | rc
In 9front the rexport command does the reverse, allowing you to export a local namespace to a remote cpu server.
For example, you could give a remote server access to your local network with
rexport /net [ip or url]
And then mounting the new /srv entry to /net
mycroftiv has built a wonderful set of tools for plan9 namespacing called ANTS (Advanced Namesspace ToolS). The full install reqires you to apply patches and reinstall the kernel but many of the tools only reqire a plan9/9front system.
One of these tools is hubfs.
Hubfs is a 9p server which creates buffered multiplexing pipelike files with several applications. One use is a
plan9 equivalent of programs such as screen/tmux for detach- able persistent shells. Another is as the server-side of an irc-like application. Another is as the "broadcast station" for streaming audio. It can be thought of as a lightweight "pub-sub" service with a filesystem interface. Hub invokes hubfs to create a 9p filesystem of pipe-like Hubs available as a /srv and starts an rc(1) shell with its file descrip- tors redirected to these hubs, then uses hubshell as a client for these connections. The overall usage model is somewhat similar to screen/tmux but without the additional complexities of TTY management.
Hubfs is a core component of the ants system.
One of the main tools in the ants suit is rerootwin. It allows you to change to root of a name space while preserving the /dev, /net, /srv, /mnt, /n, and /shr file systems. This allows you to use diffrent roots over a single cpu or terminal instance. Paired with hubfs you can commumicate between the roots using a shell or pipe. A simple example with the public, read only gridroot.
; gridstart -m old grid connections found in /srv, remove? (y/n) n grid services mounted ; rerootwin -f gridroot binding /mnt/wsys /mnt/term/dev ; # you have been rerooted ; service=con ; . $home/lib/profile cpu% grio # start up a graphical session