• Main Menu
  • Basic Unix Commands

    The total number of Unix commands is immense. No normal user or system administrator would ever need to know them all.

    The Unix commands available to you will vary based upon several factors:

    • The version of Unix you are using (FreeBSD, Linux, Solaris, AIX, HP-UX, OpenBSD, etc…)
    • The Unix shell you are using (sh, csh, tcsh, ksh, bash, etc…)
    • The packages installed on the system and the way the system is configured
    • Your access level on the system

    This list of basic Unix commands will get you started using and learning Unix.

    Chart of Basic Unix Commands

    Unix Command Description
    ls List directory contents
    cp Copy files
    rm Remove directory entries
    file Determine file type
    find Walk a file hierarchy
    which Locate a program file in the user’s path
    whereis Locate programs
    gcc, g++ GNU project C and C++ Compiler
    gdb The GNU Debugger
    less View the contents of a text file
    diff Find differences between two files
    cmp Compare two files
    vi Text editor
    chmod Change file modes
    man Display the on-line manual pages
    mv Move and rename files
    ispell Interactive spelling checker
    biff Be notified if mail arrives and who it is from
    lpr Print a file
    lpq Show the print queue
    ftp Transfer a file to another Unix system
    logout Quit using the system
    pwd Print working directory name
    cd Change working directory
    ln Make a file link
    mkdir Make directories
    rmdir Remove directories
    chmod Change file modes
    quota Display disk usage and limits
    history Display a list of recent commands
    ps Show the status of processes
    kill Stop a running processes
    passwd Change your password
    alias Create a command alias
    unalias Delete a command alias
    export Set an environment variable
    script Record your terminal session to a file
    bg Send a job to the background
    fg Bring a job to the foreground
    jobs Print a list of current jobs

    The basic Unix commands are fairly standard across the various Unix platforms, although command arguments differ at times. In addition, the basic Unix commands vary between Unix shells.

    Use the Unix `man` command to learn more about any of these commands.

    Basic Unix Commands in Detail


    Create the DIRECTORY(ies), if they do not already exist.




    Note: Mandatory arguments to long options are mandatory for short options too.

    -m, mode=MODE set permission mode (as in chmod), not rwxrwxrwx – umask

    -p, parents no error if existing, make parent directories as needed

    -v, verbose print a message for each created directory

    -help, display this help and exit

    -version, output version information and exit


    Create single directory

    >mkdir tmp

    Create 3 directories

    >mkdir memos letters e-mail


    Use cd to change directories. Type cd followed by the name of a directory to access that directory.Keep in mind that you are always in a directory and can navigate to directories hierarchically above or below.




    >cd /home/rich/www


    To change the name of a directory. Type mv followed by the current name of a directory and the new name of the directory.

    Usage and Example

    >mv junk precious

    This renames the filejunkas the fileprecious.


    print working directory; will show you the full path to the directory you are currently in. This is very handy to use, especially when you need to perform other directory related tasks.




    > pwd
    > cd /home/rich/www
    > pwd


    Remove an existing directory




    rm -r

    Removes directories and files within the directories recursively.


    To delete a directory named usersmith, type the following command ((from any directory except usersmith):

    >rmdir usersmith


    change file owner and group; Change the owner and/or group of each FILE to OWNER and/or GROUP. With –reference, change the owner and group of each FILE to those of RFILE



    chown [OPTION] :GROUP FILE

    chown [OPTION] –reference=RFILE FILE


    -c, changes like verbose but report only when a change is made

    -dereference affect the referent of each symbolic link, rather than the symbolic link itself

    -h, no-dereference affect each symbolic link instead of any referenced file (useful only on systems that can change the ownership of a symlink)


    change the owner and/or group of each file only if its current owner and/or group match those specified here. Either may be omitted, in which case a match is not required for the omitted attribute.

    -no-preserve-root do not treat `/’ specially (the default)

    -preserve-root fail to operate recursively on `/’

    -f, -silent, -quiet suppress most error messages

    -reference=RFILE use RFILE’s owner and group rather than the specifying OWNER:GROUP values

    -R, -recursive operate on files and directories recursively

    -v, -verbose output a diagnostic for every file processed

    The following options modify how a hierarchy is traversed when the -R option is also specified. If more than one is specified, only the final one takes effect.

    -H if a command line argument is a symbolic link to a directory, traverse it

    -L traverse every symbolic link to a directory encountered

    -P do not traverse any symbolic links (default)


    >chown hiox test.txt

    The owner of the ‘test.txt’ file is root, Change to new user hiox.


    change file access permissions


    chmod [-r] permissions filenames

    r Change the permission on files that are in the subdirectories of the directory that you are currently in.

    permission Specifies the rights that are being granted. Given below are the different rights that you can grant in an alphanumeric format.

    u – User who owns the file.

    g – Group that owns the file.

    o – Other.

    a – All.

    r – Read the file.

    w – Write or edit the file.

    x – Execute or run the file as a program.

    Numeric Permissions:

    CHMOD can also to attributed by using Numeric Permissions:

    400 read by owner

    040 read by group

    004 read by anybody (other)

    200 write by owner

    020 write by group

    002 write by anybody

    100 execute by owner

    010 execute by group

    001 execute by anybody


     >chmod u=rwx,g=rx,o=rx filename.cgi


    read, execute, and write access to the user (that’s you)

    read and execute access to the group and

    read and execute access to others

    The same can be achieved by using the command

    >chmod 775 filename.cgi


    Short listing of directory contents


    ls [OPTION]


    -a list hidden files

    -d list the name of the current directory

    -F show directories with a trailing ‘/’

    executable files with a trailing ‘*’

    -g show group ownership of file in long listing

    -i print the inode number of each file

    -l long listing giving details about files and directories

    -R list all subdirectories encountered

    -t sort by time modified instead of name


    To list the contents of the current directory:



    To copy files

    Usage and Examples

    >cp myfile yourfile

    Copy the files “myfile” to the file “yourfile” in the current working directory. This command will create the file “yourfile” if it doesn’t exist. It will normally overwrite it without warning if it exists.

    >cp -i myfile yourfile

    With the “-i” option, if the file “yourfile” exists, you will be prompted before it is overwritten.

    >cp -i /data/myfile

    Copy the file “/data/myfile” to the current working directory and name it “myfile”. Prompt before overwriting the file.

    >cp -dpr srcdir destdir

    Copy all files from the directory “srcdir” to the directory “destdir” preserving links (-doption), file attributes (-p option), and copy recursively (-r option). With these options, a directory and all it contents can be copied to another directory.


    Creates a symbolic link to a file.

    Usage and Example

    >ln -s test symlink

    Creates a symbolic link named symlink that points to the file test.

    Typing “ls -i test symlink” will show the two files are different with different inodes.

    Typing “ls -l test symlink” will show that symlink points to the file test.


    A fast database driven file locator.

    <! >

    <! >


    locate [options] name(s)


    -q – to suppress error messages

    -n – followed by an integer, this option limits the results to a specific number

    -i – performs a case-insensitive search


    >locate "*.png"

    Diplays all the files that have .png file extension.

    >locate -n 15 "*.html"

    Displays 15 results from a search for files with .html extension

    >locate -i "*.HtmL"

    Returns all files with extensions .html, .HTML or any such similar combination.

    Got Something To Say:

    Your email address will not be published. Required fields are marked *

    174 queries in 0.524 seconds.