I wouldn't recommend
top (too confusing) or
kill (too dangerous) as the starting point for beginners.
I suggest you start with the free
Terminal Basics guide by Neal Parikh (
click here to download the pdf).
To learn about most commands, you can type "man xxxx", where xxxx is the name of the command (e.g.,
man ls), to display the man page (Unix manual) for that command. The man command displays a screenful at a time. Press the space bar for the next screenful or letter 'q' (my favorite letter of the alphabet!) to quit early.
There are way too many commands to imagine learning them all by reading man pages, so you'll want to start with commonly used commands. I'd recommend these "safe" ones first, just to get your feet wet:
cal cd date echo expr file ls man printenv. Then you can start playing with files and directories with these:
cat cp cut grep head less mkdir more mv rm rmdir sort tail uniq and learn about users and processes too:
finger id ps time top users who. None of these commands are Mac OS X specific; they apply to any version of Unix (actually, I'm not sure about
top). When you are ready, you can delve into Unix editors like
emacs and
vi; for these, a beginners book would be handy.
(If somebody else at MacRumors could suggest some good commands specific to Darwin, as opposed to Unix in general, that are good to learn first, I'd appreciate it.)
For your convenience (or horror), here's the list of standard shell commands:
a2p ab ac accept accton aclocal aclocal-1.6 addftinfo addr aexml afmtodit alias alloc am-eject amd amd2ldif amd2sun amq apachectl appleping appletalk appletviewer apply apropos apxs ar arch arp as asa asr at at_cho_prn atlookup atos atprint atq atrm atstatus autoconf autodiskmount autoheader automake automake-1.6 automount automount2amd autoreconf autoscan autoupdate awk b2m badsect banner basename bash bashbug batch bc bg biff bindkey bison bless blued bootparamd bpwhoami break breaksw bridget bsdmake builtins bunzip2 bzcat bzcmp bzdiff bzegrep bzfgrep bzgrep bzip2 bzip2recover bzless bzmore c++ c++3 c++filt c++filt2 c++filt3 c2ph c_rehash cal calendar cancel cap_mkdb captoinfo case cat catman cc cd certtool chdir checkgid checknr chflags chfn chgrp chmod chown chpass chroot chsh ci cksum clear clri cmp cmpdylib co col colcrt collection/ colrm column comm compileHelp complete compress config configd continue cp cpio cpp cpp3 cron crontab cscope csh ctags ctl-amd ctl-hlfsd cups-config cupsaddsmb cupsd curl curl-config cut cvs cvs-diff-branch cvs-make-branch cvs-merge-branch cvs-revert cvs-view-diffs cvsbug date dbmmanage dc dd default defaults dev_mkdb df diff diff3 diffpp diffstat dig dirname dirs disable disktool diskutil ditto dmesg dnsquery domainname dprofpp du dump dumpfs dynamic_pager eaytest ebrowse echo echotc ed editmap edquota egrep else emacs emacs-21.1 emacsclient enable end endif endsw enscript env eqn error etags eval ex exec exit expand expn expr extcheck false fastboot fasthalt fdisk fetchmail fg fgrep file filetest find find2perl finger fix-amd-map fixPrecomps fixmount fixrmtab flex flex++ fmt fold foreach formail fpr from fs_usage fsck fsck_hfs fsck_msdos fsinfo fsplit fstat ftp ftpstuff/ g++ g++2 g++3 gatherheaderdoc gcc gcc2 gcc3 gcc_select gcov gcov3 gdb genstrings getopt glibtool glibtoolize glob gm4 gnumake gnutar goto gprof grep grep-changelog grn grodvi groff grog grolbp grolj4 grops grotty groups gunzip gzcat gzexe gzip h2ph h2xs halt hashstat hdid hdiutil head headerdoc2html heap hexdump history hlfsd host hostinfo hostname hoststat hpftodit htdigest htpasswd httpd hup hwmond id ident idlj if ifconfig ifnames indent indxbib inetd info infocmp infokey infotocap init install install-info install_name_tool installer ioalloccount ioclasscount iodbc-config ioreg iostat ip6 ip6config ipconfig ipfw irb irpd jam jar jarsigner java java-rmi.cgi javac javaconfig javadoc javah javap javatool jdb jikes jobs join jot kdestroy kdump kextcache kextload kextstat kextunload keytool kgmon kill killall kinit klist kpasswd kswitch ktrace lam last lastcomm latency ld ldapadd ldapcompare ldapdelete ldapmodify ldapmodrdn ldappasswd ldapsearch ldapwhoami leaks leave less lessecho lesskey lex lex++ libtool limit lipo lkbib ln locate lock lockfile log logger login logname logout logresolve look lookbib lookupd lorder lostaltmail lp lpadmin lpc lpinfo lpmove lpoptions lppasswd lpq lpr lprm lpstat ls ls-F lsbom lsof m4 mDNSResponder mach_init machine mail mailq mailstat mailstats make make_printerdef make_smbcodepage make_unicodemap makedbm makeinfo makemap malloc_history man manpath md md5 merge mesg mig mk-amd-map mkafmmap mkbom mkdep mkdir mkfifo mkfile mklocale mknod mkpassdb mkservdb mkslapdconf mkstr mktemp mmroff more mount mount_afp mount_cd9660 mount_cddafs mount_devfs mount_fdesc mount_ftp mount_hfs mount_msdos mount_nfs mount_smbfs mount_synthfs mount_udf mount_volfs mount_webdav mountd msgs mtree mv named named-bootconf natd native2ascii nbdst ndc ndp neqn netinfod netstat newaliases newfs newfs_hfs newfs_msdos nfsd nfsiod nfsstat nibindd nibtool nice nicl nidomain nidump nifind nigrep niload nireport niutil nm nmbd nmblookup nmedit nohup nologin notify nroff nslookup nsupdate ntp-genkeys ntp-wait ntpd ntpdate ntpdc ntpq ntptimeset ntptrace nvram ocs od odbctest onintr open opendiff openssl osacompile osalang osascript otool over package pagesize pagestuff passwd paste patch pawd pax pbcopy pbpaste pbxbuild pcscd pcsctest pcsctool pdisk pdump pear pearize periodic perl perl5.6.0 perlbug perlcc perldoc pfbtops php-config phpextdist phpize phptar pic pico ping ping6 pl pl2pm plutil pmap_dump pmap_set pmset pod2html pod2latex pod2man pod2text pod2usage podchecker podselect policytool popd portmap post-grohtml pppd pr praliases pre-grohtml printenv printf procmail projectInfo ps pstat pstruct purgestat pushd pwd pwd_mkdb pydoc python python2.2 quot quota quotacheck quotaoff quotaon racoon racoonctl ranlib rarpd rcp rcs rcs-checkin rcs2log rcsclean rcsdiff rcsmerge rcz rdump reboot redo_prebinding refer rehash reject renice repeat repquota reset restore rev revnetgroup rlog rlogin rm rmdir rmic rmid rmiregistry rmt rotatelogs route routed rpcclient rpcgen rpcinfo rrestore rs rsh rsync rtadvd rtsol rtsold ruby ruptime rwho rwhod s2p sample sc_usage sched scp screen screencapture script scselect scutil sdiff sed segedit sendmail serialver service set setenv setkey setregion settc setty sftp sh shar shift shlock showmount shutdown size slapadd slapcat slapindex slappasswd slattach sleep sliceprint slogin slp_reg slpd smbcacls smbclient smbcontrol smbd smbpasswd smb spool smbstatus smbtar smbutil snork/ soelim softwareupdate sort source splain split spray ssh ssh-add ssh-agent ssh-keygen ssh-keyscan sshd states stdethers stdhosts stop strings strip stty su sudo sum suspend sw_vers swat switch sync sysctl syslogd system_profiler tack tail talk tar tbl tclsh tclsh8.3 tcopy tcpdchk tcpdmatch tcpdump tcsh tee telltc telnet test testparm testprns texi2dvi texi2html texindex tfmtodit tftp tic tickadj tiff2icns tiffutil tim time timed timedc timutil tnameserv toe top tops touch tput tr traceroute traceroute6 troff trpt true tset tsort tty tunefs ud ul umask umount unalias uname uncomplete uncompress unexpand unhash unifdef uniq units unlimit unset unsetenv unvis unzip update update_prebinding uptime users uudecode uuencode uuidgen vacation vers_string vgrind vi view vipw vis visudo vm_stat vmmap vsdbutil w wait wait4amd wait4amd2die wall wc what whatis where whereis which while who whoami whois window wire-test write xargs xinetd xstr yacc yes ypbind ypcat ypinit.sh ypmatch yppoll yppush ypset ypwhich ypxfr zcat zcmp zdiff zdump zforce zgrep zic zip zmore znew zprint zsh zsh-4.0.4