pf » The 15 Essential UNIX commands
The 15 Essential UNIX commands


Learning UNIX is a seemingly daunting task, there are thousands of commands out there, each with hundreds of options. But in reality you only need to know a few of them.
I use unix quite a bit, usually either on one of our Linux servers, or on my Powerbook with OS X. And these are the 15 commands that I use most. If you can memorize these 15 commands, you can do quite a bit on a unix operating system, and add unix as a skill on your resume.
The 15 Most Important UNIX commands
- man - show manual for a command, example:
man lshitqto exit the man page. - cd - change directory, example:
cd /etc/ - ls - list directory, similar to
diron windows. example:ls /etc, usels -l /etcto see more detail - cp - copy a file or directory, example:
cp source destif you want to copy a directory use the-Roption for recursive:cp -R /source /dest - mv - move a file, example:
mv source dest - rm - remove a file, example:
rm somefileto 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 - cat - concatenate, or output a file
cat /var/log/messages - more - outputs one page of a file and pauses. example:
more /var/log/messagespressqto exit before getting to the bottom. You can also pipe to more| morefrom other commands, for examplels -l /etc | more - scp - secure copy, copies a file over SSH to another server. example:
scp /local/file user@host.com:/path/to/save/file - tar - tape archiver, tar takes a bunch of files, and munges them into one
.tarfile, the files are often compressed with the gzip algorithm, and use the.tar.gzextension. to create a tartar -cf archive.tar /directory, then to extract the archive to the current directory runtar -xf archive.tarto use gzip, just add azto the options, to create a tar.gz:tar -czf archive.tar.gz /dirto extract ittar -xzf archive.tar.gz - 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. - 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 - tail - prints the last few lines of a file, this is handy for checking log files
tail /var/log/messagesif you need see more lines, use the-noption,tail -n 50 /var/log/messagesyou can also use the-foption, 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 - head - same as tail, but shows the first few lines the file
- 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 fileto edit a line pressEsc ithen to save changes and exit useEsc wq, or to quit without saving useEsc q!. There are a million other commands, but that will enable you to edit files at a basic level.
Once you learn these commands, and are comfortable with them, you shouldn't stop there, there are lots of other commands that can make your life easier.
Did I miss any commands that you think are essential to using a UNIX based operating system?
add to del.icio.us
| Tags: unix, linux, mac, osx, commands, shell, bash, vi, grep, scp
Related Entries
- Howto Backup your Mac incrementally over SSH - March 10, 2006
- Shell Script for backpack todo lists - August 20, 2005
- Unix Job processing - November 28, 2005
- Linux and OS X Shell Commands - March 7, 2005
- How many iPhone Visitors have you had? - July 19, 2007
i.e. $cat filename | less OR you can do just $less filename
less allows you to scroll up and down, more is only one way scrolling.
another good one to keep in mind is ps
i.e. $ps -A (this shows all running processes)
chown and chmod are good to know too
symbolic links are a must when creating virtual hosts on Linux, b/c the Flash forms will not work without them.
Explanation
If youre running a web server, you will probably have it configured to run virtual hosts. This may create an issue, if youve decided to use CFMX 7s Flash forms. Flash forms reference files in the {virtual host webroot}/CFIDE/scripts directory. The CFIDE directory is located in the directory you specified upon installing ColdFusion MX 7. When you create a virtual host, the CFIDE directory doesnt exist for the virtual host. Here, there are two things you DO NOT want to do.
1. DO NOT copy the CFIDE directory to your virtual host directory. When coldfusion is upgraded, changes that may occur will not be implemented in files that your virtual host may reference. Copying CFIDE will also allow access to the CF administrator from your virtual host 2. DO NOT explicitly create a symbolic link to the CFIDE directory. This will allow access to the CF Administrator from a virtual host, which should be avoided at all costs.
The best solution is to create a CFIDE directory in your virtual hosts, and then create a symbolic link to the CFIDE/scripts directory. Follow the steps below:
1. go to the directory of your virtual host 2. $mkdir ./CFIDE 3. $ln s ./CFIDE ./cfide 4. $cd ./CFIDE 5. $ln s {path to default host}/CFIDE/scripts ./scripts
Note: By default, Apache may not resolve symbolic links. If your apache installation doesnt resolve symbolic links, youll need to make the change in the apache configuration file.
Also another must know is KILL use it with TOP to get the Process ID and use that with the KILL command
For example: tail -f foo.log | grep "[ERROR]" will stream a log file, showing only lines that have "[ERROR]" in them.
grep also has the -v option, that inverts the match. So: grep -v "[ERROR]" will show you all lines that don't have "[ERROR]" in them.
Oh, and don't forget that on most linuxes, more is actually less, and vi is actually vim :D
Maybe my memory just isn't what it used to be, but having a quick way to find out where a file is often proves invaluable.
Following on Brad's comment (from 2 months ago), I update the locate database via cron job every morning @ 3am. That keeps the database current enough for my needs.
thanks and regards raja.p
- CFSCRIPT Cheatsheet
- 3 New Image Effects for ColdFusion 8
- Googlebot to Submit Web Forms
- ColdFusion 8 Update 1 Fixes some Image Processing Quirks
- 10 Most Useful Image Functions in ColdFusion 8
- Speaking at NYC CFUG This Week
- Adobe AIR Tutorial for HTML / JavaScript Developers
- INFORMATION_SCHEMA Support in MySQL, PostgreSQL
RSS
Pete Freitag is a software engineer, and web developer located in








