Unix - Linux


 

Home Virus-Worms Search Contact Us Top Page 1 Top Page 1

Home
What's New
Altigen System
Cisco Adtran Cmds
Config Mail
File Format
NT Commands
VIPSupport Manuals
VIPSupport Manuals
Registry Fixes
Command Line
Error Pg Codes
Unix - Linux
Startup Applications
Hardware
MultiMedia
MSDN Index
Operations Mrg
Oracle Commands
WSH Commands
Web Design
Security
Suggestions
Support Forum

Linux Syntax
Linux commands

Unix Reference Guide

Unless you have a Unix machine sitting on your desktop, you're probably accessing it through telnet or a command-line shell. This interface may be a little intimidating to new users who are usually a tad more comfortable with a point-and-click interface. But it's really not as hard as it looks.

This reference sheet gives you the basic commands you'll need, focusing especially on file management. You can also learn how to combine commands and become a real power user.

cat
Reading and printing multiple files
ls
Listing files
cd
Changing directories, moving around
man
Using the online manual
chmod
Changing permissions on a file or directory
mkdir
Making directories
chown
Changing ownership of files and directories
more
Displaying files
cp
Copying files
mv
Moving and renaming files
date
Displaying and setting dates
passwd
Creating or changing passwords
diff
Differences between files
ps
Active processes
exit
Stopping a process and coming back home
pwd
Printing the pathname
find
Searching for files that meet specified conditions
rlogin
Logging into remote systems
finger
Gathering information about users
rm
Removing files and directories
grep
Searching for lines that match regular expressions
rmdir
Removing directories
head
Printing the beginning of a file
su
Logging in as another user
kill
Terminating processes
tail
Printing the end of a file
less
Displaying files
telnet
Communicating with other hosts
lprm
Removing printer queue requests
who
Displaying information about a system
 
Combining Commands

Most Unix commands are fairly simple and only have a handful of options. The beauty of Unix is that these commands can be combined to do more complex tasks. You can send the output of one command to another command for further processing by separating the commands with a pipe (|).

If you want to follow a file as it grows (tail -f) and search for a regular expression (grep), you can combine commands to achieve this. If you are searching for files in a growing error log that contains the word supermonkey you would type this:

 tail -f errorlog | grep ".*supermonkey.*" 

This tails the errorlog and then greps for the regular expression "supermonkey." The . and * are called meta-characters. The .* in this example matches any number of any character.

cat

cat allows you to read multiple files and then print them out. You can combine files by using the > operator and append files by using >>.

Structure: cat [argument] [specific file]

If you wanted to append three files, you'd do this:

cat silly.html monkey.html baby.html > all
cd, chdir

cd (or chdir) stands for "change directory." This command is key to moving around your file structure.

Structure: cd [name of directory you want to move to]

When changing directories, start with / and then type the complete file path, like so:

cd /webmonkey/chimp/

If you want to enter a subdirectory of the directory that you're currently in, then omit the first /. So if you wanted to stay in the chimp directory but move to the simian subdirectory, you'd type:

 cd simian/
chmod/permissions

chmod (which stands for "change mode") changes who can access a particular file. A "mode" is created by combining the various options from who, opcode, and permission.

Structure: chmod [option] mode file

If you look at a list of files using the long list format ls -l, you'll see the permissions, owner, file size, modification time, and filename. The first column of the list shows who can read, write, and execute the files or directories - in other words, the permissions. It basically shows who has permission to do what to a given file or directory. r stands for "read" and means that you're allowed to read the file or directory. w stands for "write" and gives permission to edit or change the file as well as create, move, rename, or remove a directory. x stands for "execute," which gives permission to run a file or search a directory.

Every file or directory has four sets of rwx permissions. The first set represents the user (u), the second set represents the group (g), the third set represents other (o), and the fourth set represents all (a). The column will look like this:

rwxrwxrwx

Each set of rwx represents user, group, and other respectively. Only the owner of a file or a privileged user may change the permissions on a file.

There are two ways to change permissions on a file or directory, either numerically or by using lettered commands. Both ways use the command chmod. To add permissions to a file, you use +, to remove permissions you use-. Take this file for example:

-rw-r--r-- 1 meghan monkey 476 Oct 14 17:13 simian.html

To allow a group (monkey, in this case) "write" access, you would type:

chmod g+w simian.html

If you wanted to remove "read" ability from "other" you would type:

chmod o-r simian.html

It is also possible to specify permissions using a three-digit sequence. This is a more efficient way to change permissions (or at least it requires less typing), so use this method if it doesn't confuse you. Each type of permission is given an octal value. Read is given the value of 4, write is given the value of 2, and execute is given the value of 1. These values are added together for each user category. The permissions are changed by using a three-digit sequence with the first digit representing owner permission, the second digit representing group permission, and the third digit representing other permission. For example, if you wanted to make simian.html readable, writable, and executable for the user, readable and writable for the group, and readable for other, you would type:

chmod 764 simian.html

The first digit means readable and writable for the user (4+2+1), the second digit means readable and writable for the group (4+2), and the third digit means readable for other (4).

If you want to change the permissions on a directory tree use the -R option. chmod -R will recursively change the permissions of directories and their contents.

chown

Structure: chown [option] newowner files

chown changes who owns a particular file or set of files. New owner files refer to a user ID number or login name that is usually located in the /etc/password directory. The owner of a file or directory can be seen by using the command
ls -l. Only the owner of a file or a privileged user can change the permissions on a file or directory. The following example changes the owner of silly_monkey.html to joanne:

chown joanne silly_monkey.html
cp

The cp command copies files or directories from one place to another. You can copy a set of files to another file, or copy one or more files under the same name in a directory. If the destination of the file you want to copy is an existing file, then the existing file is overwritten. If the destination is an existing directory, then the file is copied into that directory.

Structure: cp [options] file1 file2
cp [options] files directory

If you wanted to copy the file gorilla.html into the directory called apes, here's what you would do:

 cp gorilla.html /webmonkey/apes/

A handy option to use with cp is -r. This recursively copies a particular directory and all of its contents to the specified directory, so you won't have to copy one file at a time.

date

The date command can be used to display the date or to set a date.

Structure: date [option] [+format]
date [options] [string]

The first structure shows how date can be used to display the current date. A certain format can be specified in which the date should be displayed. Check the Unix manual for specific formats and options. The second structure allows you to set the date by supplying a numeric string. Only privileged users will be able to use this second command structure.

diff

diff displays the lines that differ between two given files.

Structure: diff [options] [directory options] file1 file2

diff can be an extremely valuable tool for both checking errors and building new pages. If you run a diff between two files, you'll be shown what differences the files have line by line. The lines referring to file1 are marked with the < symbol. The lines referring to file2 are marked by the > symbol. If the file is a directory, diff will list the file in the directory that has the same name as file2. If both of the files are directories, diff will list all the lines differing between all files that have the same name.

If you have a file that is not working properly, it can be a great help to check it against a similar file that is working. It will often quickly alert you to a line of code that's missing.

A handy option to use if you want to generally compare two files without noting the complex differences between them is the -h option (h stands for half-hearted). Using -i as an option will ignore differences in uppercase and lowercase characters between files, and -b will ignore repeating blanks and line breaks.

exit

The exit command allows you to terminate a process that is currently occurring. For example, if you wanted to leave a remote host that you were logged onto (see rlogin), you would type exit. This would return you to your home host.

find

find searches through directory trees beginning with each pathname and finds the files that match the specified condition(s). You must specify at least one pathname and one condition.

Structure: find pathname(s) condition(s)

A wise Unix-master friend once told me, "Never forget that in Unix find is your friend." He was right. The find command is useful for searching for particular files, directories, and patterns in your system.

There are several handy conditions you can use to find exactly what you want. The -name condition will find files whose names match a specified pattern. The structure for the name condition is:

find pathname -name pattern

The condition -print will print the matching files to the pathname specified. -print can also be used in conjunction with other conditions to print the output.

If you wanted to find all the files named favorites.html in the directory john_hughes, then you'd do this:

find /john_hughes -name favorites.html -print

This looks through the directory john_hughes and finds all the files in that directory that contain favorites.html, then prints them to the screen. Your output would look like this:

 /john_hughes/sixteen_candles/favorites.html 
/john_hughes/favorites.html 
/john_hughes/breakfast_club/favorites.html 

All meta-characters (!, *, ., etc.) used with -name should be escaped (place a \ before the character) or quoted. Meta-characters come in handy when you are searching for a pattern and only know part of the pattern or need to find several similar patterns. For example, if you are searching for a file that contains the word "favorite," then use the meta-character * to represent matching zero or more of the preceding characters. This will show you all files which contain favorite.

find /john_hughes -name '*favorite*' -print

This looks through the directory john_hughes and finds all the files in that directory that contain the word "favorite." The output would look like this:

 /john_hughes/sixteen_candles/favorites.html
/john_hughes/favorites.html
/john_hughes/least_favorites.html
/john_hughes/breakfast_club/favorites.html
/john_hughes/favorite_line.html

The -user condition finds files belonging to a particular user ID or name. For more conditions, use the online Unix manual.

If you wanted to find all the files in john_hughes that are owned by the user clarence, you would do this:

find /john_hughes -user clarence

Your output would look something like this:

/john_hughes/criminals/judd_nelson.html 
/john_hughes/geeks/anthony_michael_hall.html 

You can also use find to do recursive operations for commands that don't have recursive options. For example, if you want to grep an entire directory tree, you could use find with grep to do this. If you wanted to find all the index.html files in the john_hughes directory tree, you would type:

 find /john_hughes/ -print |xargs grep '*index.html' 

In this example, you are looking through the john_hughes directory tree for all files named index.

finger

Structure: finger [options] users

finger displays information about various users as well as information listed in the .plan and .project files in a user's home directory. You can obtain the information on a particular user by using login or last names. If you use the latter, the info on all users with that last name will be printed. Environments that are hooked up to a network recognize arguments (users) in the form of user@host or @ host.

grep

The grep command searches a file or files for lines that match a provided regular expression ("grep" comes from a command meaning to globally search for a regular expression and then print the found matches).

Structure: grep [options] regular expression [files]

To exit this command, type 0 if lines have matched, 1 if no lines match, and 2 for errors. This is very useful if you need to match things in several files. If you wanted to find out which files in our eighties directory contained the word "totally," you could use grep to search the directory and match those files with that word. At the command line you would type:

grep 'totally' /eighties/*

The * used in this example is called a meta-character, and it represents matching zero or more of the preceding characters. In this example, it is used to mean "all files and directories in this directory." So, grep will go into all the files and directories in eighties and tell you which files contain "totally." Our output will look like this:

grep:  /eighties/john_hughes: Is a directory /eighties/legwarmers.html 

This is telling us that john_hughes is a directory within eighties/ and grep will not search in those files for the phrase, but that legwarmers.html does contain the phrase "totally."

See the find command for information about using grep in conjunction with find to do recursive operations.

head

Structure: head [-n] [files]

head prints the first couple of lines of one or multiple files. -n is used to display the first n lines of a file(s). The default number of lines is 10. For example, the following will display the first 15 lines of monkey_list.html.

head -15 monkey_list.html
kill

Structure: kill [options] IDs

kill ends one or more process IDs. In order to do this you must own the process or be designated a privileged user. To find the process ID of a certain job use ps.

There are different levels of intensity to the kill command, and these can be represented either numerically or symbolically. kill -1 or HUP makes a request to the server to terminate the process, while kill -9 or kill KILL forces a process to terminate absolutely. Most polite Unix users will attempt to kill a process using -1 first before forcing a process to die.

less

Structure: less [options] [files]

less is similar to more in that it displays the contents of files on your screen. Unlike more, less allows backward and forward movement within the file. It does not read the whole file before displaying its contents, so with large files less displays faster then more. Press h for assistance with other commands or q to quit.

lprm

lprm removes printer queue requests.

Structure: lprm /usr/ucb/lprm [optons] [job#] [users]

The lprm command will remove a job or jobs from a printer's queue. If lprm is used without any arguments, it will delete the active job if it is owned by the user. If the command is used with -, then all jobs owned by the user will be removed. To remove a specific job, use the job number.

ls

If no filenames are given, ls will list files in the current directory. If one or more files are given, ls will display the files contained within "name" or list all the files with the same name as "name." The files can be displayed in a variety of formats.

Structure: ls [options] [names]

ls is a command you'll end up using all the time. It simply stands for list. If you are in a directory and you want to know what files and directories are inside that directory, type ls. Sometimes the list of files is very long and it flies past your screen so quickly you miss the file you want. A handy trick to combat this problem (besides enlarging your screen) is to type | more after the ls command, like so:

ls | more

The character | (called pipe) is typed by using shift and the \ key. | more will show as many files as will fit on your screen, and then display a highlighted "more" at the bottom. If you want to see the next screen, hit enter (for moving one line at a time) or the spacebar (to move a screen at a time). | more can be used anytime you wish to view the output of a command in this way.

A useful option to use with ls command is -l. This will list the files and directories in long format. This means it will display the permissions (see chmod), owners, group, size, date and time the file was last modified, and the filename.

webmonkey.com:[/eighties]% ls -l

drwxrwxr-x  meghan   staff  512  Oct 5 09:34 john_hughes
 -rwx-rw-r-- meghan   staff  4233 Oct 1 10:20 boy_george.html 
-rwx-r--r-- meghan   staff  4122 Oct 1 12:01 legwarmers.html 

There are several other options that can be used to modify the ls command, and many of these options can be combined. -a will list all files in a directory, including those files normally hidden. -F will flag filenames by putting / on directories, @ on symbolic links, and * on executable files.

man

The man command can be used to view information in the online Unix manual.

Structure: man [options] [[section] subjects]

man searches for information about a file, command, or directory and then displays it on your screen. Each command is a subject in the manual. If no subject is specified, you must give either a keyword or a file. You can also search for commands that serve a similar purpose. For example, if you wanted more information about the chmod command, you should type:

man chmod

A screen will then appear with information about chmod. Type q to quit.

mkdir

Structure: mkdir [options] directory name

mkdir creates a new directory. In order to do this you need permission to write to the parent directory.

more

Structure: more [options] [files]

more displays the contents of files on your screen. To have the next line displayed, hit the return key, otherwise press the spacebar to bring up the next screen. Press h for assistance with other commands, n to move to the next file, or q to quit. See also: less.

mv

mv moves files and directories. It can also be used to rename files or directories.

Structure: mv [options] sources target

If you wanted to rename ally_sheedy.html to molly_ringwald.html, you would do this:

mv ally_sheedy.html molly_ringwald.html

After typing this command, ally_sheedy.html would no longer exist, but a file called molly_ringwald.html would now exist with the same contents.

passwd

Structure: passwd [options] files

The passwd command creates or changes a user's password. Only the owner of the password or a privileged user can make these changes.

ps

Structure: ps [options]

The ps command prints information about active processes. This is especially useful if you need to end an active process using the kill command. Use ps to find out the process ID number, then use kill to end the process.

pwd

pwd prints the pathname of the current directory. If you wanted to know the path of the current directory you were in, you'd type pwd and the output would be something like:

/webmonkey/simian/sillymonkey/
rlogin

Structure: rlogin [options] host

The rlogin command, which stands for remote login, lets you connect your local host to a remote host. If you wanted to connect to the remote host gorilla and you were on webmonkey, you would do this:

rlogin gorilla password:******

You would then be at gorilla.

rm

rm removes or deletes files from a directory.

Structure: rm [options] files

In order to remove a file, you must have write permission to the directory where the file is located. When removing a file that you do not have write permission on, a prompt will come up asking you whether or not you wish to override the write protection.

The -r option is very handy and very dangerous. -r can be used to remove a directory and all its contents. If you use the -i option, you can possibly catch some disastrous mistakes because it'll ask you to confirm whether you really want to remove a file before going ahead and doing it.

rmdir

Structure: rmdir [options] directories

rmdir allows you to remove or delete directories but not their contents. A directory must be empty in order to remove it using this command. If you wish to remove a directory and all its contents, you should use rm -r.

su

Structure: su [option] [user] [shell_args]

su stands for superuser (a privileged user), and can be used to log in as another user. If no user is specified and you know the appropriate password, su can be used to log in as a superuser.

tail

Structure: tail [options] [file]

The tail command will print the last ten lines of a file. tail is often used with the option -f, which tells tail not to quit at the end of file and instead follow the file as it grows. Use ctrl-C to exit this command. This is very useful if you need to track a file - Production editors often use this command to tail their error logs. This gives them insight into exactly what an error is while it's happening so they can fix it quickly.

telnet

Structure: telnet [host [port]]

You can communicate with other computers by using the telnet protocol. The host must be a name or an Internet address. telnet has two modes: the command mode, which is indicated by the telnet > prompt, and an input mode which is usually a session where you would log on to the host system. The default mode is command mode, so if no host is given it will automatically go into this mode. If you need help while in the command mode, type ? or help.

who

Structure: who [options] [file]

The who command prints out information about the most recent status of the system. If no options are listed, then all of the usernames currently logged onto the system are displayed. The option am i will print the name of the current user. The -u option will display how long the terminal has been idle.