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 < b>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 |
Unix and File/Directory Names
Unix can be picky about file and directory names. Spaces in particular are a problem - Unix simply does not like spaces in names. You can either (1) remove the space - for example, change file name My Best Pictures.html to MyBestPictures.html or My_Best_Pictures.html; or (2) put single quotes around the entire folder or file name, such as 'My Best Pictures.html'. This allows Unix to see it as a contiguous file or folder name, and should allow you to rename, delete, copy or do whatever you need to the item.
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.
Please note that excessive cron use - for instance a processor-intensive script that is run every hour - will likely constitute 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.
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 some more examples. NOTE: you must use a two-digit placeholder for
single digit numbers - i.e. for "1", use "01".
00 01 * * 1-5 (this would run every Monday-Friday at 1am)
00 01 * * 1,3,5 (this would run every Monday, Wednesday and Friday at 1am)
10 02 01 * * (this would run at 2:10am on the first of every month)
00 01 01 01 * (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)
|