Generally speaking, GRASS is a normal user program like many others. It comes with a graphical user interface (GUI) that allows GRASS usage through the mouse. Parallel to that, GIS commands can be entered in the GRASS terminal window. Nevertheless, the program structure is somewhat different to normal user programs: after the start-up of GRASS the GRASS commands (typically called GRASS modules) are at the same level as the other UNIX commands, meaning that all UNIX commands are also available in the terminal window where GRASS has been started. This concept allows the use of the entire might of UNIX and the programming of powerful procedures while working with GRASS. Newcomers to GRASS might have to get used to this structure, but they will quickly realize its advantages.
In GRASS GIS data are stored in a directory structure. Before beginning to work with GRASS, the user has to create a "GRASS data subdirectory" (called GRASS database) and specify it later within GRASS. In this directory, GRASS organizes its data automatically through subdirectories. A new subdirectory tree is created for each new project (called "location") within the database. The organisation of the data should be left to GRASS. All file operation such as renaming or copying maps involve several internal files and should thus always be done only with GRASS commands. Manual interventions are acceptable just in exceptional situations. The GRASS graphical output, in other words the map display window, is no "normal" window but displays geographical data with coordinates. This graphical output window (called GRASS monitor) can be managed with the GRASS d.mon command. Additonally TclTkGRASS allows the configuration and management of these windows.
A few more words about GRASS terminology: as mentioned, a project area is called location in GRASS. It is defined by its geographical boundaries with information about coordinates and the map projection. Within this location, area subsections, called mapsets, can be created. Often only one mapset as large as the location is used. Multiple mapsets may be interesting for working groups. Here the "PERMANENT" mapset (reserved name) contains maps common for the group, while each team member works in his/her own mapset. The database is simply called database in GRASS.
Within the database, data is divided into raster, vector and site (point) data, allowing differential treatment: