- 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/
@dan2k3k4 Well spotted. I'll add cp/mv/which to the list. Maybe the basics about environment properties would also be useful (specially to solve common PATH issues). I'll probably leave tools that are closer to development toolchain (like git) and service-specific (like php.ini) out of this first draft until I have a good idea of where this list is going.
@aychedee (and also @dan2k3k4) You're right. I can probably expand on process control, as it's pretty common stuff. Not the most basic, but definitely useful.