Home  |   Guest Book |    Technical Page |    Personal Page  |    <--Back   

About Me
Who is a Good QA
Latest News
Testing Concepts
Automation Tools
Agile Development
UNIX Basics
Perl Scripting
Python Scripting
Imp. Commands
My Resume

The following is a list of UNIX commands that you might find helpful when modifying your web sites on the server. Most UNIX commands have many options and parameters which are not listed here. For more complete information on using UNIX commands, you can refer to the online manual by typing man [command] at the UNIX prompt, where "[command]" represents the command you would like more information about. Other UNIX help commands you can type are [command] -? and [command] --help.

Note: When something is specified in brackets, such as[command] or [filename], it is used to indicate that you must input your desired information here. Do NOT include brackets in your command.

Navigating in UNIX

pwd Shows the full path of the current directory
ls Lists all the files in the current directory
ls -al Lists all files and information
ls –alR Lists all files and information in all subdirectories
ls -alR | more Same as ls –alR,pausing when screen becomes full
ls -alR > filename.txt Same as ls –alR, outputs the results to a file
ls -al /home/usr/bob/ Lists files and information for /home/usr/bob
ls *.html Lists all files ending with .html
cd [directory name] Changes to a new directory
cd .. Changes to directory above current one

Moving, Copying and Deleting Files

mv [old filename] [new filename] Move/rename a file
cp [filename] [new filename] Copies a file
rm [filename] Deletes a file
rm * Deletes all files in current directory
rm *.html Deletes all files ending in .html

Creating, Moving, Copying and Deleting Directories

mkdir [directory name] Creates a new directory
ls -d */ Lists all directories within current directory
cp -r [directory] [new directory] Copies a directory and all files/directories in it

Searching Files and Directories

find . -name [filename] -print Searches for a file starting with current directory
grep [text] [filename] Searches for text within a file

File and Directory Permissions

There are three levels of file permissions: read, write and execute.  In addition, there are three groups to which you can assign permissions: file owner, user group and everyone.  The command chmod followed by three numbers is used to change permissions.  The first number is the permission for the owner, the second for the group and the third for everyone.  Here are how the levels of permission translate:

0 = --- No permission
1 = --X Execute only
2 = -W- Write only
3 = -WX Write and execute
4 = R-- Read only
5 = R-X Read and execute
6 = RW- Read and write
7 = RWX Read, write and execute

It is preferred that the group always have permission of 0.  This prevents other users on the server from browsing files via Telnet and FTP.  Here are the most common file permissions used:

chmod 604 [filename] Minimum permissions for HTML file
chmod 705 [directory name] Minimum permissions for directories
chmod 755 [filename] Minimum permissions for scripts & programs
chmod 606 [filename] Permissions for data files used by scripts
chmod 703 [directory name] Write-only permissions for public FTP uploading

Scheduling Tasks ("Cron")

You can schedule tasks to run automatically by using the UNIX cron command. To use this, you create a text file with cron instructions, then process this file. cron instructions are basically UNIX commands with extra info about the time that they will run.

One important thing to note is that it is best to use full paths when creating your cron file. As an example, create a file called mycronfile and in it place one line:

0 1 * * * cp /usr/www/file.txt /usr/www/backup.txt

now at the command line, type the following:

crontab mycronfile

You have just scheduled an automated task! This task will run at the time specified until you decide you want to cancel it. There are six fields in this file. The first five represent the time that the job will run. The sixth field is a UNIX command that will run at the specified time. The above example will run every night at 1AM, at which time it will copy a file.

Here is how the fields break down:

Field 1  |  Field 2  |  Field 3       |  Field 4  |  Field 5
Minutes  |  Hours    |  Day of Month  |  Month    |  Day of Week
(0-59)   |  (0-23)   |  (1-31)        |  (1-12)   |  (0-6)

You can enter a number in the field, a range of numbers, or an * to indicate all. Here are a few more examples. These examples use the ls command, which would be pretty useless. Note the time that it runs, though.

0  1 * * 1-5   ls  (this would run every Monday-Friday at 1am)
0  1 * * 1,3,5 ls  (this would run every Monday, Wednesday and Friday at 1am)
10 2 1 * *     ls  (this would run at 2:10am on the first of every month)
0  1 1 1 *     ls  (this would run at 1am on January 1 every year)

If you have a more complicated command that you want to run, it is sometimes helpful to create a shell script and have that script run. You specify the shell script as you would any UNIX command. For example:

0 1 * * * /usr/www/myscript

There are some other crontab switches that are useful:

crontab -l  (lists your currently scheduled tasks)
crontab -r  (delete all currently scheduled tasks)
crontab -e  (directly edit your scheduled tasks)
Please note that excessive cron use - for instance a processor-intensive script that is run every hour - may consitute a violation of the Acceptable Use Policy. As a general rule we ask that you have cron tasks run no more than twice per 24 hour period.


Copyright © 2009 Kunal Saxena Inc. All rights reserved