The command set of Plan 9 is similar to that of UNIX. The commands fall into several broad classes.
Some are new programs for old jobs: programs like
and
=> who(1)
have familiar names and functions but are new, simpler implementations. Who, for example, is a shell script, while ps is just 163 lines of C code.
Some commands are essentially the same as their UNIX ancestors:
and others have been converted to ANSI C and extended to handle Unicode, but are still the familiar tools.
Some are entirely new programs for old niches:
text editors
=> acme(1)
and
=> sam(1)
debuggers
=> acid(1)
and
=> db(1)
and others displace the better-known UNIX tools with similar jobs.
Compatibility was not a requirement for the system. Where the old commands or notation seemed good enough, we kept them. When they didn't, we replaced them.
The following list of some UNIX commands, files, and shell terminology, which you can emulate in a Plan 9 system:
UNIX Plan 9 from Bell Labs
.profile $home/lib/profile
^C (Ctrl+C) DEL key -- doesn't work without rio(4) though.
~ $home
/usr/$user/
~username /usr/username
"$@" $*
1>&2 >[2=1]
apropos lookman(1)
at specific-time while (! ~ (`{ date }) (specific-time)); commands
cc one of ones in 0c(1) followed by the same of 0l(1)
pcc(1) for Standard C/POSIX programs
cp -r /foo/ /bar/ mkdir /bar/foo/ && dircp /foo/ /bar/foo/
crontab -e sam /cron/$user/cron
curl http://foo/bar
wget http://foo/bar hget http://foo/bar > bar
(progress bar, -t for ascii) hget -v -o bar http://foo/bar |[2] aux/statusbar [-t] 'downloading'
cut awk -F ...
apt-get dist-upgrade
rpm -Ua
yum -c update /usr/glenda/bin/rc/pull
apt-get install
rpm -i package
yum -c install package 9fs sources ; cd /n/sources/
/n/sources/contrib/fgb/root/rc/bin/contrib/install fgb/contrib ; contrib/install $who/$what
df disk/kfscmd check
echo fsys all df | con -l /srv/fscons
df in fossilcons(8)
ee
emacs
jim
joe
nano
pico
vi
xedit sam
acme
expr hoc -e
find du -a | grep pattern
grep pattern `{du -a root}
-name du -a root | grep name
pattern in a file grep -n pattern `{du -a root | awk '{print $2}'}
-exec cp '{}' x ';' cp `{ du -a | grep pattern } x
fsck echo fsys all check fix | con -l /srv/fscons
if running venti, for a thorough fix: echo fsys all check fix venti snapshot | con -l /srv/fscons
ftp ftpfs host.domain (Remote files apear in /n/ftp).
ftpd aux/listen ftp
getopt getflags(8)
groff -l troff | lp
grops dpost - see troff(1)
head sed 10q
hwclock cat '#r/rtc'
aux/timesync
id echo $user
cat /dev/user
grep `{cat /dev/user} /adm/users
grep $user /adm/users
iostat iostats(4)
ifconfig(IP address) cat /net/ndb
ifconfig ip/ipconfig ether /net/ether0 add 192.168.1.32
ip/ipconfig # let dhcp do it
kill pid stop processname | rc
echo stop > /proc/pid/ctl
(in both cases, switch stop with start to get it back)
kill -9 pid
kill -KILL pid slay processname | rc
echo kill > /proc/pid/ctl
ld one of the ones in 0l(1)
ls lc -F
lspci pci -v
make mk (not exactly the same)
if necessary, use make in ape/psh
man -k lookman(1)
less
more p
mount [-p flag] bind(1)
unmount(1)
9fs(1)
srv(1)
import(4)
exportfs(4)
-p ns(1)
mount /dev/fd0 /mnt a: ; cd /n/a:
mount /dev/acd0 /mnt 9660srv
mkdir /n/9660
mount /srv/9660 /n/9660 /dev/sdD0/data
netcat -l aux/listen1 -t tcp!*!$port command
netstat [-r flag] netstat(1)
-r cat /net/iproute
nfsstat iostats(4)
nslookup ndb/dnsquery
passwd auth/changeuser username (first time)
passwd (subsequent times)
paste [FILE] ... pr -m [FILE] ...
PATH=$PATH:... bind -a directory /bin
ping ip/ping
pkginfo wrap(8)
reboot fshalt -r (note that there is a reboot command, but it doesn't call fshalt)
rmdir rm(1)
With contents inside: rm -r dir
sh rc(1)
if necessary, ape/psh
shutdown fshalt(8)
echo reboot > /dev/reboot
echo panic > /dev/reboot
snoop snoopy(8)
source .
startx
launch (Andrew Project)
mux (Blit's wm) rio (replaces 8½ and help)
tar xzf file.tgz tar xf file.tgz
tcpdump snoopy(8)
traceroute ip/traceroute
tree du $* | awk '{print $2}' | sort | sed 's/[^/]+// /g'
ufs{dump|restore} yesterday(1)
history(1)
fs(4)
vigr
vipw [Adding a new user]
vlock http://mirtchovski.com/lanlp9/rlock
(specify password at invocation)
vmstat stats(1)
cat /dev/sysstat
cat /dev/swap
which whatis
xbiff faces
xclock clock
games/catclock
faces
xditview troff | page
troff | proof
xload stats -l
xlock /n/sources/contrib/steve/conslock
(authenticates against authentication server)
xlogo window 'hget http://plan9.bell-labs.com/plan9/img/plan9bunnysmblack.jpg | page'
xman cat man -t cat | page
xv file.jpg page file.jpg
xwininfo winwatch
yes while() { echo y }
yes arg while() { echo arg }
text/gemini
This content has been proxied by September (ba2dc).