I discovered The 15 Essential UNIX commands written almost 5 years ago by Pete Freitag.
In 2005 talking to journalists in *nix commands was a bit of a daunting. But nowadays they are more known: much more journalists and media guys run Linux servers or Macs with OS X.
First read Pete’s choice, then mine:
1. man – show manual for a command, example: man ls hit q to exit the man page.
2. cd – change directory, example: cd /etc/
3. ls – list directory, similar to dir on windows. example: ls /etc, use ls -l /etc to see more detail
4. cp – copy a file or directory, example: cp source dest if you want to copy a directory use the -R option for recursive: cp -R /source /dest
5. mv – move a file, example: mv source dest
6. rm – remove a file, example: rm somefile to remove a directory you may need the -R option, you can also use the -f option which tells it not to confirm each file: rm -Rf /dir
7. cat – concatenate, or output a file cat /var/log/messages
8. more – outputs one page of a file and pauses. example: more /var/log/messages press q to exit before getting to the bottom. You can also pipe to more | more from other commands, for example ls -l /etc | more
9. scp – secure copy, copies a file over SSH to another server. example: scp /local/file user@host.com:/path/to/save/file
10. tar – tape archiver, tar takes a bunch of files, and munges them into one .tar file, the files are often compressed with the gzip algorithm, and use the .tar.gz extension. to create a tar tar -cf archive.tar /directory, then to extract the archive to the current directory run tar -xf archive.tar to use gzip, just add a z to the options, to create a tar.gz: tar -czf archive.tar.gz /dir to extract it tar -xzf archive.tar.gz
11. grep – pattern matcher, grep takes a regular expression, or to match a simple string you can use fast grep, fgrep failure /var/log/messages, I’m usually just looking for a simple pattern so I tend to use fgrep more than regular grep.
12. find – lists files and directories recursively on a single line, I usually pipe grep into the mix when I use find, eg: find / | fgrep log
13. tail – prints the last few lines of a file, this is handy for checking log files tail /var/log/messages if you need see more lines, use the -n option, tail -n 50 /var/log/messages you can also use the -f option, which will continuously show you the end of the file as things are added to it (very handy for watching logs) tail -f /var/log/messages
14. head – same as tail, but shows the first few lines the file
15. vi – text editor, there are several text editors such as emacs, and nano, but vi is usually installed on any server so its a good one to learn. To edit a file type vi file to edit a line press Esc i then to save changes and exit use Esc wq, or to quit without saving use Esc q!. There are a million other commands, but that will enable you to edit files at a basic level.
I’m a vi guy
I use cd, ls (with some customization via .bashrc), cp, rm, scp, grep, tail — and of course vi. I’m a vi guy. Even on my MacBook, where I usually write in a registered TextMate text and code editor, sometimes it is easier to edit with vi. I use it in a very simple way, I don’t know most of its commands and functions (nobody does).
My adds:
w – displays information about the users currently on the machine, and their processes. Useful.
top – provides a dynamic real-time view of a running system. It can display system summary information as well as a list of tasks currently being managed by the Linux kernel. When you need to debug a server this command is essential.
ps – report a snapshot of the current processes. I use it with ax and some pipelines to quickly get precise info (like: ps ax | grep httpd | wc -l to see how many Apache processes are runing).
crontab – cron is a time-based job scheduler and crontab is the configuration file that specifies shell commands to run periodically on a given schedule. I run a bunch of scripts (PHP and bash, mostly) and crontab is *the* way to organize the scheduling and other aspects, like logging and mail-logging their outputs. Repetitive tasks, like pulling a RSS feed and do things with it, are performed by scripts orchestrated within crontab.

Hello, my name is Paulo Querido. I'm a portuguese journalist and writer. Did almost everything in newspapers and wrote a lot about technology and networking. I still publish on print 5 days a week, but I prefer to develop web apps and services for newsrooms ans individual journalists. I occasionally update the conversation going on about new skills that improve journalism in an environment totally full of data, as well as the effects of openness of information and governance around the world.
Pingback: Paulo Querido
Pingback: claricecopstein
Pingback: Jorge Araújo
Pingback: Paulo Querido
Pingback: Alex Artus Rocha
Pingback: uberVU - social comments
Pingback: Rede TubarãoEsquilo
Pingback: PQ Notícias
Pingback: Cesar Clemente
Pingback: PQ Notícias
Pingback: Paulo Querido