- The Unix philosophy, specially the "Make each program do one thing well" [1]
- File and directory navigation/manipulation (ls, cd, mkdir, rm, rmdir, touch, cp, mv)
- ln/unlink/readlink
- find/locate
- chmod
- chown
- man/info
- su/sudo
- set/export (environment variables in general, specially PATH)
- which
- df
- history
- vi (enough to open/edit/save a file)
- cat
- head/tail
- more/less
- grep
- awk/sed/cut
- (regular expression in general)
- wc
- diff
- tr
-
-
- <<
- |
- xargs
- tee
- ping
- netstat
- ssh/scp
- ngrep
- netcat
- curl
- wget
- telnet (mostly for port testing?)
- rsync
- lsof (-i)
- ps
- uptime
- top/htop
- nohup
- kill/pkill/killall
- &
- (Ctrl + Z)
- fg/bg/jobs
- crontab
- lsof
- tar (including manipulating gzip/bzip)
- zip
[1] The Art of Unix Programming (http://www.catb.org/esr/writings/taoup/html/ch01s06.html)
- Manual pages ('man' command)
- SS64 command references: http://ss64.com/bash/
- Useful command snippets: http://commandlinefu.com
- Useful aliases: http://alias.sh
- Command Line Crash Course: http://cli.learncodethehardway.org/book/
Rather than chmod/chgrp/chown, I'd suggest they should understand how basic unix-style permissions work (and be made of things such as SELinux that can bite you on top of this).
vi is a definite, even if it's just the very basics (i, ESC, w, q).
Stream etc, I'd also suggest they should understand the philosophy of small commands + pipes = win.
htop may be of interest (nicer top). tmux/screen may also be useful.
For archiving, I'd be surprise to see most people hitting gzip (you can use -z with tar) or bzip2. Zip, definitely, thanks to [jw]ars. Tar, xzf/czf/tzf covers most options.
And don't forgot [mis]use of sudo 😄