# phpman > man > INTRO(1)

[INTRO(1)](https://www.chedong.com/phpMan.php/man/INTRO/1/markdown)                                 Linux User's Manual                                [INTRO(1)](https://www.chedong.com/phpMan.php/man/INTRO/1/markdown)



## NAME
       intro - introduction to user commands

## DESCRIPTION
       Section  1  of  the  manual describes user commands and tools, for example, file manipulation
       tools, shells, compilers, web browsers, file and image viewers and editors, and so on.

## NOTES
       Linux is a flavor of UNIX, and as a first approximation all user  commands  under  UNIX  work
       precisely the same under Linux (and FreeBSD and lots of other UNIX-like systems).

       Under  Linux,  there  are GUIs (graphical user interfaces), where you can point and click and
       drag, and hopefully get work done without first reading lots of  documentation.   The  tradi‐
       tional  UNIX  environment  is a CLI (command line interface), where you type commands to tell
       the computer what to do.  That is faster and more powerful, but requires finding out what the
       commands are.  Below a bare minimum, to get started.

### Login
       In  order to start working, you probably first have to open a session by giving your username
       and password.  The program [**login**(1)](https://www.chedong.com/phpMan.php/man/login/1/markdown) now starts a _shell_ (command  interpreter)  for  you.   In
       case  of a graphical login, you get a screen with menus or icons and a mouse click will start
       a shell in a window.  See also [**xterm**(1)](https://www.chedong.com/phpMan.php/man/xterm/1/markdown).

### The shell
       One types commands to the _shell_, the command interpreter.  It is not built-in, but is just  a
       program  and  you can change your shell.  Everybody has their own favorite one.  The standard
       one is called _sh_.  See also [**ash**(1)](https://www.chedong.com/phpMan.php/man/ash/1/markdown), [**bash**(1)](https://www.chedong.com/phpMan.php/man/bash/1/markdown), [**chsh**(1)](https://www.chedong.com/phpMan.php/man/chsh/1/markdown), [**csh**(1)](https://www.chedong.com/phpMan.php/man/csh/1/markdown), [**dash**(1)](https://www.chedong.com/phpMan.php/man/dash/1/markdown), [**ksh**(1)](https://www.chedong.com/phpMan.php/man/ksh/1/markdown), [**zsh**(1)](https://www.chedong.com/phpMan.php/man/zsh/1/markdown).

       A session might go like:

           knuth login: **aeb**
           Password: ************
           $ **date**
           Tue Aug  6 23:50:44 CEST 2002
           $ **cal**
                August 2002
           Su Mo Tu We Th Fr Sa
                        1  2  3
            4  5  6  7  8  9 10
           11 12 13 14 15 16 17
           18 19 20 21 22 23 24
           25 26 27 28 29 30 31

           $ **ls**
           bin  tel
           $ **ls** **-l**
           total 2
           drwxrwxr-x   2 aeb       1024 Aug  6 23:51 bin
           -rw-rw-r--   1 aeb         37 Aug  6 23:52 tel
           $ **cat** **tel**
           maja    0501-1136285
           peter   0136-7399214
           $ **cp** **tel** **tel2**
           $ **ls** **-l**
           total 3
           drwxr-xr-x   2 aeb       1024 Aug  6 23:51 bin
           -rw-r--r--   1 aeb         37 Aug  6 23:52 tel
           -rw-r--r--   1 aeb         37 Aug  6 23:53 tel2
           $ **mv** **tel** **tel1**
           $ **ls** **-l**
           total 3
           drwxr-xr-x   2 aeb       1024 Aug  6 23:51 bin
           -rw-r--r--   1 aeb         37 Aug  6 23:52 tel1
           -rw-r--r--   1 aeb         37 Aug  6 23:53 tel2
           $ **diff** **tel1** **tel2**
           $ **rm** **tel1**
           $ **grep** **maja** **tel2**
           maja    0501-1136285
           $

       Here typing Control-D ended the session.

       The **$** here was the command prompt—it is the shell's way of indicating that it  is  ready  for
       the  next command.  The prompt can be customized in lots of ways, and one might include stuff
       like username, machine name, current directory, time, and so  on.   An  assignment  PS1="What
       next, master? " would change the prompt as indicated.

       We  see that there are commands _date_ (that gives date and time), and _cal_ (that gives a calen‐
       dar).

       The command _ls_ lists the contents of the current directory—it tells you what files you  have.
       With  a  _-l_  option it gives a long listing, that includes the owner and size and date of the
       file, and the permissions people have for reading and/or changing the file.  For example, the
       file  "tel"  here  is 37 bytes long, owned by aeb and the owner can read and write it, others
       can only read it.  Owner and permissions can be changed by the commands _chown_ and _chmod_.

       The command _cat_ will show the contents of a file.  (The name is from "concatenate and print":
       all files given as parameters are concatenated and sent to "standard output" (see [**stdout**(3)](https://www.chedong.com/phpMan.php/man/stdout/3/markdown)),
       here the terminal screen.)

       The command _cp_ (from "copy") will copy a file.

       The command _mv_ (from "move"), on the other hand, only renames it.

       The command _diff_ lists the differences between two files.  Here there was no  output  because
       there were no differences.

       The  command  _rm_ (from "remove") deletes the file, and be careful! it is gone.  No wastepaper
       basket or anything.  Deleted means lost.

       The command _grep_ (from "g/re/p") finds occurrences of a string in one or more files.  Here it
       finds Maja's telephone number.

### Pathnames and the current directory
       Files live in a large tree, the file hierarchy.  Each has a _pathname_ describing the path from
       the root of the tree (which is called _/_) to the file.  For  example,  such  a  full  pathname
       might be _/home/aeb/tel_.  Always using full pathnames would be inconvenient, and the name of a
       file in the current directory may be abbreviated by giving only the last component.  That  is
       why _/home/aeb/tel_ can be abbreviated to _tel_ when the current directory is _/home/aeb_.

       The command _pwd_ prints the current directory.

       The command _cd_ changes the current directory.

       Try alternatively _cd_ and _pwd_ commands and explore _cd_ usage: "cd", "cd .", "cd ..", "cd /" and
       "cd ~".

### Directories
       The command _mkdir_ makes a new directory.

       The command _rmdir_ removes a directory if it is empty, and complains otherwise.

       The command _find_ (with a rather baroque syntax) will find files  with  given  name  or  other
       properties.   For example, "find . -name tel" would find the file _tel_ starting in the present
       directory (which is called _._).  And "find / -name tel" would do the same, but starting at the
       root  of  the  tree.  Large searches on a multi-GB disk will be time-consuming, and it may be
       better to use [**locate**(1)](https://www.chedong.com/phpMan.php/man/locate/1/markdown).

### Disks and filesystems
       The command _mount_ will attach the filesystem found on some disk (or floppy, or CDROM  or  so)
       to the big filesystem hierarchy.  And _umount_ detaches it again.  The command _df_ will tell you
       how much of your disk is still free.

### Processes
       On a UNIX system many user and system processes run simultaneously.  The one you are  talking
       to  runs in the _foreground_, the others in the _background_.  The command _ps_ will show you which
       processes are active and what numbers these processes have.  The command _kill_ allows  you  to
       get  rid  of them.  Without option this is a friendly request: please go away.  And "kill -9"
       followed by the number of the process is an immediate kill.  Foreground processes  can  often
       be killed by typing Control-C.

### Getting information
       There  are  thousands  of commands, each with many options.  Traditionally commands are docu‐
       mented on _man_ _pages_, (like this one), so that the command "man kill" will document the use of
       the  command  "kill"  (and  "man man" document the command "man").  The program _man_ sends the
       text through some _pager_, usually _less_.  Hit the space bar to get the  next  page,  hit  q  to
       quit.

       In documentation it is customary to refer to man pages by giving the name and section number,
       as in [**man**(1)](https://www.chedong.com/phpMan.php/man/man/1/markdown).  Man pages are terse, and allow you to find quickly some forgotten detail.  For
       newcomers an introductory text with more examples and explanations is useful.

       A  lot of GNU/FSF software is provided with info files.  Type "info info" for an introduction
       on the use of the program _info_.

       Special topics are often treated in  HOWTOs.   Look  in  _/usr/share/doc/howto/en_  and  use  a
       browser if you find HTML files there.

## SEE ALSO
       [**ash**(1)](https://www.chedong.com/phpMan.php/man/ash/1/markdown),  [**bash**(1)](https://www.chedong.com/phpMan.php/man/bash/1/markdown),  [**chsh**(1)](https://www.chedong.com/phpMan.php/man/chsh/1/markdown),  [**csh**(1)](https://www.chedong.com/phpMan.php/man/csh/1/markdown),  [**dash**(1)](https://www.chedong.com/phpMan.php/man/dash/1/markdown), [**ksh**(1)](https://www.chedong.com/phpMan.php/man/ksh/1/markdown), [**locate**(1)](https://www.chedong.com/phpMan.php/man/locate/1/markdown), [**login**(1)](https://www.chedong.com/phpMan.php/man/login/1/markdown), [**man**(1)](https://www.chedong.com/phpMan.php/man/man/1/markdown), [**xterm**(1)](https://www.chedong.com/phpMan.php/man/xterm/1/markdown),
       [**zsh**(1)](https://www.chedong.com/phpMan.php/man/zsh/1/markdown), [**wait**(2)](https://www.chedong.com/phpMan.php/man/wait/2/markdown), [**stdout**(3)](https://www.chedong.com/phpMan.php/man/stdout/3/markdown), [**man-pages**(7)](https://www.chedong.com/phpMan.php/man/man-pages/7/markdown), [**standards**(7)](https://www.chedong.com/phpMan.php/man/standards/7/markdown)

## COLOPHON
       This page is part of release 5.10 of the Linux  _man-pages_  project.   A  description  of  the
       project,  information about reporting bugs, and the latest version of this page, can be found
       at <https://www.kernel.org/doc/man-pages/>.



Linux                                        2020-08-13                                     [INTRO(1)](https://www.chedong.com/phpMan.php/man/INTRO/1/markdown)
