SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
IBM System Programming Training
                                                                Module 2 - Linux Basics

                  Unit 1 – Introduction to Linux
                                                                                Effects of the License Model
A Short History of Linux
                                                                                • Everybody has access to the source
                                                                                   Volunteer software development on the Internet, with central
• 1984: Richard Stallman starts GNU project                                          coordination
    GNU's Not UNIX                                                                Linus Torvalds coordinates kernel development
    http://www.gnu.org                                                            Others coordinate other pieces of the OS
•    Purpose: Free UNIX                                                         • Peer reviews possible
    "Free as in Free Speech, not Free Beer"                                       Security
                                                                                   Performance
• First step: re-implementation of UNIX Utilities
  C compiler, C library                                                        • License cannot change
  emacs                                                                           So your changes (and name) will stay in forever
  bash

• To fund the GNU project, the Free Software Foundation is founded              Linux has become a Way of Life
    http://www.fsf.org
                                                                                • Culture
• 1991: Linus Torvalds writes 1 version of Linux kernel
                                 st

   Initially a research project about the 386 protected mode                   • Celebrities
       Linus' UNIX -> Linux                                                       Linus Torvalds
       Combined with the GNU and                                                  Richard Stallman
       other tools forms a complete                                               Eric Raymond
       UNIX system
                                                                                • Humor
• 1992: First distributions emerge                                                 User-friendly
                                                                                   Segfault
     Linux kernel
     GNU and other tools
     Installation procedure                                                    • Mascot
                                                                                   Tux

What's So Special About Linux?
                                                                                Linux Today
• Most software (including the Linux kernel) is GPL'ed (GNU General             • Linux covers the whole spectrum of computing
    Public License)                                                                Embedded devices
     http://www.gnu.org/copyleft/gpl.html                                         Laptops
                                                                                   Desktop systems
• Is called "copyleft" (instead of "copyright")                                    Development systems
   You may copy the software                                                      Small and large servers
   You get the source code                                                        Megaclusters/supercomputers
   You may alter the source code and recompile it
   You may distribute the altered source and binaries
   You may charge money for all this                                           • Linux is used throughout the world and in space

• You only may not change the license                                           • Linux is used by home users and by some of the largest companies
   So all your customers have the same rights as you                              in the world
   So you really cannot make money from selling the software alone                 IBM
                                                                                    Boeing
• Other Open Source licenses (e.g. BSD) are also used                               NASA



                                                                                                                                    1
Unit 2 - Installing Linux
                                                                    Partitioning Tools
Preparing a System for Installation
                                                                    • PartitionMagic
                                                                       Commercial program from PowerQuest
• Know your hardware                                                   Runs under MS-DOS and Windows
   CPU, memory, keyboard, mouse                                       Can create/resize/move/delete partitions
   Hard disks, CD-ROM players
   Graphical adapters, monitor capabilities                        • GNU parted
   Network adapters, IP addresses                                     Can create/resize/move/delete partitions
   Printers                                                           QTParted is a graphical frontend for parted
• Is all your hardware supported?                                   • fdisk
   Linux Hardware-HOWTO                                               Virtually every PC OS (Windows, OS/2, Linux) comeswith a tool
   Distributors Hardware Compatibility List                              "fdisk" to create partitions for that OS
   Hardware manufacturer
   If unsure, just try it!                                         • Disk Druid, YaST and others
                                                                       Partitioning programs integrated in install program
• Make space for Linux partitions

                                                                    Installing Linux
Know your Hardware
                                                                    • Boot system from bootable media
• Obtain information from                                              All modern PCs can boot from CD-ROM directly
   Manuals                                                              o Must be enabled in BIOS
   Windows Control Panel                                              Otherwise boot from floppy

                                                                    • Some distributions require additional disks
                                                                       All disk images are usually stored on the CD-ROM

                                                                    • After booting, install from:
                                                                       Local CD-ROM/DVD
                                                                       Local Hard Disk
                                                                       Network


                                                                    Installation Steps

                                                                    • All installation programs need to perform essentially the same steps:
                                                                       1. Choose language, keyboard type, mouse type
Partitioning Theory                                                    2. Create partitions
                                                                       3. Set up a boot loader
                                                                       4. Configure network
•   Partitioning is necessary on Intel-based computers
                                                                       5. Configure users and authentication
•   Maximum of four primary partitions                                 6. Select package groups
•   One primary partition may be an extended partition                 7. Configure X
•   An extended partition can hold an unlimited amount of logical      8. Install Packages
    partitions (but the OS may pose a limit anyway)                    9. Create Boot Disk

                                                                    • Order of steps may vary from distribution to distribution

                                                                    • Other steps may also be included
                                                                       e.g. firewall, printers, sound


                                                                                                                         2
• Common Boot Loaders:
                                                                                LILO: Linux Loader – text-based installation
Select Language, Keyboard, Mouse                                                GRUB: GRand Unified Boot loader – GUI installation
• Select the language to be used during installation process                 Configure Network
     Different distributions support different languages
                                                                             • Most distributions configure your network adapter as part of the
• Select the keyboard layout                                                    installation process
   Different countries use different keyboard layouts                           Ethernet
   Dead (compose) keys allow you to input accented or special                   Token Ring
      characters such as é, ç, ß and so forth.
                                                                             • Need the following information:
• Select your mouse                                                             IP address
   A mouse can be connected using a PS/2, USB or serial                        Subnet mask
      connector                                                                 Network address
   If your mouse has only 2 buttons, you can emulate the third                 Broadcast address
      (middle) button by clicking both buttons simultaneously                   Hostname
                                                                                Default router/gateway
                                                                                DNS server addresses
Install Class
                                                                             • May also be configured to use DHCP
• Most distributions have default installation "classes" for typical users
     Workstation
     Laptop                                                                 Configure Root and User Accounts
     Server
                                                                             • root is the superuser of the system
• A "custom" class allows you to make all decisions yourself                     Can do anything
     Packages to be installed                                                   Needs a strong password
     Various configuration options                                              Do not use your system as root unless you need to!

                                                                             • Most distributions allow you to add user accounts during installation
Disk Partitioning                                                               too:

• Linux installation requires you to create Linux partitions                 • Create a user account for every individual user that is going to use
• At a minimum, create: / (root) – 750MB; /swap – 64 – 256MB                    the system
• Recommended: /boot – 16MB
                                                                             Hint: You should enable shadow passwords and MD5 encryption if
• May need/want to create other partitions: /usr, /usr/local, /var, /tmp,    available for additional security.
  /opt, and /home

                                                                             Select Package Groups
Configure a Boot Loader
                                                                             • Most distributions have grouped individual packages in package
• Boot Loader loads and starts the Linux kernel                                groups
   Can boot other operating systems as well OS/2, Windows, BeOS,
     Give each OS a unique label!
                                                                             • Only select the package groups you need on your workstation
                                                                             • Selecting individual software packages is usually still possible but
• Can be password protected                                                    tedious
   Prevents users from passing boot parameters to Linux or booting             A typical distribution has over 1000 packages...
     any OS
                                                                             Configure X
• Should generally be configured in the MBR, unless another boot
    loader is used


                                                                                                                                  3
• X (X Window System) is the graphical user interface of Linux               Post-install Configuration
• Needs to be configured for your system
   Graphical adapter                                                        • After installation has finished, your system will reboot to activate the
   Monitor                                                                      newly installed kernel
                                                                                  SUSE will perform the reboot during installation
• Most adapters and monitors can be auto detected
   If not auto detected, select manually or use a "Generic" adapter         • For almost all Linux distributions, this is the only reboot that is ever
       or monitor                                                                required

• Usually customization allowed:                                             • After reboot, some post-installation configuration may happen
   Resolution                                                                      Configure graphics
   Refresh rate                                                                    Configure sound card
   Color Depth                                                                     Install documentation, updates, drivers
                                                                                    Create user accounts
• Test settings if possible                                                         Registration
   If nothing works, skip X configuration
                                                                                                  Unit 3 - Using the System
Other (Optional) Installation Screens                                        Linux is Multi-user and Multitasking

• Some distributions offer additional installation screens:
                                                                             • Linux is a multi-user, multitasking operating system
   Printer configuration
   Firewall configuration                                                      Multiple users can run multiple tasks simultaneously,
   Sound card configuration                                                         independent of each other
   Modem configuration
   Time Zone configuration                                                  • Always need to "log in" before using the system
                                                                                Identify yourself with username and password
• Usually straightforward
                                                                             • Multiple ways to log in to the system
                                                                                Console: Directly attached keyboard, mouse, monitor
Installing Packages                                                             Serial terminal
                                                                                Network connection
• Installing packages may take 5 mins to several hours
   Most distributions provide a progress bar and/or total time
      indication                                                             Virtual Terminals
   Some distributions provide some entertainment while installing
                                                                             • In most Linux distributions, the console emulates a number of virtual
• While installation is going on, various virtual terminals provide            terminals
    information on the progress                                              • Each virtual terminal can be seen as a separate, directly attached
     Switch between Virtual Terminals using Ctrl-Alt-F1 to F6 (console        console
        based) and Ctrl-Alt-F7 (GUI)                                            Different users can use different virtual terminals

• Feed additional CD's when asked for                                        • Typical setup:
                                                                                VT 1 through 6: text mode logins
                                                                                VT 7: graphical mode login prompt (if enabled)
Create Boot Disk
                                                                             • Switch between VTs with Alt-Fn (or Ctrl-Alt-Fn if in X)
• After installation, most distributions allow you to create a custom boot
  disk
• Used to boot the system in case of LILO/GRUB/kernel problems               Linux Commands
• System specific to some degree
                                                                             • Everything on a Linux system can be done by typing commands
                                                                             (Even browsing the World Wide Web...)



                                                                                                                                    4
$ who –mu                                $ who -m u

• The Graphical User Interface (X Window System or X) is not needed
   for running a Linux system
                                                                      Some Basic Linux Commands
    But is sometimes more convenient

• In order to be able to type commands in X, you need to start a      •   passwd - Change your password
   terminal emulator                                                  •   mkpasswd - Generate a random password
                                                                      •   date, cal - Find out today's date and displays a calendar
                                                                      •   who, finger - Find out who else is active on the system
                                                                      •   clear - Clear the screen
Command Prompt                                                        •   echo - Write a message to your own screen
                                                                      •   write - Write a message to other screens
• Command prompt indicates that the system is ready to accept         •   wall - Write a message to all screens
  commands
• Can be configured yourself (will be covered later)                  •   talk - Talk to other users on the system
   Default depends on distribution                                   •   mesg - Switch on/off reception of write, wall and talk messages

        Examples:                                                     Changing your Password

        [user@host dir]$
        dir$
                                                                      • passwd command allows you to change your password
        $#
                                                                                $ passwd
                                                                                Changing password for tux1
    dollar ($) usually means: "logged in as regular user"                      Old password:
    hash (#) usually means: "logged in as root"                                New password:
                                                                                Retype new password:

Linux Command Syntax
                                                                      • Passwords are important for security - choose a good password
                                                                           Minimum six characters
• Linux commands have the following format:
                                                                           Not a dictionary word, birth date, license plate, ...
   $ command option/s argument/s
   Examples:                                                          • mkpasswd command generates a random password
   $   ls
   $   ls -l
   $   ls /dev
                                                                      The date Command
   $   ls -l /dev
                                                                      • date shows the current date and time
Command Format Examples                                                   $ date
                                                                          Fri Jun 6 11:15:10 CET 2003
RIGHT                                 WRONG
                                                                      The cal Command
1. Separation

$ mail -f personal                    $ mail - f personal             • cal shows a calendar Syntax: cal [Month] [Year]
$ who –u                              $ who-u
                                                                          $ cal 6 2003
                                                                               June 2003
2. Order
                                                                          Su Mo Tu We Th Fr Sa
                                                                          1 2 3 4 5 6 7
$ mail -s test root                   $ mail test root -s                 8 9 10 11 12 13 14
$ who –u                              $ -u who                            15 16 17 18 19 20 21
                                                                          22 23 24 25 26 27 28
3. Multiple options                                                       29 30

$ who -m –u                           $ who -m-u                      Who is on the System?



                                                                                                                             5
• who shows who is logged onto the system                            $ talk john


   $ who
   root tty1 Mar 5 11:10
   tux1 tty2 Mar 5 11:04

   $ who am i
   host!tux1 tty2 Mar 5 11:04

   $ whoami
   tux1
                                                                 The mesg Command
Finding Information about Users
                                                                 • mesg command controls whether other users can send messages to
finger command shows info about other users Syntax: finger           you with the write, wall or talk command or through output
[user][@host]                                                        redirection.
         $ finger
         Login Name Tty Idle Login Time
         tux1 Tux (1) 2 Mar 5 11:04                                  User tux1 at tty1:
         root root *1 7 Mar 5 11:10
                                                                     $ mesg n
         $ finger tux1                                               User tux2 at tty2:
         Login: tux1 Name: Tux (1)
         Directory: /home/tux1 Shell: /bin/bash                      $ write tux1 tty1
         On since Fri Mar 5 11:04 (CET) on tty2                      write: tux1 has disabled messages on tty1
         No mail.
         No plan.
                                                                 Keyboard Tips
The clear, echo, write and wall Commands
                                                                 • <backspace> or <ctrl-h> - Corrects mistakes
• clear command clears your screen                               • <ctrl-c> - Terminates the current command and returns to the
   $ clear
                                                                     shell
                                                                 •   <ctrl-d> - End of transmission
• echo command writes messages to your own screen                •   <ctrl-s> - Temporarily stops output to the screen
                                                                 •   <ctrl-q> - Resumes output
   $ echo Who wants to go to lunch?
   Who wants to go to lunch?                                     •   <ctrl-w> - Erase last word
                                                                 •   <ctrl-u> - Erase the entire line
• write use to display a text message on a user's terminal       •   <tab> - Command or filename completion
   $ write tux2                                                  •   <arrow up> - Previous command
   Message
   <ctrl-d> # terminate                                          •   <arrow down> - Next command
                                                                 •   <arrow left> - One character to the left
• wall use to place a message on all logged in user's displays   •   <arrow right> - One character to the right

   $ wall
                                                                 •   <shift page-up> - Look at the output of previous commands
   I'm back                                                      • <shift page-down> - Look at the output of later commands;
   <ctrl-d> # terminate                                            eventually gets you back to the command prompt
                                                                 • <ctrl-r> - Search for a command in the command history
Talk with Another User

• If John wants to talk with Fred, John enters:                  Command History

   $ talk fred                                                   Command history also can be viewed with history command

• If Fred also wants to talk with John, Fred enters:                      $ history 5
                                                                          99 clear



                                                                                                                 6
999 wc .bash_profile                                     Logging Out
             1000 wc .bash_profile
             1001 wc .bash_profile
             1000 history                                             • When finished working on a system, always log out
                                                                         Other people might misuse your account

Retrieving commands with "!"                                          • In a text mode terminal, use logout, exit or ctrl-d
• To retrieve commands, use !u                                        • In a graphical mode terminal, use appropriate menus
    $ wc .bash_profile
    16 23 238 .bash_profile
                                                                                Unit 4 - Working with Files and Directories
•   Redo previous:

    $ !-1                                                             • A file is:
    wc .bash_profile                                                       A collection of data
    16 23 238 .bash_profile                                                A stream of characters or a "byte stream"
    or:
    $ !!
                                                                           No structure is imposed on a file by the operating system


•   Redo command No. 999:

    $ !999
                                                                      File Types

Console Mouse Tips

• On most distributions, the mouse also works in text mode

     Left mouse button
      o Click: Mark start of selection
      o Drag: Mark selection

     Middle mouse button
      o Click: Paste selection

     Right mouse button                                              Linux Filenames
      o Click: Mark end of selection
                                                                      • Should be descriptive of the content
                                                                      • Should use only alphanumeric characters UPPERCASE, lowercase,
Locking                                                                 number, @, _
                                                                      • Should not include embedded blanks
• When temporary leaving a system alone, always lock your terminal    • Should not contain shell metacharacters: * ? > < / ; & ! [ ] |  ' " ( ) { }
Other people might misuse your account                                • Should not begin with + or - sign
                                                                      • Are case sensitive
• In a text mode terminal, use vlock (lock your terminal) or vlock    • Filenames starting with a . are hidden
    -a (lock the whole console)                                       • The maximum number of characters for a filename is 255

• In a graphical mode terminal, use the menu, the "padlock" icon or   Linux Pathnames
    xlock
     Most screensavers support automatic locking too
                                                                      • Full pathnames:
                                                                         Start from / (the root directory)
• A locked terminal can only be unlocked with the users password      • Relative pathnames:
                                                                         Start from the present working directory



                                                                                                                               7
Examples: working directory is /home/tux1                           • With the rmdir (remove directory) command: $ rmdir
   /home/tux1/doc/mon_report            (full)
                                                                           dirname
   doc/mon_report                       (relative)
   ../tux3/pgms/suba                    (relative)                         $ pwd
   ./test                                      (a file in the              /home/tux1
                                        current dir)                       $ rmdir doc test
   ~/test                               (same as above)                    rmdir: doc: Directory not empty

                                                                       Note: directory must be empty!
Example Directory Structure

                                                                       Working with Multiple Directories

                                                                       • Create and remove multiple directories simultaneously with the -p
                                                                           flag

                                                                           $ mkdir -p dir1/dir2/dir3 or
                                                                           $ mkdir dir1 dir2 dir3

                                                                           $ rmdir -p dir1/dir2/dir3 or
                                                                           $ rmdir -r dir1 dir2 dir3




Where Am I?
                                                                       List the Contents of Directories
• pwd command (print working directory) can be used to find out what
   your current working directory is:                                  With the ls command: $ ls [dir/file]

                                                                                  $ ls /home
   $ pwd
                                                                                  tux1 tux2 tux3
   /home/tux1

                                                                       Important options:
Change Current Directory
                                                                       -l long listing (more information)
• With the cd (change directory) command: $ cd dirname                 -a lists all files (including hidden)
                                                                       -t lists files sorted by change date
   $   cd doc                           (relative)
   $   cd /home/tux1/doc                (full)                         -R lists contents recursively
   $   cd ~tux1/doc                     (home)
   $   cd                               (Go to your home
                                        directory)
   $ cd ..                              (Go one directory up)          The touch Command
   $ cd -                                      (Go to previous
                                        directory)
                                                                       • touch command creates an empty file, or updates the modification
                                                                           time of an existing file
Create Directories
                                                                           $ ls -l
                                                                           -rw-rw-r-- 1 tux1 penguins 512 Feb 24 11:10 docs
• With the mkdir (make directory) command: $ mkdir
   dirname                                                                 $ touch docs
                                                                           $ ls -l
                                                                           -rw-rw-r-- 1 tux1 penguins 512 Mar 5 15:37 docs
   $ mkdir /home/tux1/doc (full pathname)
                                                                           $ touch new
   $ cd /home/tux1                                                         $ ls -l
                                                                           -rw-rw-r-- 1 tux1 penguins 512 Mar 5 15:37 docs
   $ mkdir doc                          (relative pathname)                -rw-rw-r-- 1 tux1 penguins 0 Mar 5 15:37 new


Removing Directories                                                   Copying Files




                                                                                                                         8
• cp command copies files: cp [source/s] [target]                         Of cabbage - and kings -
                                                                          And why the sea is boiling hot -
                                                                          And whether pigs have wings."
    Copying one file to another:
    $ cp .bashrc bashrc.old                                         Displaying Files Page by Page
    Copying multiple files into a target directory:
                                                                    • With the more or less commands: $ [less/more]
    $ cp doc/mon_report doc/walrus /tmp                                   walrus

                                                                          "The time has come", the walrus said,
• cp can recursively copy directories with the -R flag                    "To talk of many things:
                                                                          Of shoes - and ships - and sealing wax -
    $ cp -R /home/tux1/doc /tmp                                           Of cabbage - and kings -
                                                                          And why the sea is boiling hot -
                                                                          And whether pigs have wings."
To prevent cp from overwriting existing files, use:                       /tmp/test/walrus 1-6/6 (END)

    $ cp -R -i /home/tux1/doc /tmp
    cp: overwrite `/tmp/doc/walrus´?
                                                                    Displaying Binary Files

Moving and Renaming Files                                           • With the od command:

• With the mv command: $ mv [source/s] [target]

    To move a file do another directory:                            • With the strings command:
                                                                    $ strings /usr/bin/passwd
          $ mv doc/walrus ../../tmp                                 /lib/ld.so.1
                                                                    __gmon_start__
   To rename a file:                                                __deregister_frame_info
                                                                    __register_frame_info
          $ mv doc documents                                        ...

• Use the -i option to prevent mv from overwriting existing files
                                                                    Removing Files
• Moving and renaming files can be combined by mv:
                                                                    • With the rm command: $ rm test/rob
    $ cd
    $ pwd                                                                 $ ls test/rob
    /home/tux1                                                            ls: rob: No such file or directory
    mv /tmp/walrus ./test/rob
                                                                    • If unsure, use -i option
    To move a directory:
                                                                              $ rm -i test/rob
    $ mv ./test /tmp                                                          rm: remove `test/rob´?

Note: mv is recursive by default                                    • To remove files and directories recursively:
                                                                          $ rm -ir test/
Listing File Contents
                                                                    Splitting Files
• With the cat (concatenate) command: $ cat file1 file2
    ...                                                             • You can split a file into smaller files with the split command $
    $ cat walrus
                                                                          split -b <bytes> file [prefix]
    "The time has come", the walrus said,
                                                                    $ ls -l
    "To talk of many things:
                                                                    -rw-r--r-- 1 root root 4194304 Feb 21 13:31 large
    Of shoes - and ships - and sealing wax -




                                                                                                                      9
$ split -b 1024k large large.

$ ls -l
-rw-r--r--    1   root   root   4194304   Feb   21   13:31   large
-rw-r--r--    1   root   root   1048576   Feb   21   13:33   large.aa
-rw-r--r--    1   root   root   1048576   Feb   21   13:33   large.ab
-rw-r--r--    1   root   root   1048576   Feb   21   13:33   large.ac
-rw-r--r--    1   root   root   1048576   Feb   21   13:33   large.ad



File Managers

• Linux also offers different graphical file managers

    Nautilus (GNOME)
    Konqueror (KDE)

                                                                        Required Permissions
           Unit 5 - File and Directory Permissions




Permissions
                                                                        Changing Permissions
• File permissions are assigned to:
                                                                        • To change the permission of a file use the chmod command
    owner of a file
    members of the group the file is assigned to                          Syntax: chmod [MODE] [FILE/S]
    all other users
                                                                        Mode can be symbolic
• Permissions can only be changed by the owner and root
                                                                        $ chmod go-rx /home/tux1
                                                                        $ ls -ld /home/tux1
                                                                        drwx------ 4 tux1 users 512 Jan 5 12:43 /home/tux1
Viewing Permissions
                                                                        Mode can be octal:
To show the permissions of a file, use the ls command with the -l
option                                                                  $ chmod 700 /home/tux1
                                                                        $ ls -ld /home/tux1
                                                                        drwx------ 4 tux1 users 512 Jan 5 12:43 /home/tux1



                                                                        Changing Permissions

                                                                        • Calculating numeric (octal) mode:




Permissions Notation



                                                                                                                     10
umask                                                                         • The -k option of the man command or the apropos command
                                                                                 prints out a description of all entries which match the given keyword
• New files should not be created with 666, to avoid this problem a
    permission mask exists. Syntax: $ umask 022




                                                                              man Sections

                                                                              • Manual pages are divided in 9 sections:
                                                                                 1. User commands
                                                                                 2. System calls
                                                                                 3. Libc calls
                                                                                 4. Devices
                                                                                 5. File formats and protocols
                    Unit 6 - Linux Documentation                                 6. Games
                                                                                 7. Conventions, macro packages and so forth
                                                                                 8. System administration
The man Command                                                                  9. Kernel
                                                                              • Certain subjects appear in multiple sections
• With the man command you can read the manual page of
  commands.                                                                   • To select correct section, add section number:
• Manual pages are stored in /usr/share/man                                         man 1 passwd (about the passwd command)
• The manual page consists of:                                                      man 5 passwd (about the passwd file)


       Name - The name of the command and a one-line description
       Synopsis - The syntax of the command                                  The info Command
       Description - Explanation of how the command works and what it does
       Files - The files used by the command
                                                                              • Sometimes a replacement for manual pages
                                                                              • Widely used by the GNU project
       Bugs - Known bugs and errors
       See also - Other commands related to this one
                                                                              • Information for info is stored in /usr/share/info

Example Manual Pages                                                          Some info commands:

                                                                              space                next screen of text
                                                                              del or bs            previous screen of text
                                                                              n                    next node
                                                                              p                    previous node
                                                                              q                    quit info


                                                                              The --help Option




                                                                                                                                 11
• Another way of getting help about a command                             • All Linux directories are contained in one, virtual, "unified file
• Help is built in the command itself (if supported)                          system"

                                                                          • Physical devices are mounted on mount points
HOWTO Documents                                                              Floppy disks
                                                                             Hard disk partitions
• Documents which describe in detail a certain aspect of configuring or      CD-ROM drives
   using Linux.
                                                                          No drive letters like A:, C:, ...
• Detailed information about how to perform a given task
   Install PCMCIA support
   Kernel compilation
   Dual boot with other operating systems

• HOWTO documents are text files in /usr/share/doc/HOWTO
   Need to be installed manually
                                                                          • /bin - contains executables for every user
• On the Internet: http://www.tldp.org/index.html
Other Documentation                                                       • /sbin - contains system administration executables

• Certain programs also offer other kinds of documentation                • /lib - contains libraries
   HTML
   PostScript                                                            • Should always be available
   Plain Text                                                               At system boot
                                                                             In single user mode
• Usually stored in /usr/share/doc/<programname>                             When booting from rescue disk

                                                                          • /boot - contains kernel image and some other goodies

                                                                          • /dev - Contains special files that represent hardware devices
On the Internet                                                                Block special device, for example, a hard disk
                                                                               Character special device, for example, mouse and keyboard
• All Linux documentation is available on the Internet.
• Google: http://www.google.com/linux                                     • Each device has a major and minor number
• Other sites:                                                               Identification within the kernel
      http://www.tldp.org
      http://www.linux.org                                               • /etc - contains system-wide configuration files
      http://www.redhat.com
   
   
       http://www.suse.com
       http://www.xfree86.org
                                                                          • Some subsystems have multiple files and therefore use a separate
      http://www.kernel.org                                                  directory
      http://lwn.net
      and many more                                                              /etc/X11 contains X Window System configuration
                                                                                  /etc/skel contains default user configuration files
• Usenet news:
   comp.os.linux.*
                                                                                  /etc/sysconfig contains system configuration

   Country-specific groups
                                                                          • /home - home directories of users

                   Unit 7 - Directory Structure                           • /mnt - mount points for other file systems
                                                                          Note: SUSE uses /media instead of /mnt for floppy and cdrom
                                                                          mount points



                                                                                                                                         12
• /proc - virtual file system that represents kernel and process
    information

• /root - home directory of the root user

• /tmp - temporary storage space for programs, users and usually
    automatic cleanup mechanism active

• /usr (UNIX System Resources)

     Contains all programs, libraries and so on which are not essential
        for system boot and emergency operations                           Typical File System Layout

     /usr/local intended for programs not in the distribution
        o locally developed
        o locally compiled

• /var

     Files of variable size
      o logfiles
      o lockfiles

     Directories with variable content
      o mail
      o scheduling
      o printing

     Temporary storage space, longer than /tmp
                                                                           The mount Command
• /lost+found

     Exists in every file system                                          • mount command mounts a file system
     Place where lost+found files are stored after a crash                   Makes it part of the unified file system structure
        recovery by fsck                                                      mount [-t type] [-o opts] device mountpnt

Other Directories in /
                                                                           # mount /dev/hda5 /usr
• /opt - used for some software from external providers
   Separate file system advisable

• Whatever you create yourself.


Virtual and Unified File System
                                                                           The umount Command
• Linux does not use drive letters (A:, C:, D:) to identify
    drives/partitions, but creates a virtual, unified file system
                                                                           • umount command unmounts a file system
• Different drivers/partitions are "mounted" on a "mount point"               Takes it out of the unified file system structure
                                                                              File system should not be busy


                                                                                                                             13
$ file /etc/passwd
    Syntax: umount {device|mountpnt}                                          /etc/passwd: ASCII text

                                                                              $ file /usr/bin/passwd
    # umount /dev/hda5 or # umount /usr                                       /usr/bin/passwd: ELF 32-bit LSB executable


The /etc/fstab File
                                                                           • To edit text files, use an editor
                                                                           • Non-text files can only be changed using the application that created
                                                                             them, or with a "hex editor"
• /etc/fstab lists all known filesystems on the system
Syntax: device mountpoint type options dump fsck                           • But most configuration files under Linux are text files

• File systems with the noauto option are not mounted automatically        The "vi" Text Editor
    but can be used as templates for mount
                                                                           • Default editor in all UNIX operating systems
                                                                           • Usually the only editor available in emergencies
                                                                           • Relatively hard to learn, but really powerful
                                                                           • As a Linux user, you should be able to use vi for basic editing tasks
                                                                              But it's OK if you prefer another editor for daily work

                                                                           • vi in Linux is usually vim (vi improved):
                                                                                 Syntax highlighting
                                                                                 Arrow keys, Del, BS work in insert mode
Note: Some distributions use file system labels instead of device names.         Multi level undo
                                                                                 Mouse support
Mounting and Unmounting Removable Media
                                                                           vi Modes
• Most distributions configure /etc/fstab so that the console user
    is allowed to mount removable media (floppy, cd) on a predetermined    • vi knows three modes of operation
    mountpoint and with predetermined options (for security)                  Command mode (for simple, one-letter commands)
                                                                              Edit mode (insert text)
• Always unmount media before ejecting                                        ex mode (for complicated commands)
• GUI typically offers icons that perform the mount
                                                                           • Can easily change between modes
    $ whoami
    tux1

    $ mount /mnt/cdrom
    $ mount
.
         /dev/cdrom on /mnt/cdrom type iso9660
         (ro,nosuid,nodev,user=tux1)
         .

         $ ls /mnt/cdrom                                                   Cursor Movement in Command Mode
         .
         $ umount /mnt/cdrom



                       Unit 8 - Editing Files
Editing Files

• Use file command to determine the content of a file



                                                                                                                              14
Editing Text in Command Mode
                                                                         Searching for Patterns
•   x - To delete a single character under cursor x
•   X - To delete a single character left of cursor X                    • /pattern - To search for a pattern (in command mode)
•   r -To replace a single character r                                   • n - To repeat the previous search
•   u - Undo the last change u
•   . - To repeat last command
•   J - To join two lines together


Switching to Edit Mode

•   I - To insert text at begin of line
•   i - To insert text before cursor
•   a - To append text after cursor
•   A - To append text at end of line
                                                                         Replacing Patterns
•   <ESC> - To go back to command mode
                                                                         • Advanced search and replace can be done in ex mode
                                                                         • :1,$s /old/new/g - To replace old with new



Adding Text in Edit Mode

• Keystroke "i" switches vi to edit mode.
• New characters can be inserted at the current position of the cursor




                                                                         Cut, Copy and Paste

                                                                         •   dd - To cut a whole line into buffer
                                                                         •   yy - To copy a whole line into buffer
                                                                         •   dw - To cut a word from the current cursor position to its end
                                                                         •   p -To paste contents of buffers here
Exiting the Edit Mode                                                    •   3dd, 8yy - To cut, copy multiple lines, precede command by
                                                                             number
• Keystroke "ESC" leaves the edit mode.

                                                                         Cut and Paste




                                                                                                                             15
Text mode editors
                                                                               pico (really simple)
                                                                               Original vi
                                                                               emacs (even more powerful and complicated than vi)
                                                                           Graphical mode editors
                                                                               kedit, kwrite
                                                                               gedit
vi Options
                                                                            Hex editors allow you to change non-text files if you know the
                                                                                internal structure
• Options entered in ex mode change the behavior of the vi editor:
                                                                                Khexedit
    :set all
    :set autoindent/noautoindent
    :set number/nonumber
                                                                                                 Unit 9 - Shell Basics
    :set list/nolist
    :set showmode/noshowmode                                           The Shell
    :set tabstop=x
    :set ignorecase/noignorecase
    :set wrapmargin=x                                                  •    Shell is the user interface to Linux
    :set tx/notx
    :set hlsearch/nohlsearch
    :syntax on/off


• To make these options available to all vi sessions, put it into a
    .exrc or .vimrc file in your HOME-directory

Exiting vi

•   ZZ - To save and exit in command mode
•   :w - To save in ex mode
•   :w! - To forcefully save file in ex mode
•   :q - To quit without saving in ex mode
•   :q! - To forcefully exit in ex mode
•   :wq - To save and exit in ex mode (recommended)                    Shell Features
•   :x - To save and exit in ex mode, shorter
                                                                       •    When the user types a command, various things are done by the
                                                                            shell before the command is actually executed:
vi Cheat Sheet
                                                                                 Wildcard expansion               *?[]
                                                                                 Input/Output redirection         < > >> 2>
                                                                                 Command grouping                 { com1 ; com2; }
                                                                                 Line continuation                
                                                                                 Shell variable expansion         $VAR
                                                                                 Alias expansion                  dir -> ls -l
                                                                                 Shell scripting                  #!/bin/bash

Other Editors                                                          •   For example, the ls *.doc command could be expanded to /bin/ls --
                                                                           color=tty mydoc.doc user.doc before execution (depending on
• A typical Linux distribution comes with a large number of editors.       settings and files present)
                                                                       Metacharacters and Reserved Words
    Examples:



                                                                                                                              16
•   Metacharacters are characters that the shell interprets ashaving a     •   Other descriptors are assigned by the program when it opens files
    special meaning.




•   Reserved words are words that the shell interprets as special
    commands.


                                                                           Input Redirection

                                                                           •   Default Standard Input: $ cat
                                                                               Amsterdam
Basic Wildcard Expansion                                                       Amsterdam
                                                                               Utrecht
•   When the shell encounters a word which contains a wildcard, it tries       Utrecht
                                                                               <ctrl-d>
    to expand this to all matching filenames in the given directory
                                                                           •   STDIN redirected from file:
                                                                               $ cat < cities
                                                                               Amsterdam
                                                                               Utrecht
                                                                               $

                                                                           Output Redirection

                                                                           •   Default Standard Output: /dev/tty
                                                                               $ ls
                                                                               file1 file2 file3


                                                                           •   Redirect output to a file:
Advanced Wildcard Expansion                                                    $ ls > ls.out


•   wildcards [, ], - and ! match inclusive lists:                         •   Redirect and append output to a file:
                                                                               $ ls >> ls.out

                                                                           •   Create a file with redirection:

                                                                               $ cat > new_file
                                                                               Save this line
                                                                               <Ctrl-D>

                                                                           Error Redirection

                                                                           •   Default Standard Error: /dev/tty
                                                                               $ cat filea
                                                                               cat: filea: No such file or directory
File Descriptors
                                                                           •   Redirect error output to a file:
•   Every program has a number of file descriptors associated with it          $ cat filea 2> error.file
•   Three descriptors are assigned by the shell when the program starts        $ cat error.file
                                                                               cat: filea: No such file or directory
    (STDIN, STDOUT and STDERR)



                                                                                                                            17
•   Redirect and append errors to a file:                      •   sed - Allows string substitutions
    $ cat filea 2>> error.file                                 •   awk - Pattern scanning and processing
                                                               •   fmt - Insert line wraps so text looks pretty
•   Discard error output:                                      •   tac - Display lines in reverse order
    $ cat filea 2> /dev/null                                   •   tr - Substitute characters
                                                               •   grep - Only displays lines that match a pattern
Combined Redirection                                           •   nl - Number lines
                                                               •   pr - Format for printer
                                                               •   sort - Sort the lines in the file

                                                               Split Output

                                                               •   tee command reads standard input and sends the data
                                                                   to both standard out and a file.

                                                                   $ ls | wc -l
                                                                   3

                                                                   $ ls | tee ls.save | wc -l
                                                                   3

                                                                   $ cat ls.save
                                                                   file1
                                                                   file2
                                                                   file3
Pipes
                                                               Command Substitution
•   A sequence of two or more commands separated by a
    vertical bar (|) is called a pipe or pipeline
                                                               •   Command Substitution allows you to use the output of a
    $ ls -l | wc -l                                                command as arguments for another command.
                                                               •   Use backticks (`) or $() notation:
•   The standard output of command1 becomes the
    standard input of command2                                     $ rm -i `ls *.doc | grep tmp`
                                                                   $ echo There are $(ps ax | wc -l) processes
                                                                   running.

                                                               Command Grouping

                                                               •   Multiple commands can be entered on the same line,
                                                                   separated by a semicolon (;)
Filters
                                                               •   Commands can be grouped into one input/output
                                                                   stream by putting curly braces around them:
•   Filter is a command that reads from standard in,
    transforms the input in some way and writes to standard    •   Commands can be executed in a sub shell by putting
    out.                                                           round braces around them:
•   They can, therefore, be used at intermediate points in a       $ date ; pwd
    pipeline.                                                      $ ( echo Print date: ; date ; cat cities ) | lpr
                                                                   $ { echo Print date: ; date ; cat cities; } | lpr
    $ ls | grep .doc | wc -l
    4
                                                               Shell Variables
Common Filters
                                                               •   Variables are part of the environment of a process
•   expand, unexpand - Change tabs to spaces and vice          •   A variable has a unique name
    versa                                                      •   The first character must not be a digit.



                                                                                                         18
•   To assign a value to a variable use: variable=value   •   A command returns a value to the parent process. By
                                                              convention, zero means success and a non-zero value
    $ VAR1="Hello class"
    $ VAR2=2                                                  means an error occurred.
                                                          •   A pipeline returns a single value to its parent
Referencing Shell Variables                               •   The environment variable ? contains the return code of
                                                              the previous command.
•   To reference the value of a variable, use:
    $variable                                                 $ whoami
    $ echo $VAR1                                              tux1
    Hello class
    $ echo $VAR2                                              $ echo $?
    2                                                         0

                                                              $ cat filea
Exporting Shell Variables                                     cat: filea: No such file or directory
                                                              $ echo $?
•   The export command is used to pass variables from a       1

    parent to a child process.
                                                          Quoting Metacharacters
•   Changes made to variables in a child process do not
    affect the variables in its parent.
                                                          •   When you want a metacharacter NOT to be interpreted
    $ export x=4                                              by the shell, you need to quote it
    $ bash                                                •   Quoting a single character is done with the backslash ()
    $ echo $x
    4                                                     •   Quoting a string is done with single (') or double (")
                                                              quotes
    $ x=100
    $ echo $x                                             •   Double quotes allow interpretation of $, `(backtick) and 
    100
                                                              $ echo The amount is US$ 5
    $ exit                                                    The amount is US$ 5
    $ echo $x                                                 $ amount=5
    4
                                                              $ echo 'The amount is $amount'
Standard Shell Variables                                      The amount is $amount

                                                              $ echo "The amount is $amount"
•   The shell uses several shell variables internally         The amount is 5
•   These variables are always written in uppercase
                                                          Quoting Non-Metacharacters
    Example:
                                                          •   The backslash can also be used to give a special
       $ - PID of current shell                              meaning to a non-metacharacter (typically used in
       PATH - Path which is searched for executables         regular expressions)
       PS1 - Primary shell prompt
       PS2 - Secondary shell prompt                          n = newline
                                                              t = tab
       PWD - Current working directory
                                                              b = bell
       HOME - Home directory of user
       LANG - Language of user
                                                          •   A backslash followed directly by Enter is used for line
                                                              continuation
•   Overwriting these variables by accident can cause
    unexpected results
                                                          •   The continued line is identified with the $PS2 prompt
                                                              (default: >)
•   Always use lowercase variables in your own shell
    scripts to avoid conflicts                            $ cat/home/john/mydir/mysudir/data/information/letter
                                                          > /pictures/logo.jpg
Return Codes from Commands
                                                          Aliases




                                                                                                     19
•   The alias command allows you to set up aliases for
    often-used commands

    Examples:

    $ alias ll='ls -l'
    $ alias rm='rm -i'


•   To show all currently defined aliases:
    $ alias
•   To delete an alias:                                   Parents and Children
    $ unalias ll                                          $ echo $$
    $ ll                                                  561
    bash: ll: command not found
                                                          $ bash
                                                          $ echo $$
                                                          675
              Unit 10 - Working with Processes
                                                          $ date
What is a Process?                                        Thu Mar 25 22:28:21 CET 1999
                                                          $ <ctrl-d>
•   A program is an executable file                       $ echo $$
•   A process is a program which is being executed        561
•   Each process has its own environment:




                                                          Monitoring Processes

                                                          •   The ps command displays process status information
•   To see the PID of your current shell process type:

    $ echo $$
                                                          •   ps supports a large number of options - you typically
                                                              use ps aux:
Starting and Stopping a Process
                                                                 a - all processes attached to a terminal
•   All processes are started by other processes                 x - all other processes
    Parent/Child relationship                                    u - provides more columns

    $ ls –l
                                                          •   options are typed without a leading "-" !


                                                          Viewing Process Hierarchy

                                                          •   pstree shows process hierarchy

•   A process can be terminated because of two reasons:
•   The process terminates itself when done
•   The process is terminated by a signal from another
    process

Login Process Environment


                                                                                                     20
Controlling Processes
                                                               Kill Signals
•   Processes can be controlled in two ways:
                                                               •   Several signals can be sent to a process
       From the shell that started it, using its job number
       From anywhere else on the system, using its PID               Using keyboard interrupts (if foreground process)
                                                                      Using the kill command
Actions that can be performed on a running process:                    Synopsis: kill -signal PID
     Terminate
     Kill                                                            Using the killall command to kill all named
     Stop/Continue
                                                                       apps
                                                                       Synopsis: killall -signal application
•   These actions are performed by sending signals
                                                               •   Most important signals:
Starting Processes

•   Foreground processes are invoked by simply typing a
    command at the command line.

    $ find / -name README



                                                               Running Long Processes

                                                               •   The nohup command will stop a process from being
•   Background processes are invoked by putting an "&"             killed if you log off the system before it completes, by
    at the end of the command line                                 intercepting and ignoring the SIGHUP and SIGQUIT
    $ find / -name README &                                        (hangup and quit) signals

                                                                   $ nohup find / -name README &
                                                                   nohup: appending output to `nohup.out´
                                                                   $ logout

                                                               Managing Process Priorities
Job Control in the Bash Shell
                                                               •   Processes are scheduled according to priority
       <ctrl-z> - suspends foreground task
       jobs - lists background or suspended jobs
       fg - resume suspended task in the foreground
       bg - resume suspended task in the background

Specify a job number for bg, fg and kill using %job




                                                                                                           21
Daemons

The nice Command                                            •   The word "Daemon" refers to a never-ending process,
                                                                usually a system process that controls a system
•   The nice command is used to start a process with a          resource such as the printer queue or performs a
    user defined priority                                       network service
    $ nice [-n <value>] <original command>




The renice Command

The renice command is used to change the priority of a                     Unit 11 - Linux Utilities
currently running process
                                                            The find Command
       $ renice <new_priority> <PID>
                                                            •   Search one or more directory structures for files that
                                                                meet certain specified criteria
                                                            •   Display the names of matching files or execute
                                                                commands against those files

                                                                Syntax:     $ find path expression

                                                            Sample Directory Structure
Integrated Process Management

•   Various integrated tools exist for process management
    top, gpm, kpm
•   Availability depends on distribution




                                                                                                       22
Using find

•   Generally, you want to search a directory structure for
    files with certain names and list the names found.

    $ cd /home/joe                                            find Examples
    $ find . -name phone
    ./shape/phone
    ./phone


•   On many other UNIX systems, with find you have to tell
    it specifically to print the names using -print

    $ find . -name phone -print
    ./shape/phone
    ./phone
Executing Commands with find
                                                              locate Command
•   The -exec option executes a command on each of the
    file names found.
                                                              •   locate allows you to quickly find a file on the system,
    $ find   . -name 'b*' -exec ls -i {} ;                       based on simple criteria
    187787   ./color/blue
    187788   ./color/brown                                    $ locate passwd
    187792   ./shape/box                                      /usr/share/man/man1/passwd.1.gz
    202083   ./size big                                       /usr/share/man/man5/passwd.5.gz
    132754   ./blues                                          /etc/passwd
                                                              /usr/bin/passwd

•   " { } " is a placeholder for each filename.
•   The backslash escapes the following semicolon.            •   Requires that the superuser runs updatedb regularly
                                                                   Most distributions run updatedb automatically
Interactive Command Execution                                      SuSE does not install locate/updatedb by default

•   The -ok option also causes command execution but on       The cut Command
    an interactive basis:
                                                              •   Pull selected columns or fields from one or more files.
    $ find . -name b* -ok rm {} ;
    < rm ... ./color/blue > ? y                               Syntax:         cut -f(ields) -d(elimiter) file(s)
    < rm ... ./color/brown > ? y                                              cut -c(haracters) file(s)
    < rm ... ./shape/box > ? y
    < rm ... ./size/big > ? y
    < rm ... ./blues > ? y

Additional find Options




                                                                                                         23
•   Patterns with metacharacters should be in single quotes
                                                                 (' ') so that the shell will leave it alone
                                                             •   Valid metacharacters with grep: $ . * ^ [ - ]
                                                                  . - Any single character
                                                                  * - Zero or more occurrences of the preceding
                                                                       character
The grep Command                                                  [a-f] - Any ONE of the characters in the range a
                                                                       through f
•   Searches one or more files or standard input for lines        ^a - Any line that starts with a
    matching pattern                                              z$ - Any line that ends with z
•   Simple match or Regular Expression
                                                             grep Options
Syntax: grep [options] pattern [file1 ...]
                                                             -v - Print lines that do not match
                                                             -c - Print only a count of matching lines
                                                             -l - Print only the names of the files with matching lines
grep Sample Data Files                                       -n - Number the matching lines
                                                             -i - Ignore the case of letters when making comparisons
                                                             -w - Do a whole word search
                                                             -f <file> - Read expressions from file instead of command
                                                             line

                                                             Other greps

                                                             •   fgrep allows only fixed strings (no regular expressions)
                                                             •   egrep allows for multiple (alternate) patterns

                                                                 $ egrep '20500|40599|50599' phone1
                                                                 Judith     20500 intern
                                                                 Leo        40599 extern
                                                                 Nannie     50599 extern

                                                             The sort Command

                                                             •   The sort command sorts the lines in the file specified
Basic grep                                                       and writes the result to standard output

                                                             Syntax: sort -t(delimiter) +field -options file

                                                                     $ cat animals
                                                                     dog.2
                                                                     cat.4
                                                                     penguin.10

                                                                     $ sort animals
                                                                     cat.4
                                                                     dog.2
                                                                     penguin.10

                                                                     $ sort +0.1 animals
                                                                     cat.4
                                                                     penguin.10
                                                                     dog.2

                                                                     $ sort -t. +1 animals
                                                                     penguin.10
grep with Regular Expressions                                        dog.2




                                                                                                       24
cat.4                                                    /bin/ls: ELF 32-bit LSB executable, Intel 80386,
                                                                  version 1, dynamically linked, stripped
         $ sort -t. -n +1 animals                                 /home/peter: directory
         dog.2                                                    /tmp/fake.jpg: PDF document, version 1.3
         cat.4
         penguin.10
                                                                  The gzip, gunzip and zcat Commands
Options:
                                                                  To compress or uncompress files use gzip, gunzip or zcat
-d - sorts in dictionary order. Only letters, digits and spaces
are considered in comparisons
-r - reverses the order of the specified sort
-n - sorts numeric fields in arithmetic value

The head and tail Commands

•   The head command can be used to view the first few
    lines of a file or files. The command syntax is:

    Syntax: $ head [-lines] file(s)

•   The tail command displays the last few lines of a file or
    files.                                                        The join and paste Commands
•   The command syntax is: $ tail [{-lines|+lines|-f}]
    file(s)                                                       •   join and paste combine files
    $   head -5 myfile
    $   ls -l | head -12
    $   tail -20 file
    $   tail +20 file
    $   tail -f file

The type, which and whereis Commands

•   To find out what the path to a command is, use type
    $ type find echo
    find is /usr/bin/find
    echo is a shell builtin


•   To find out where the binary is located, use which            The Linux Graphical User Interface

    $ whereis find echo                                           •   The "X Window System" is the GUI of Linux
    find: /usr/bin/find /usr/man/man1/find.1
    echo: /bin/echo /usr/man/man1/echo.1                              Developed at MIT in 1984
                                                                       Current standards body: X Consortium
•   To locate the binary, source and manual page files of a            Shortname: X
    command, use whereis
                                                                  •   X uses client-server model with network connections
    $ which find echo
    /usr/bin/find                                                      Highly flexible
    /bin/echo                                                          Easy exchange of components
                                                                       Supports networked applications and sessions,
The file Command                                                          independent of the OS

•   With the file command, you can find out what the type
    of data in the file is.

$ file /etc/passwd /bin/ls /home/peter /tmp/fake.jpg
/etc/passwd: ASCII text



                                                                                                          25
 Mouse
                                                              Graphical adapter
                                                              Monitor

                                                          • Things to configure: refresh rate, resolution, color depth
                                                          • Config file: /etc/X11/XF86Config
                                                          • Manual configuration possible, but hard

                                                              See XFree86-HOWTO for details
X Components
                                                          • Automated configuration tools available:
• X Server
                                                              During installation of distribution
    Controls keyboard, mouse and one or more screens         XFree86 tools: xf86config, X -configure
    Controls resolution, refresh rate and color depth        Distribution tools: redhat-config-xfree86 (Red Hat
    Allows simultaneous access by several clients            and Fedora), sax2/yast2 (SuSE)
    Performs basic graphic operations
    Forwards keyboard and mouse events to the correct    Desktop Environments
     clients
                                                          • Desktop Environment is:
                                                             A set of tools, libraries and standards that allows
                                                                rapid development of X clients
• X Client                                                    A set of X clients (including one or more window
                                                                managers) that are developed with these tools,
    Is for instance an application
                                                                libraries and standards
    Receives keyboard and mouse inputs from server
    Sends output to be displayed to server
                                                             Examples:
• Window Manager                                             GNOME (GNU Network Object Model Environment)
                                                             KDE (K Desktop Environment)
    Is a special X Client
    Performs "windows dressing" on other clients            Advantages of Desktop Environments
    Allows other client windows to be moved, iconified
     and so forth                                             Integration (cut & paste via clipboard, drag & drop)
                                                              Common look (themes)
X Servers in Linux
                                                          Starting X
• Most distributions use XFree86 (www.xfree86.org) as
   their X Server                                         • If logged in on a text terminal, run startx
    Open Source                                              Only starts a single session
    Supports most video adapters                             When session ends, you are back in your text
                                                               terminal
• Other X Servers for Linux are available as well
                                                          • If you want to enable the graphical login screen, bring
    Metro-X (http://www.metrolink.com)                      the system into runlevel 5
    Xi Graphics (http://www.xig.com)
                                                              To switch manually use init 5 command
XFree86 Configuration
                                                              To make change permanent, edit
                                                                /etc/inittab: id:5:initdefault:
• XFree86 needs to be configured for your hardware
                                                          Choosing your Desktop Environment
    Keyboard



                                                                                                    26
• Most distributions provide multiple desktop environments   Bash Initialization with Redhat Extensions
• To choose between them, select from the Login prompt
• Every user can have his/her own preference
                                                             Bash Initialization with SuSE Extensions




                                                                    Unit 15 - Basic System Configuration
 Unit 14 - Customizing the User Environment
                                                             Why System Configuration
Bash Initialization (Login Shell)
                                                             • Most system configuration is done during installation
/etc/profile
$HOME/.bash_profile                                          • Might need to change system configuration afterwards:
-or- $HOME/.bash_login
-or- $HOME/.profile                                              Things not configured during installation
$ Bourne Again Shell
$HOME/.bash_logout
                                                                 Configuration failed during installation
                                                                 Environment changed after installation
Bash Initialization (non-Login Shell)
                                                             • Three ways to change system configuration

                                                                 Temporary - until next system reboot
                                                                 Manually - changing config files by hand
                                                                 Automated - using system administration tools

                                                             • Typical items to be configured on a workstation:

                                                                   Add/remove software
                                                                   Printers
                                                                   Sound Cards
                                                                   Network

                                                             System Configuration Tools

                                                             • Various tools have been developed to ease system
                                                                administration

                                                                   Application specific (Samba SWAT, ...)
                                                                   Distribution specific (redhat-config-*, SuSE yast, ...)
                                                                   Desktop Environment specific (gmenu, kcontrol, ...)
                                                                   Generic Linux/UNIX (webmin, ...)

                                                             Adding/Removing Software using RPM

                                                             • Use rpm to install or upgrade software packages


                                                                                                          27
Ibm system programming training   module 2 - linux basics
Ibm system programming training   module 2 - linux basics
Ibm system programming training   module 2 - linux basics
Ibm system programming training   module 2 - linux basics
Ibm system programming training   module 2 - linux basics

Mais conteúdo relacionado

Mais procurados

BITS: Introduction to linux, distributions and installation
BITS: Introduction to linux, distributions and installationBITS: Introduction to linux, distributions and installation
BITS: Introduction to linux, distributions and installationBITS
 
Desktop Virtualisation
Desktop VirtualisationDesktop Virtualisation
Desktop VirtualisationAdam Trickett
 
Introduction to Linux OS
Introduction to Linux OSIntroduction to Linux OS
Introduction to Linux OSMohammed Safwat
 
Introduction to GNU/Linux
Introduction to GNU/LinuxIntroduction to GNU/Linux
Introduction to GNU/LinuxRupam Das
 
What is Ubuntu - presentation
What is Ubuntu - presentationWhat is Ubuntu - presentation
What is Ubuntu - presentationAhmed Mamdouh
 
Linux – an introduction
Linux – an introductionLinux – an introduction
Linux – an introductionWingston
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linuxplarsen67
 
What is Linux, Ubuntu and Open Source?
What is Linux, Ubuntu and Open Source?What is Linux, Ubuntu and Open Source?
What is Linux, Ubuntu and Open Source?Jose Kont
 
Introduction to GNU/Linux
Introduction to GNU/LinuxIntroduction to GNU/Linux
Introduction to GNU/LinuxMd Safiyat Reza
 
Présentation ubuntu 12.10 PDF
Présentation ubuntu  12.10 PDFPrésentation ubuntu  12.10 PDF
Présentation ubuntu 12.10 PDFMohamed Ben Bouzid
 

Mais procurados (20)

Linux Introduction
Linux IntroductionLinux Introduction
Linux Introduction
 
BITS: Introduction to linux, distributions and installation
BITS: Introduction to linux, distributions and installationBITS: Introduction to linux, distributions and installation
BITS: Introduction to linux, distributions and installation
 
History of linux
History of linuxHistory of linux
History of linux
 
Linux technology
Linux technologyLinux technology
Linux technology
 
Linux basics 1/2
Linux basics 1/2Linux basics 1/2
Linux basics 1/2
 
Desktop Virtualisation
Desktop VirtualisationDesktop Virtualisation
Desktop Virtualisation
 
Intro to open_source
Intro to open_sourceIntro to open_source
Intro to open_source
 
Introduction to Linux OS
Introduction to Linux OSIntroduction to Linux OS
Introduction to Linux OS
 
Introduction to GNU/Linux
Introduction to GNU/LinuxIntroduction to GNU/Linux
Introduction to GNU/Linux
 
Linux introduction (eng)
Linux introduction (eng)Linux introduction (eng)
Linux introduction (eng)
 
What is Ubuntu - presentation
What is Ubuntu - presentationWhat is Ubuntu - presentation
What is Ubuntu - presentation
 
Linux – an introduction
Linux – an introductionLinux – an introduction
Linux – an introduction
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linux
 
What is Linux, Ubuntu and Open Source?
What is Linux, Ubuntu and Open Source?What is Linux, Ubuntu and Open Source?
What is Linux, Ubuntu and Open Source?
 
History of linux
History of linuxHistory of linux
History of linux
 
Foss History
Foss HistoryFoss History
Foss History
 
Linux Introduction
Linux IntroductionLinux Introduction
Linux Introduction
 
Introduction to GNU/Linux
Introduction to GNU/LinuxIntroduction to GNU/Linux
Introduction to GNU/Linux
 
Introduction to Ubantu
Introduction to UbantuIntroduction to Ubantu
Introduction to Ubantu
 
Présentation ubuntu 12.10 PDF
Présentation ubuntu  12.10 PDFPrésentation ubuntu  12.10 PDF
Présentation ubuntu 12.10 PDF
 

Semelhante a Ibm system programming training module 2 - linux basics

Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU Ahmed El-Arabawy
 
Introduction to Linux basic
Introduction to Linux basicIntroduction to Linux basic
Introduction to Linux basicf114n
 
introductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdf
introductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdfintroductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdf
introductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdfEidTahir
 
Introduction to linux ppt
Introduction to linux pptIntroduction to linux ppt
Introduction to linux pptOmi Vichare
 
Embedded Systems: Lecture 6: Linux & GNU
Embedded Systems: Lecture 6: Linux & GNUEmbedded Systems: Lecture 6: Linux & GNU
Embedded Systems: Lecture 6: Linux & GNUAhmed El-Arabawy
 
Linux basics
Linux basicsLinux basics
Linux basicsNAILBITER
 
Linux [2005]
Linux [2005]Linux [2005]
Linux [2005]Raul Soto
 
Linux Operating System. UOG MARGHAZAR Campus
 Linux Operating System. UOG MARGHAZAR Campus Linux Operating System. UOG MARGHAZAR Campus
Linux Operating System. UOG MARGHAZAR CampusSYEDASADALI38
 
Linux command ppt
Linux command pptLinux command ppt
Linux command pptkalyanineve
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systemsVandana Salve
 
Operating Systems: A History of Linux
Operating Systems: A History of LinuxOperating Systems: A History of Linux
Operating Systems: A History of LinuxDamian T. Gordon
 
Hillel kobrovski Linux security overview for ciso
Hillel kobrovski   Linux security overview for cisoHillel kobrovski   Linux security overview for ciso
Hillel kobrovski Linux security overview for cisoHillel Kobrovski
 

Semelhante a Ibm system programming training module 2 - linux basics (20)

Linux forensics
Linux forensicsLinux forensics
Linux forensics
 
Linux basics
Linux basicsLinux basics
Linux basics
 
Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU
 
Introduction to Linux basic
Introduction to Linux basicIntroduction to Linux basic
Introduction to Linux basic
 
introductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdf
introductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdfintroductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdf
introductiontolinuxpptbatch2-141025005514-conversion-gate01 (1).pdf
 
Introduction to linux ppt
Introduction to linux pptIntroduction to linux ppt
Introduction to linux ppt
 
Embedded Systems: Lecture 6: Linux & GNU
Embedded Systems: Lecture 6: Linux & GNUEmbedded Systems: Lecture 6: Linux & GNU
Embedded Systems: Lecture 6: Linux & GNU
 
Linux basics
Linux basicsLinux basics
Linux basics
 
Opensource technologies
Opensource technologiesOpensource technologies
Opensource technologies
 
Linux [2005]
Linux [2005]Linux [2005]
Linux [2005]
 
Linux Operating System. UOG MARGHAZAR Campus
 Linux Operating System. UOG MARGHAZAR Campus Linux Operating System. UOG MARGHAZAR Campus
Linux Operating System. UOG MARGHAZAR Campus
 
Linux command ppt
Linux command pptLinux command ppt
Linux command ppt
 
Linux
LinuxLinux
Linux
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systems
 
Before begining linux
Before begining linuxBefore begining linux
Before begining linux
 
Operating Systems: A History of Linux
Operating Systems: A History of LinuxOperating Systems: A History of Linux
Operating Systems: A History of Linux
 
Hillel kobrovski Linux security overview for ciso
Hillel kobrovski   Linux security overview for cisoHillel kobrovski   Linux security overview for ciso
Hillel kobrovski Linux security overview for ciso
 
A History of Linux
A History of LinuxA History of Linux
A History of Linux
 
Linux
LinuxLinux
Linux
 
Linux
LinuxLinux
Linux
 

Mais de Binsent Ribera

Spl prelim lab 2011 2012
Spl prelim lab 2011 2012Spl prelim lab 2011 2012
Spl prelim lab 2011 2012Binsent Ribera
 
COMELEC III - Bash unit 1 part 2
COMELEC III - Bash unit 1 part 2COMELEC III - Bash unit 1 part 2
COMELEC III - Bash unit 1 part 2Binsent Ribera
 
COMELEC III - Bash unit 1
COMELEC III - Bash unit 1COMELEC III - Bash unit 1
COMELEC III - Bash unit 1Binsent Ribera
 
Perl take home final exam
Perl take home final examPerl take home final exam
Perl take home final examBinsent Ribera
 
PERL Unit 6 regular expression
PERL Unit 6 regular expressionPERL Unit 6 regular expression
PERL Unit 6 regular expressionBinsent Ribera
 
PERL Regular Expression
PERL Regular ExpressionPERL Regular Expression
PERL Regular ExpressionBinsent Ribera
 

Mais de Binsent Ribera (9)

Syntax analysis
Syntax analysisSyntax analysis
Syntax analysis
 
Syntax analysis
Syntax analysisSyntax analysis
Syntax analysis
 
Spl prelim lab 2011 2012
Spl prelim lab 2011 2012Spl prelim lab 2011 2012
Spl prelim lab 2011 2012
 
COMELEC III - Bash unit 1 part 2
COMELEC III - Bash unit 1 part 2COMELEC III - Bash unit 1 part 2
COMELEC III - Bash unit 1 part 2
 
COMELEC III - Bash unit 1
COMELEC III - Bash unit 1COMELEC III - Bash unit 1
COMELEC III - Bash unit 1
 
Perl take home final exam
Perl take home final examPerl take home final exam
Perl take home final exam
 
PERL Unit 6 regular expression
PERL Unit 6 regular expressionPERL Unit 6 regular expression
PERL Unit 6 regular expression
 
PERL Regular Expression
PERL Regular ExpressionPERL Regular Expression
PERL Regular Expression
 
Linux IV - PERL
Linux IV - PERLLinux IV - PERL
Linux IV - PERL
 

Ibm system programming training module 2 - linux basics

  • 1. IBM System Programming Training Module 2 - Linux Basics Unit 1 – Introduction to Linux Effects of the License Model A Short History of Linux • Everybody has access to the source  Volunteer software development on the Internet, with central • 1984: Richard Stallman starts GNU project coordination GNU's Not UNIX  Linus Torvalds coordinates kernel development http://www.gnu.org  Others coordinate other pieces of the OS • Purpose: Free UNIX • Peer reviews possible "Free as in Free Speech, not Free Beer"  Security  Performance • First step: re-implementation of UNIX Utilities C compiler, C library • License cannot change emacs  So your changes (and name) will stay in forever bash • To fund the GNU project, the Free Software Foundation is founded Linux has become a Way of Life http://www.fsf.org • Culture • 1991: Linus Torvalds writes 1 version of Linux kernel st  Initially a research project about the 386 protected mode • Celebrities  Linus' UNIX -> Linux  Linus Torvalds  Combined with the GNU and  Richard Stallman  other tools forms a complete  Eric Raymond  UNIX system • Humor • 1992: First distributions emerge  User-friendly  Segfault  Linux kernel  GNU and other tools  Installation procedure • Mascot  Tux What's So Special About Linux? Linux Today • Most software (including the Linux kernel) is GPL'ed (GNU General • Linux covers the whole spectrum of computing Public License)  Embedded devices  http://www.gnu.org/copyleft/gpl.html  Laptops  Desktop systems • Is called "copyleft" (instead of "copyright")  Development systems  You may copy the software  Small and large servers  You get the source code  Megaclusters/supercomputers  You may alter the source code and recompile it  You may distribute the altered source and binaries  You may charge money for all this • Linux is used throughout the world and in space • You only may not change the license • Linux is used by home users and by some of the largest companies  So all your customers have the same rights as you in the world  So you really cannot make money from selling the software alone  IBM  Boeing • Other Open Source licenses (e.g. BSD) are also used  NASA 1
  • 2. Unit 2 - Installing Linux Partitioning Tools Preparing a System for Installation • PartitionMagic  Commercial program from PowerQuest • Know your hardware  Runs under MS-DOS and Windows  CPU, memory, keyboard, mouse  Can create/resize/move/delete partitions  Hard disks, CD-ROM players  Graphical adapters, monitor capabilities • GNU parted  Network adapters, IP addresses  Can create/resize/move/delete partitions  Printers  QTParted is a graphical frontend for parted • Is all your hardware supported? • fdisk  Linux Hardware-HOWTO  Virtually every PC OS (Windows, OS/2, Linux) comeswith a tool  Distributors Hardware Compatibility List "fdisk" to create partitions for that OS  Hardware manufacturer  If unsure, just try it! • Disk Druid, YaST and others  Partitioning programs integrated in install program • Make space for Linux partitions Installing Linux Know your Hardware • Boot system from bootable media • Obtain information from  All modern PCs can boot from CD-ROM directly  Manuals o Must be enabled in BIOS  Windows Control Panel  Otherwise boot from floppy • Some distributions require additional disks  All disk images are usually stored on the CD-ROM • After booting, install from:  Local CD-ROM/DVD  Local Hard Disk  Network Installation Steps • All installation programs need to perform essentially the same steps: 1. Choose language, keyboard type, mouse type Partitioning Theory 2. Create partitions 3. Set up a boot loader 4. Configure network • Partitioning is necessary on Intel-based computers 5. Configure users and authentication • Maximum of four primary partitions 6. Select package groups • One primary partition may be an extended partition 7. Configure X • An extended partition can hold an unlimited amount of logical 8. Install Packages partitions (but the OS may pose a limit anyway) 9. Create Boot Disk • Order of steps may vary from distribution to distribution • Other steps may also be included  e.g. firewall, printers, sound 2
  • 3. • Common Boot Loaders:  LILO: Linux Loader – text-based installation Select Language, Keyboard, Mouse  GRUB: GRand Unified Boot loader – GUI installation • Select the language to be used during installation process Configure Network  Different distributions support different languages • Most distributions configure your network adapter as part of the • Select the keyboard layout installation process  Different countries use different keyboard layouts  Ethernet  Dead (compose) keys allow you to input accented or special  Token Ring characters such as é, ç, ß and so forth. • Need the following information: • Select your mouse  IP address  A mouse can be connected using a PS/2, USB or serial  Subnet mask connector  Network address  If your mouse has only 2 buttons, you can emulate the third  Broadcast address (middle) button by clicking both buttons simultaneously  Hostname  Default router/gateway  DNS server addresses Install Class • May also be configured to use DHCP • Most distributions have default installation "classes" for typical users  Workstation  Laptop Configure Root and User Accounts  Server • root is the superuser of the system • A "custom" class allows you to make all decisions yourself  Can do anything  Packages to be installed  Needs a strong password  Various configuration options  Do not use your system as root unless you need to! • Most distributions allow you to add user accounts during installation Disk Partitioning too: • Linux installation requires you to create Linux partitions • Create a user account for every individual user that is going to use • At a minimum, create: / (root) – 750MB; /swap – 64 – 256MB the system • Recommended: /boot – 16MB Hint: You should enable shadow passwords and MD5 encryption if • May need/want to create other partitions: /usr, /usr/local, /var, /tmp, available for additional security. /opt, and /home Select Package Groups Configure a Boot Loader • Most distributions have grouped individual packages in package • Boot Loader loads and starts the Linux kernel groups  Can boot other operating systems as well OS/2, Windows, BeOS,  Give each OS a unique label! • Only select the package groups you need on your workstation • Selecting individual software packages is usually still possible but • Can be password protected tedious  Prevents users from passing boot parameters to Linux or booting  A typical distribution has over 1000 packages... any OS Configure X • Should generally be configured in the MBR, unless another boot loader is used 3
  • 4. • X (X Window System) is the graphical user interface of Linux Post-install Configuration • Needs to be configured for your system  Graphical adapter • After installation has finished, your system will reboot to activate the  Monitor newly installed kernel  SUSE will perform the reboot during installation • Most adapters and monitors can be auto detected  If not auto detected, select manually or use a "Generic" adapter • For almost all Linux distributions, this is the only reboot that is ever or monitor required • Usually customization allowed: • After reboot, some post-installation configuration may happen  Resolution  Configure graphics  Refresh rate  Configure sound card  Color Depth  Install documentation, updates, drivers  Create user accounts • Test settings if possible  Registration  If nothing works, skip X configuration Unit 3 - Using the System Other (Optional) Installation Screens Linux is Multi-user and Multitasking • Some distributions offer additional installation screens: • Linux is a multi-user, multitasking operating system  Printer configuration  Firewall configuration  Multiple users can run multiple tasks simultaneously,  Sound card configuration independent of each other  Modem configuration  Time Zone configuration • Always need to "log in" before using the system  Identify yourself with username and password • Usually straightforward • Multiple ways to log in to the system  Console: Directly attached keyboard, mouse, monitor Installing Packages  Serial terminal  Network connection • Installing packages may take 5 mins to several hours  Most distributions provide a progress bar and/or total time indication Virtual Terminals  Some distributions provide some entertainment while installing • In most Linux distributions, the console emulates a number of virtual • While installation is going on, various virtual terminals provide terminals information on the progress • Each virtual terminal can be seen as a separate, directly attached  Switch between Virtual Terminals using Ctrl-Alt-F1 to F6 (console console based) and Ctrl-Alt-F7 (GUI)  Different users can use different virtual terminals • Feed additional CD's when asked for • Typical setup:  VT 1 through 6: text mode logins  VT 7: graphical mode login prompt (if enabled) Create Boot Disk • Switch between VTs with Alt-Fn (or Ctrl-Alt-Fn if in X) • After installation, most distributions allow you to create a custom boot disk • Used to boot the system in case of LILO/GRUB/kernel problems Linux Commands • System specific to some degree • Everything on a Linux system can be done by typing commands (Even browsing the World Wide Web...) 4
  • 5. $ who –mu $ who -m u • The Graphical User Interface (X Window System or X) is not needed for running a Linux system Some Basic Linux Commands  But is sometimes more convenient • In order to be able to type commands in X, you need to start a • passwd - Change your password terminal emulator • mkpasswd - Generate a random password • date, cal - Find out today's date and displays a calendar • who, finger - Find out who else is active on the system • clear - Clear the screen Command Prompt • echo - Write a message to your own screen • write - Write a message to other screens • Command prompt indicates that the system is ready to accept • wall - Write a message to all screens commands • Can be configured yourself (will be covered later) • talk - Talk to other users on the system  Default depends on distribution • mesg - Switch on/off reception of write, wall and talk messages Examples: Changing your Password [user@host dir]$ dir$ • passwd command allows you to change your password $# $ passwd Changing password for tux1  dollar ($) usually means: "logged in as regular user" Old password:  hash (#) usually means: "logged in as root" New password: Retype new password: Linux Command Syntax • Passwords are important for security - choose a good password  Minimum six characters • Linux commands have the following format:  Not a dictionary word, birth date, license plate, ...  $ command option/s argument/s Examples: • mkpasswd command generates a random password $ ls $ ls -l $ ls /dev The date Command $ ls -l /dev • date shows the current date and time Command Format Examples $ date Fri Jun 6 11:15:10 CET 2003 RIGHT WRONG The cal Command 1. Separation $ mail -f personal $ mail - f personal • cal shows a calendar Syntax: cal [Month] [Year] $ who –u $ who-u $ cal 6 2003 June 2003 2. Order Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 $ mail -s test root $ mail test root -s 8 9 10 11 12 13 14 $ who –u $ -u who 15 16 17 18 19 20 21 22 23 24 25 26 27 28 3. Multiple options 29 30 $ who -m –u $ who -m-u Who is on the System? 5
  • 6. • who shows who is logged onto the system $ talk john $ who root tty1 Mar 5 11:10 tux1 tty2 Mar 5 11:04 $ who am i host!tux1 tty2 Mar 5 11:04 $ whoami tux1 The mesg Command Finding Information about Users • mesg command controls whether other users can send messages to finger command shows info about other users Syntax: finger you with the write, wall or talk command or through output [user][@host] redirection. $ finger Login Name Tty Idle Login Time tux1 Tux (1) 2 Mar 5 11:04 User tux1 at tty1: root root *1 7 Mar 5 11:10 $ mesg n $ finger tux1 User tux2 at tty2: Login: tux1 Name: Tux (1) Directory: /home/tux1 Shell: /bin/bash $ write tux1 tty1 On since Fri Mar 5 11:04 (CET) on tty2 write: tux1 has disabled messages on tty1 No mail. No plan. Keyboard Tips The clear, echo, write and wall Commands • <backspace> or <ctrl-h> - Corrects mistakes • clear command clears your screen • <ctrl-c> - Terminates the current command and returns to the $ clear shell • <ctrl-d> - End of transmission • echo command writes messages to your own screen • <ctrl-s> - Temporarily stops output to the screen • <ctrl-q> - Resumes output $ echo Who wants to go to lunch? Who wants to go to lunch? • <ctrl-w> - Erase last word • <ctrl-u> - Erase the entire line • write use to display a text message on a user's terminal • <tab> - Command or filename completion $ write tux2 • <arrow up> - Previous command Message <ctrl-d> # terminate • <arrow down> - Next command • <arrow left> - One character to the left • wall use to place a message on all logged in user's displays • <arrow right> - One character to the right $ wall • <shift page-up> - Look at the output of previous commands I'm back • <shift page-down> - Look at the output of later commands; <ctrl-d> # terminate eventually gets you back to the command prompt • <ctrl-r> - Search for a command in the command history Talk with Another User • If John wants to talk with Fred, John enters: Command History $ talk fred Command history also can be viewed with history command • If Fred also wants to talk with John, Fred enters: $ history 5 99 clear 6
  • 7. 999 wc .bash_profile Logging Out 1000 wc .bash_profile 1001 wc .bash_profile 1000 history • When finished working on a system, always log out  Other people might misuse your account Retrieving commands with "!" • In a text mode terminal, use logout, exit or ctrl-d • To retrieve commands, use !u • In a graphical mode terminal, use appropriate menus $ wc .bash_profile 16 23 238 .bash_profile Unit 4 - Working with Files and Directories • Redo previous: $ !-1 • A file is: wc .bash_profile  A collection of data 16 23 238 .bash_profile  A stream of characters or a "byte stream" or: $ !!  No structure is imposed on a file by the operating system • Redo command No. 999: $ !999 File Types Console Mouse Tips • On most distributions, the mouse also works in text mode  Left mouse button o Click: Mark start of selection o Drag: Mark selection  Middle mouse button o Click: Paste selection  Right mouse button Linux Filenames o Click: Mark end of selection • Should be descriptive of the content • Should use only alphanumeric characters UPPERCASE, lowercase, Locking number, @, _ • Should not include embedded blanks • When temporary leaving a system alone, always lock your terminal • Should not contain shell metacharacters: * ? > < / ; & ! [ ] | ' " ( ) { } Other people might misuse your account • Should not begin with + or - sign • Are case sensitive • In a text mode terminal, use vlock (lock your terminal) or vlock • Filenames starting with a . are hidden -a (lock the whole console) • The maximum number of characters for a filename is 255 • In a graphical mode terminal, use the menu, the "padlock" icon or Linux Pathnames xlock  Most screensavers support automatic locking too • Full pathnames:  Start from / (the root directory) • A locked terminal can only be unlocked with the users password • Relative pathnames:  Start from the present working directory 7
  • 8. Examples: working directory is /home/tux1 • With the rmdir (remove directory) command: $ rmdir /home/tux1/doc/mon_report (full) dirname doc/mon_report (relative) ../tux3/pgms/suba (relative) $ pwd ./test (a file in the /home/tux1 current dir) $ rmdir doc test ~/test (same as above) rmdir: doc: Directory not empty Note: directory must be empty! Example Directory Structure Working with Multiple Directories • Create and remove multiple directories simultaneously with the -p flag $ mkdir -p dir1/dir2/dir3 or $ mkdir dir1 dir2 dir3 $ rmdir -p dir1/dir2/dir3 or $ rmdir -r dir1 dir2 dir3 Where Am I? List the Contents of Directories • pwd command (print working directory) can be used to find out what your current working directory is: With the ls command: $ ls [dir/file] $ ls /home $ pwd tux1 tux2 tux3 /home/tux1 Important options: Change Current Directory -l long listing (more information) • With the cd (change directory) command: $ cd dirname -a lists all files (including hidden) -t lists files sorted by change date $ cd doc (relative) $ cd /home/tux1/doc (full) -R lists contents recursively $ cd ~tux1/doc (home) $ cd (Go to your home directory) $ cd .. (Go one directory up) The touch Command $ cd - (Go to previous directory) • touch command creates an empty file, or updates the modification time of an existing file Create Directories $ ls -l -rw-rw-r-- 1 tux1 penguins 512 Feb 24 11:10 docs • With the mkdir (make directory) command: $ mkdir dirname $ touch docs $ ls -l -rw-rw-r-- 1 tux1 penguins 512 Mar 5 15:37 docs $ mkdir /home/tux1/doc (full pathname) $ touch new $ cd /home/tux1 $ ls -l -rw-rw-r-- 1 tux1 penguins 512 Mar 5 15:37 docs $ mkdir doc (relative pathname) -rw-rw-r-- 1 tux1 penguins 0 Mar 5 15:37 new Removing Directories Copying Files 8
  • 9. • cp command copies files: cp [source/s] [target] Of cabbage - and kings - And why the sea is boiling hot - And whether pigs have wings." Copying one file to another: $ cp .bashrc bashrc.old Displaying Files Page by Page Copying multiple files into a target directory: • With the more or less commands: $ [less/more] $ cp doc/mon_report doc/walrus /tmp walrus "The time has come", the walrus said, • cp can recursively copy directories with the -R flag "To talk of many things: Of shoes - and ships - and sealing wax - $ cp -R /home/tux1/doc /tmp Of cabbage - and kings - And why the sea is boiling hot - And whether pigs have wings." To prevent cp from overwriting existing files, use: /tmp/test/walrus 1-6/6 (END) $ cp -R -i /home/tux1/doc /tmp cp: overwrite `/tmp/doc/walrus´? Displaying Binary Files Moving and Renaming Files • With the od command: • With the mv command: $ mv [source/s] [target] To move a file do another directory: • With the strings command: $ strings /usr/bin/passwd $ mv doc/walrus ../../tmp /lib/ld.so.1 __gmon_start__ To rename a file: __deregister_frame_info __register_frame_info $ mv doc documents ... • Use the -i option to prevent mv from overwriting existing files Removing Files • Moving and renaming files can be combined by mv: • With the rm command: $ rm test/rob $ cd $ pwd $ ls test/rob /home/tux1 ls: rob: No such file or directory mv /tmp/walrus ./test/rob • If unsure, use -i option To move a directory: $ rm -i test/rob $ mv ./test /tmp rm: remove `test/rob´? Note: mv is recursive by default • To remove files and directories recursively: $ rm -ir test/ Listing File Contents Splitting Files • With the cat (concatenate) command: $ cat file1 file2 ... • You can split a file into smaller files with the split command $ $ cat walrus split -b <bytes> file [prefix] "The time has come", the walrus said, $ ls -l "To talk of many things: -rw-r--r-- 1 root root 4194304 Feb 21 13:31 large Of shoes - and ships - and sealing wax - 9
  • 10. $ split -b 1024k large large. $ ls -l -rw-r--r-- 1 root root 4194304 Feb 21 13:31 large -rw-r--r-- 1 root root 1048576 Feb 21 13:33 large.aa -rw-r--r-- 1 root root 1048576 Feb 21 13:33 large.ab -rw-r--r-- 1 root root 1048576 Feb 21 13:33 large.ac -rw-r--r-- 1 root root 1048576 Feb 21 13:33 large.ad File Managers • Linux also offers different graphical file managers  Nautilus (GNOME)  Konqueror (KDE) Required Permissions Unit 5 - File and Directory Permissions Permissions Changing Permissions • File permissions are assigned to: • To change the permission of a file use the chmod command  owner of a file  members of the group the file is assigned to Syntax: chmod [MODE] [FILE/S]  all other users Mode can be symbolic • Permissions can only be changed by the owner and root $ chmod go-rx /home/tux1 $ ls -ld /home/tux1 drwx------ 4 tux1 users 512 Jan 5 12:43 /home/tux1 Viewing Permissions Mode can be octal: To show the permissions of a file, use the ls command with the -l option $ chmod 700 /home/tux1 $ ls -ld /home/tux1 drwx------ 4 tux1 users 512 Jan 5 12:43 /home/tux1 Changing Permissions • Calculating numeric (octal) mode: Permissions Notation 10
  • 11. umask • The -k option of the man command or the apropos command prints out a description of all entries which match the given keyword • New files should not be created with 666, to avoid this problem a permission mask exists. Syntax: $ umask 022 man Sections • Manual pages are divided in 9 sections: 1. User commands 2. System calls 3. Libc calls 4. Devices 5. File formats and protocols Unit 6 - Linux Documentation 6. Games 7. Conventions, macro packages and so forth 8. System administration The man Command 9. Kernel • Certain subjects appear in multiple sections • With the man command you can read the manual page of commands. • To select correct section, add section number: • Manual pages are stored in /usr/share/man  man 1 passwd (about the passwd command) • The manual page consists of:  man 5 passwd (about the passwd file)  Name - The name of the command and a one-line description  Synopsis - The syntax of the command The info Command  Description - Explanation of how the command works and what it does  Files - The files used by the command • Sometimes a replacement for manual pages • Widely used by the GNU project  Bugs - Known bugs and errors  See also - Other commands related to this one • Information for info is stored in /usr/share/info Example Manual Pages Some info commands: space next screen of text del or bs previous screen of text n next node p previous node q quit info The --help Option 11
  • 12. • Another way of getting help about a command • All Linux directories are contained in one, virtual, "unified file • Help is built in the command itself (if supported) system" • Physical devices are mounted on mount points HOWTO Documents  Floppy disks  Hard disk partitions • Documents which describe in detail a certain aspect of configuring or  CD-ROM drives using Linux. No drive letters like A:, C:, ... • Detailed information about how to perform a given task  Install PCMCIA support  Kernel compilation  Dual boot with other operating systems • HOWTO documents are text files in /usr/share/doc/HOWTO Need to be installed manually • /bin - contains executables for every user • On the Internet: http://www.tldp.org/index.html Other Documentation • /sbin - contains system administration executables • Certain programs also offer other kinds of documentation • /lib - contains libraries  HTML  PostScript • Should always be available  Plain Text  At system boot  In single user mode • Usually stored in /usr/share/doc/<programname>  When booting from rescue disk • /boot - contains kernel image and some other goodies • /dev - Contains special files that represent hardware devices On the Internet  Block special device, for example, a hard disk  Character special device, for example, mouse and keyboard • All Linux documentation is available on the Internet. • Google: http://www.google.com/linux • Each device has a major and minor number • Other sites:  Identification within the kernel  http://www.tldp.org  http://www.linux.org • /etc - contains system-wide configuration files  http://www.redhat.com   http://www.suse.com http://www.xfree86.org • Some subsystems have multiple files and therefore use a separate  http://www.kernel.org directory  http://lwn.net  and many more  /etc/X11 contains X Window System configuration  /etc/skel contains default user configuration files • Usenet news:  comp.os.linux.*  /etc/sysconfig contains system configuration  Country-specific groups • /home - home directories of users Unit 7 - Directory Structure • /mnt - mount points for other file systems Note: SUSE uses /media instead of /mnt for floppy and cdrom mount points 12
  • 13. • /proc - virtual file system that represents kernel and process information • /root - home directory of the root user • /tmp - temporary storage space for programs, users and usually automatic cleanup mechanism active • /usr (UNIX System Resources)  Contains all programs, libraries and so on which are not essential for system boot and emergency operations Typical File System Layout  /usr/local intended for programs not in the distribution o locally developed o locally compiled • /var  Files of variable size o logfiles o lockfiles  Directories with variable content o mail o scheduling o printing  Temporary storage space, longer than /tmp The mount Command • /lost+found  Exists in every file system • mount command mounts a file system  Place where lost+found files are stored after a crash  Makes it part of the unified file system structure recovery by fsck mount [-t type] [-o opts] device mountpnt Other Directories in / # mount /dev/hda5 /usr • /opt - used for some software from external providers  Separate file system advisable • Whatever you create yourself. Virtual and Unified File System The umount Command • Linux does not use drive letters (A:, C:, D:) to identify drives/partitions, but creates a virtual, unified file system • umount command unmounts a file system • Different drivers/partitions are "mounted" on a "mount point"  Takes it out of the unified file system structure  File system should not be busy 13
  • 14. $ file /etc/passwd Syntax: umount {device|mountpnt} /etc/passwd: ASCII text $ file /usr/bin/passwd # umount /dev/hda5 or # umount /usr /usr/bin/passwd: ELF 32-bit LSB executable The /etc/fstab File • To edit text files, use an editor • Non-text files can only be changed using the application that created them, or with a "hex editor" • /etc/fstab lists all known filesystems on the system Syntax: device mountpoint type options dump fsck • But most configuration files under Linux are text files • File systems with the noauto option are not mounted automatically The "vi" Text Editor but can be used as templates for mount • Default editor in all UNIX operating systems • Usually the only editor available in emergencies • Relatively hard to learn, but really powerful • As a Linux user, you should be able to use vi for basic editing tasks  But it's OK if you prefer another editor for daily work • vi in Linux is usually vim (vi improved):  Syntax highlighting  Arrow keys, Del, BS work in insert mode Note: Some distributions use file system labels instead of device names.  Multi level undo  Mouse support Mounting and Unmounting Removable Media vi Modes • Most distributions configure /etc/fstab so that the console user is allowed to mount removable media (floppy, cd) on a predetermined • vi knows three modes of operation mountpoint and with predetermined options (for security)  Command mode (for simple, one-letter commands)  Edit mode (insert text) • Always unmount media before ejecting  ex mode (for complicated commands) • GUI typically offers icons that perform the mount • Can easily change between modes $ whoami tux1 $ mount /mnt/cdrom $ mount . /dev/cdrom on /mnt/cdrom type iso9660 (ro,nosuid,nodev,user=tux1) . $ ls /mnt/cdrom Cursor Movement in Command Mode . $ umount /mnt/cdrom Unit 8 - Editing Files Editing Files • Use file command to determine the content of a file 14
  • 15. Editing Text in Command Mode Searching for Patterns • x - To delete a single character under cursor x • X - To delete a single character left of cursor X • /pattern - To search for a pattern (in command mode) • r -To replace a single character r • n - To repeat the previous search • u - Undo the last change u • . - To repeat last command • J - To join two lines together Switching to Edit Mode • I - To insert text at begin of line • i - To insert text before cursor • a - To append text after cursor • A - To append text at end of line Replacing Patterns • <ESC> - To go back to command mode • Advanced search and replace can be done in ex mode • :1,$s /old/new/g - To replace old with new Adding Text in Edit Mode • Keystroke "i" switches vi to edit mode. • New characters can be inserted at the current position of the cursor Cut, Copy and Paste • dd - To cut a whole line into buffer • yy - To copy a whole line into buffer • dw - To cut a word from the current cursor position to its end • p -To paste contents of buffers here Exiting the Edit Mode • 3dd, 8yy - To cut, copy multiple lines, precede command by number • Keystroke "ESC" leaves the edit mode. Cut and Paste 15
  • 16. Text mode editors  pico (really simple)  Original vi  emacs (even more powerful and complicated than vi) Graphical mode editors  kedit, kwrite  gedit vi Options  Hex editors allow you to change non-text files if you know the internal structure • Options entered in ex mode change the behavior of the vi editor: Khexedit :set all :set autoindent/noautoindent :set number/nonumber Unit 9 - Shell Basics :set list/nolist :set showmode/noshowmode The Shell :set tabstop=x :set ignorecase/noignorecase :set wrapmargin=x • Shell is the user interface to Linux :set tx/notx :set hlsearch/nohlsearch :syntax on/off • To make these options available to all vi sessions, put it into a .exrc or .vimrc file in your HOME-directory Exiting vi • ZZ - To save and exit in command mode • :w - To save in ex mode • :w! - To forcefully save file in ex mode • :q - To quit without saving in ex mode • :q! - To forcefully exit in ex mode • :wq - To save and exit in ex mode (recommended) Shell Features • :x - To save and exit in ex mode, shorter • When the user types a command, various things are done by the shell before the command is actually executed: vi Cheat Sheet  Wildcard expansion *?[]  Input/Output redirection < > >> 2>  Command grouping { com1 ; com2; }  Line continuation  Shell variable expansion $VAR  Alias expansion dir -> ls -l  Shell scripting #!/bin/bash Other Editors • For example, the ls *.doc command could be expanded to /bin/ls -- color=tty mydoc.doc user.doc before execution (depending on • A typical Linux distribution comes with a large number of editors. settings and files present) Metacharacters and Reserved Words Examples: 16
  • 17. Metacharacters are characters that the shell interprets ashaving a • Other descriptors are assigned by the program when it opens files special meaning. • Reserved words are words that the shell interprets as special commands. Input Redirection • Default Standard Input: $ cat Amsterdam Basic Wildcard Expansion Amsterdam Utrecht • When the shell encounters a word which contains a wildcard, it tries Utrecht <ctrl-d> to expand this to all matching filenames in the given directory • STDIN redirected from file: $ cat < cities Amsterdam Utrecht $ Output Redirection • Default Standard Output: /dev/tty $ ls file1 file2 file3 • Redirect output to a file: Advanced Wildcard Expansion $ ls > ls.out • wildcards [, ], - and ! match inclusive lists: • Redirect and append output to a file: $ ls >> ls.out • Create a file with redirection: $ cat > new_file Save this line <Ctrl-D> Error Redirection • Default Standard Error: /dev/tty $ cat filea cat: filea: No such file or directory File Descriptors • Redirect error output to a file: • Every program has a number of file descriptors associated with it $ cat filea 2> error.file • Three descriptors are assigned by the shell when the program starts $ cat error.file cat: filea: No such file or directory (STDIN, STDOUT and STDERR) 17
  • 18. Redirect and append errors to a file: • sed - Allows string substitutions $ cat filea 2>> error.file • awk - Pattern scanning and processing • fmt - Insert line wraps so text looks pretty • Discard error output: • tac - Display lines in reverse order $ cat filea 2> /dev/null • tr - Substitute characters • grep - Only displays lines that match a pattern Combined Redirection • nl - Number lines • pr - Format for printer • sort - Sort the lines in the file Split Output • tee command reads standard input and sends the data to both standard out and a file. $ ls | wc -l 3 $ ls | tee ls.save | wc -l 3 $ cat ls.save file1 file2 file3 Pipes Command Substitution • A sequence of two or more commands separated by a vertical bar (|) is called a pipe or pipeline • Command Substitution allows you to use the output of a $ ls -l | wc -l command as arguments for another command. • Use backticks (`) or $() notation: • The standard output of command1 becomes the standard input of command2 $ rm -i `ls *.doc | grep tmp` $ echo There are $(ps ax | wc -l) processes running. Command Grouping • Multiple commands can be entered on the same line, separated by a semicolon (;) Filters • Commands can be grouped into one input/output stream by putting curly braces around them: • Filter is a command that reads from standard in, transforms the input in some way and writes to standard • Commands can be executed in a sub shell by putting out. round braces around them: • They can, therefore, be used at intermediate points in a $ date ; pwd pipeline. $ ( echo Print date: ; date ; cat cities ) | lpr $ { echo Print date: ; date ; cat cities; } | lpr $ ls | grep .doc | wc -l 4 Shell Variables Common Filters • Variables are part of the environment of a process • expand, unexpand - Change tabs to spaces and vice • A variable has a unique name versa • The first character must not be a digit. 18
  • 19. To assign a value to a variable use: variable=value • A command returns a value to the parent process. By convention, zero means success and a non-zero value $ VAR1="Hello class" $ VAR2=2 means an error occurred. • A pipeline returns a single value to its parent Referencing Shell Variables • The environment variable ? contains the return code of the previous command. • To reference the value of a variable, use: $variable $ whoami $ echo $VAR1 tux1 Hello class $ echo $VAR2 $ echo $? 2 0 $ cat filea Exporting Shell Variables cat: filea: No such file or directory $ echo $? • The export command is used to pass variables from a 1 parent to a child process. Quoting Metacharacters • Changes made to variables in a child process do not affect the variables in its parent. • When you want a metacharacter NOT to be interpreted $ export x=4 by the shell, you need to quote it $ bash • Quoting a single character is done with the backslash () $ echo $x 4 • Quoting a string is done with single (') or double (") quotes $ x=100 $ echo $x • Double quotes allow interpretation of $, `(backtick) and 100 $ echo The amount is US$ 5 $ exit The amount is US$ 5 $ echo $x $ amount=5 4 $ echo 'The amount is $amount' Standard Shell Variables The amount is $amount $ echo "The amount is $amount" • The shell uses several shell variables internally The amount is 5 • These variables are always written in uppercase Quoting Non-Metacharacters Example: • The backslash can also be used to give a special  $ - PID of current shell meaning to a non-metacharacter (typically used in  PATH - Path which is searched for executables regular expressions)  PS1 - Primary shell prompt  PS2 - Secondary shell prompt n = newline t = tab  PWD - Current working directory b = bell  HOME - Home directory of user  LANG - Language of user • A backslash followed directly by Enter is used for line continuation • Overwriting these variables by accident can cause unexpected results • The continued line is identified with the $PS2 prompt (default: >) • Always use lowercase variables in your own shell scripts to avoid conflicts $ cat/home/john/mydir/mysudir/data/information/letter > /pictures/logo.jpg Return Codes from Commands Aliases 19
  • 20. The alias command allows you to set up aliases for often-used commands Examples: $ alias ll='ls -l' $ alias rm='rm -i' • To show all currently defined aliases: $ alias • To delete an alias: Parents and Children $ unalias ll $ echo $$ $ ll 561 bash: ll: command not found $ bash $ echo $$ 675 Unit 10 - Working with Processes $ date What is a Process? Thu Mar 25 22:28:21 CET 1999 $ <ctrl-d> • A program is an executable file $ echo $$ • A process is a program which is being executed 561 • Each process has its own environment: Monitoring Processes • The ps command displays process status information • To see the PID of your current shell process type: $ echo $$ • ps supports a large number of options - you typically use ps aux: Starting and Stopping a Process  a - all processes attached to a terminal • All processes are started by other processes  x - all other processes Parent/Child relationship  u - provides more columns $ ls –l • options are typed without a leading "-" ! Viewing Process Hierarchy • pstree shows process hierarchy • A process can be terminated because of two reasons: • The process terminates itself when done • The process is terminated by a signal from another process Login Process Environment 20
  • 21. Controlling Processes Kill Signals • Processes can be controlled in two ways: • Several signals can be sent to a process  From the shell that started it, using its job number  From anywhere else on the system, using its PID  Using keyboard interrupts (if foreground process)  Using the kill command Actions that can be performed on a running process: Synopsis: kill -signal PID  Terminate  Kill  Using the killall command to kill all named  Stop/Continue apps Synopsis: killall -signal application • These actions are performed by sending signals • Most important signals: Starting Processes • Foreground processes are invoked by simply typing a command at the command line. $ find / -name README Running Long Processes • The nohup command will stop a process from being • Background processes are invoked by putting an "&" killed if you log off the system before it completes, by at the end of the command line intercepting and ignoring the SIGHUP and SIGQUIT $ find / -name README & (hangup and quit) signals $ nohup find / -name README & nohup: appending output to `nohup.out´ $ logout Managing Process Priorities Job Control in the Bash Shell • Processes are scheduled according to priority  <ctrl-z> - suspends foreground task  jobs - lists background or suspended jobs  fg - resume suspended task in the foreground  bg - resume suspended task in the background Specify a job number for bg, fg and kill using %job 21
  • 22. Daemons The nice Command • The word "Daemon" refers to a never-ending process, usually a system process that controls a system • The nice command is used to start a process with a resource such as the printer queue or performs a user defined priority network service $ nice [-n <value>] <original command> The renice Command The renice command is used to change the priority of a Unit 11 - Linux Utilities currently running process The find Command $ renice <new_priority> <PID> • Search one or more directory structures for files that meet certain specified criteria • Display the names of matching files or execute commands against those files Syntax: $ find path expression Sample Directory Structure Integrated Process Management • Various integrated tools exist for process management top, gpm, kpm • Availability depends on distribution 22
  • 23. Using find • Generally, you want to search a directory structure for files with certain names and list the names found. $ cd /home/joe find Examples $ find . -name phone ./shape/phone ./phone • On many other UNIX systems, with find you have to tell it specifically to print the names using -print $ find . -name phone -print ./shape/phone ./phone Executing Commands with find locate Command • The -exec option executes a command on each of the file names found. • locate allows you to quickly find a file on the system, $ find . -name 'b*' -exec ls -i {} ; based on simple criteria 187787 ./color/blue 187788 ./color/brown $ locate passwd 187792 ./shape/box /usr/share/man/man1/passwd.1.gz 202083 ./size big /usr/share/man/man5/passwd.5.gz 132754 ./blues /etc/passwd /usr/bin/passwd • " { } " is a placeholder for each filename. • The backslash escapes the following semicolon. • Requires that the superuser runs updatedb regularly  Most distributions run updatedb automatically Interactive Command Execution  SuSE does not install locate/updatedb by default • The -ok option also causes command execution but on The cut Command an interactive basis: • Pull selected columns or fields from one or more files. $ find . -name b* -ok rm {} ; < rm ... ./color/blue > ? y Syntax: cut -f(ields) -d(elimiter) file(s) < rm ... ./color/brown > ? y cut -c(haracters) file(s) < rm ... ./shape/box > ? y < rm ... ./size/big > ? y < rm ... ./blues > ? y Additional find Options 23
  • 24. Patterns with metacharacters should be in single quotes (' ') so that the shell will leave it alone • Valid metacharacters with grep: $ . * ^ [ - ]  . - Any single character  * - Zero or more occurrences of the preceding character The grep Command  [a-f] - Any ONE of the characters in the range a through f • Searches one or more files or standard input for lines  ^a - Any line that starts with a matching pattern  z$ - Any line that ends with z • Simple match or Regular Expression grep Options Syntax: grep [options] pattern [file1 ...] -v - Print lines that do not match -c - Print only a count of matching lines -l - Print only the names of the files with matching lines grep Sample Data Files -n - Number the matching lines -i - Ignore the case of letters when making comparisons -w - Do a whole word search -f <file> - Read expressions from file instead of command line Other greps • fgrep allows only fixed strings (no regular expressions) • egrep allows for multiple (alternate) patterns $ egrep '20500|40599|50599' phone1 Judith 20500 intern Leo 40599 extern Nannie 50599 extern The sort Command • The sort command sorts the lines in the file specified Basic grep and writes the result to standard output Syntax: sort -t(delimiter) +field -options file $ cat animals dog.2 cat.4 penguin.10 $ sort animals cat.4 dog.2 penguin.10 $ sort +0.1 animals cat.4 penguin.10 dog.2 $ sort -t. +1 animals penguin.10 grep with Regular Expressions dog.2 24
  • 25. cat.4 /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked, stripped $ sort -t. -n +1 animals /home/peter: directory dog.2 /tmp/fake.jpg: PDF document, version 1.3 cat.4 penguin.10 The gzip, gunzip and zcat Commands Options: To compress or uncompress files use gzip, gunzip or zcat -d - sorts in dictionary order. Only letters, digits and spaces are considered in comparisons -r - reverses the order of the specified sort -n - sorts numeric fields in arithmetic value The head and tail Commands • The head command can be used to view the first few lines of a file or files. The command syntax is: Syntax: $ head [-lines] file(s) • The tail command displays the last few lines of a file or files. The join and paste Commands • The command syntax is: $ tail [{-lines|+lines|-f}] file(s) • join and paste combine files $ head -5 myfile $ ls -l | head -12 $ tail -20 file $ tail +20 file $ tail -f file The type, which and whereis Commands • To find out what the path to a command is, use type $ type find echo find is /usr/bin/find echo is a shell builtin • To find out where the binary is located, use which The Linux Graphical User Interface $ whereis find echo • The "X Window System" is the GUI of Linux find: /usr/bin/find /usr/man/man1/find.1 echo: /bin/echo /usr/man/man1/echo.1 Developed at MIT in 1984  Current standards body: X Consortium • To locate the binary, source and manual page files of a  Shortname: X command, use whereis • X uses client-server model with network connections $ which find echo /usr/bin/find  Highly flexible /bin/echo  Easy exchange of components  Supports networked applications and sessions, The file Command independent of the OS • With the file command, you can find out what the type of data in the file is. $ file /etc/passwd /bin/ls /home/peter /tmp/fake.jpg /etc/passwd: ASCII text 25
  • 26.  Mouse  Graphical adapter  Monitor • Things to configure: refresh rate, resolution, color depth • Config file: /etc/X11/XF86Config • Manual configuration possible, but hard  See XFree86-HOWTO for details X Components • Automated configuration tools available: • X Server  During installation of distribution  Controls keyboard, mouse and one or more screens  XFree86 tools: xf86config, X -configure  Controls resolution, refresh rate and color depth  Distribution tools: redhat-config-xfree86 (Red Hat  Allows simultaneous access by several clients  and Fedora), sax2/yast2 (SuSE)  Performs basic graphic operations  Forwards keyboard and mouse events to the correct Desktop Environments clients • Desktop Environment is:  A set of tools, libraries and standards that allows rapid development of X clients • X Client  A set of X clients (including one or more window managers) that are developed with these tools,  Is for instance an application libraries and standards  Receives keyboard and mouse inputs from server  Sends output to be displayed to server Examples: • Window Manager GNOME (GNU Network Object Model Environment) KDE (K Desktop Environment)  Is a special X Client  Performs "windows dressing" on other clients Advantages of Desktop Environments  Allows other client windows to be moved, iconified and so forth  Integration (cut & paste via clipboard, drag & drop)  Common look (themes) X Servers in Linux Starting X • Most distributions use XFree86 (www.xfree86.org) as their X Server • If logged in on a text terminal, run startx  Open Source  Only starts a single session  Supports most video adapters  When session ends, you are back in your text terminal • Other X Servers for Linux are available as well • If you want to enable the graphical login screen, bring  Metro-X (http://www.metrolink.com) the system into runlevel 5  Xi Graphics (http://www.xig.com)  To switch manually use init 5 command XFree86 Configuration  To make change permanent, edit /etc/inittab: id:5:initdefault: • XFree86 needs to be configured for your hardware Choosing your Desktop Environment  Keyboard 26
  • 27. • Most distributions provide multiple desktop environments Bash Initialization with Redhat Extensions • To choose between them, select from the Login prompt • Every user can have his/her own preference Bash Initialization with SuSE Extensions Unit 15 - Basic System Configuration Unit 14 - Customizing the User Environment Why System Configuration Bash Initialization (Login Shell) • Most system configuration is done during installation /etc/profile $HOME/.bash_profile • Might need to change system configuration afterwards: -or- $HOME/.bash_login -or- $HOME/.profile  Things not configured during installation $ Bourne Again Shell $HOME/.bash_logout  Configuration failed during installation  Environment changed after installation Bash Initialization (non-Login Shell) • Three ways to change system configuration  Temporary - until next system reboot  Manually - changing config files by hand  Automated - using system administration tools • Typical items to be configured on a workstation:  Add/remove software  Printers  Sound Cards  Network System Configuration Tools • Various tools have been developed to ease system administration  Application specific (Samba SWAT, ...)  Distribution specific (redhat-config-*, SuSE yast, ...)  Desktop Environment specific (gmenu, kcontrol, ...)  Generic Linux/UNIX (webmin, ...) Adding/Removing Software using RPM • Use rpm to install or upgrade software packages 27