免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1368 | 回复: 0
打印 上一主题 下一主题

Linux Shortcuts and Commands [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-26 12:18 |只看该作者 |倒序浏览

       
       
       
       
       
       
       
       
Linux
Shortcuts and Commands
       
               
                Table of Content

       
        Linux
        Shortcuts and Commands        1
        1
        Notes for the UNIX Clueless        2
        2
        Linux essential keyboard shortcuts and sanity commands        3
        3
        Help commands        7
        4
        System info        9
        5
        Basic operations        15
        6
        File management        16
        7
        Viewing and editing files        18
        8
        Finding files        20
        6.9
        Basics of X-windows        21
        10
        Network apps        22
        11
        File (de)compression        25
        12
        Process control        26
        13
        Some administration commands        28
        14
        Hard Drive/Floppy Disk Utilities        34
        15
        Management of user accounts and files permissions        36
        16
        Program installation        39
        17
        Accessing drives/partitions        41
        18
        Network administration tools        41
        19
        Music-related commands        44
        20
        Graphics-related commands        45
        21
        Small games        48
Intro. This is a practical
selection of the commands we use most often, find useful, and which
came on our Linux distribution CDs (RedHat or Mandrake). Press
on the empty command line to see the listing of all available
commands (on your PATH). On my small home system, it says there are
3786 executables on my PATH. Many of these "commands" can
be accessed from your favourite GUI front-end (probably KDE or Gnome)
by clicking appropriate menu, icon, or button. They can all be run
from the command line (unless you didn't install the package, but
they all came on my Linux CDs). Programs that require GUI have to be
run from under the GUI, for example from a terminal opened in kde or
gnome (e.g., konsole
or xterm).
Some more advanced (less useful for a newbie?) tools are described in
the Part Learning with Linux of this Guide.
1 Notes for
the UNIX Clueless

  • LINUX IS
                    CASE-SENSITIVE. For example: Mozilla, MOZILLA, mOzilla, and mozilla
                    would be four different commands (but of the four, only mozilla is
                    available on my system). Also my_filE,my_file, and my_FILE are
                    three different files. Your user login name and password are also
                    case sensitive. (This goes with the tradition of UNIX and the "c"
                    programming language being case sensitive.)
                   

  • Filenames can be up
                    to 256 characters long and can contain letters, numbers, "."
                    (dots), "_" (underscores), "-" (dashes), plus
                    some other non-recommended characters.
                   

  • Files with names
                    starting with "." are normally not shown by the ls (list)
                    or dir command. Think of these "dot" files as "hidden".
                    Use ls -a (list with the option "all") to see these
                    files.
                   

  • "/" is an
                    equivalent to DOS "\" (root directory, meaning the parent
                    of all other directories, or a separator between a directory name
                    and a subdirectory or filename). For example, try cd /usr/doc.
                   

  • Under Linux, all
                    directories appear under a single directory tree (there are no
                    DOS-style drive letters). This means directories and files from all
                    physical devices (plus network filesystems) are merged into this
                    single-view tree.
                   

  • In a configuration
                    file, a line starting with # is a comment. When changing a
                    configuration file, don't delete old settings--comment out the
                    original lines with #. Always insert a short comment describing
                    what you have done (for your own benefit!).
                   

  • Linux is inherently
                    multi-user. Your personal settings (and all other personal files)
                    are in your home directory which is /home/your_user_login_name.
                    Many settings are kept in files with names starting with a dot
                    "."so as to keep them out of your way (see point 3
                    above). You have to login to do anything.
           

  • System-wide settings
                    are kept in the directory /etc .
                   

  • Under Linux, as in
                    any multiuser operating system, directories and files have an owner
                    and a set of permissions. You will typically be allowed to write
                    only to your home directory which is /home/your_user_login_name.
                    Learn to use the file permissions else you will be constantly
                    annoyed with Linux.
                   

  • Command options are
                    introduced by a dash, "-", followed by a single letter
                    (or -- when the option is more than one letter). Thus "-"
                    is an equivalent of DOS's switch "/". For example, try rm
                    –help.
                   

  • Type command&
                    (the command name followed by an &) to start a command in the
                    background. This is usually the preferred way of starting a program
                    from the X-window terminal.
           
    2 Linux
    essential keyboard shortcuts and sanity commands
    Switch to the first text
    terminals. Under Linux you can have several (6 in standard setup)
    terminals opened at the same time. This is a keyboard shortcut, which
    means: "press the control key and the alt key, hold them. Now
    press .
    Release all keys."
    (n=1..6)
    Switch to the nth text
    terminal. (The same could be accomplished with the rarely used
    command chvt
    n. "chvt" stands for "change
    virtual terminal"). In text terminal (outside X), you can also
    use
    (the key
    is not needed).
    tty
    Print the name of the
    terminal in which you are typing this command. If you prefer the
    number of the active terminal (instead of its name), it can be
    printed using the command fgconsole
    (="foreground console").
    Switch to the first GUI
    terminal (if X-windows is running on the 7th terminal, where it
    typcially is).
    (n=7..12)
    Switch to the nth GUI
    terminal (if a GUI terminal is running on screen n-1). On default,
    the first X server is running on terminal 7. On default, nothing is
    running on terminals 8 to 12--you can start subsequent X server
    there.
    (In a text or X terminal)
    Autocomplete the command if there is only one option, or else show
    all the available options. On newer systems you may need to press
    .
    THIS SHORTCUT IS GREAT, it can truly save you lots of time.
    (In a text or X terminal)
    Scroll and edit the command history. Press
    to execute a historical command (to save on typing).
    scrolls back.
    Scroll terminal output up.
    This works also at the login prompt, so you can scroll through your
    bootup messages. The amount/usage of your video memory determines how
    far back you can scroll the display.
    scrolls the terminal output down.
    (in X-windows) Change to
    the next X-server resolution (if you set up the X-server to more than
    one resolution). For multiple resolutions on my standard SVGA
    card/monitor, I have the following line in the file
    /etc/X11/XF86Config
    (the first resolution starts on default, the largest resolution
    determines the size of the "virtual screen"):
    Modes
    "1024x768" "800x600" "640x480"
    "512x384" "480x300" "400x300"
    "1152x864"Z
    Of course, first I had to
    configure the X server, either by using Xconfigurator,
    xf86config,
    or manually by edition the file /etc/X11/XF86Config,
    so that it supports the above resolutions (mostly the matter of
    uncommenting the line that defines my video chipset, and specifying
    the synchronization frequencies my monitor supports). XFdrake
    (Mandrake configuration utility) can do it from GUI. See also the
    commands xvidtune
    and xvidgen.
    (in X-windows) Change to
    the previous X-server resolution.
    (in X-windows, KDE) Kill
    the window I am going to click with my mouse pointer (the pointer
    changes to something like a death symbol). Similar result can be
    obtained with the command xkill
    (typed in X-terminal). Useful when an X-window program does not want
    to close (hangs?).
    (in X-windows) Kill the
    current X-windows server. Use if the X-windows server cannot be
    exited normally.
    (in text terminal) Shut
    down the system and reboot. This is the normal shutdown command for a
    user at the text-mode console. Don't just press the "reset"
    button for shutdown!
    c
    Kill the current process
    (works mostly with small text-mode applications).
    d
    (pressed at the beginning
    of an empty line) Log out from the current terminal. See also the
    next command.
    d
    Send [End-of-File] to the
    current process. Don't press it twice else you also log out (see the
    previous command).
    s
    Stop the transfer to the
    terminal.
    q
    Resume the transfer to the
    terminal. Try if your terminal mysteriously stops responding. See the
    previous command.
    z
    Send the current process to
    the background.
    exit
    Logout. I can also use
    logout for the same effect. (If you have started a second shell,
    e.g., using bash, this command will make you exit the second shell,
    and you will be back in the first shell, not logged out. Then use
    another exit to logout.)
    reset
    Restore a screwed-up
    terminal (a terminal showing funny characters) to default setting.
    Use if you tried to "cat" a binary file. You may not be
    able to see the command as you type it, but it still will work.
    Paste the text which is
    currently highlighted somewhere else. This is the normal "copy-paste"
    operation in Linux. It a fast and powerful supplement to the
    widely-known GUI "copy-paste" menu-based operation. (It
    doesn't work inside older versions of Netscape which use the Mac/MS
    Windows-style "copy-paste" exclusively. It does work in the
    text terminal if you enabled "gpm" service using "setup".
    It also works inside any dialog boxes, etc.--really convenient!) It
    is best used with a Linux-ready 3-button mouse (Logitech or similar)
    or else set "3-mouse button emulation". The
    is normally emulated on a 2-button mouse by pressing both mouse
    buttons simultaneously.
    ~
    (tilde character) My home
    directory (normally the directory /home/my_login_name). For example,
    the command cd ~/my_dir will change my working directory to the
    subdirectory "my_dir" under my home directory. Typing just
    "cd" alone is an equivalent of the command "cd ~".
    I keep all my files in my home directory.
    .
    (dot) Current directory.
    For example, ./my_program will attempt to execute the file
    "my_program" located in your current working directory.
    ..
    (two dots) Directory parent
    to the current one. For example, the command cd .. will change my
    current working directory one one level up.
    Some additional KDE
    keyboard shortcuts (useful, but non-essential)
    Walk through windows. To walk backwards:
    Walk through desktops. To walks backwards:
    Show the table of processes running on my system. Allow me to kill
    any of the processes I started (or send other signals to them).
    Access the K-menu ("Equivalent to MS Windows "Start"
    menu).
    Emulate the mouse using the arrow keys on the keyboard.
    Drag a window to move it. Normally, I move a window by dragging its
    top title bar, but occasionally I manage to get it off the screen.
    With this shortcut, I can drag by any part of the window.
    Take a snapshot of the current window into the clipboard.
    Take a snapshot of the entire desktop into the clipboard.
    Lock the desktop.
    Toggle hide/show the desktop (great to hide the Solitaire game when
    your boss walks in).
    (Non-essential.) This is a
    group of key combinations implemented at the Linux kernel level (a
    low level). It means, chances are these key combinations will work
    most of the time. The combinations are meant for debugging purposes
    and in an emergency (mostly developers); you should try other, safer
    solutions first. The key
    is also knows on PC as .
    The combinations can be enabled/disabled by setting the relevant
    kernel variable to "1" or "0", e.g. : echo
    "1" > /proc/sys/kernel/sysrq
    Kill all processes (including X) which are running on the currently
    active virtual console. This key combination is know as "secure
    access key" (SAK).
    Send the TERM signal to all running processes except init,
    asking them to exit.
    Send the KILL signal to all running processes except init.
    This may be more successful in killing runaway processes than the
    previous key combination, but it may cause some of them to exit
    abnormally.
    Send the KILL signal to all processes, including init.
    The system will not be functional.
    Run an emergency sync (cache write) on all mounted filesystems. This
    can prevent data loss.
    Remount all mounted filesystems as read-only. This has the same
    effect as the sync combination above, but with one important benefit:
    if the operation is successful, fsck
    won't have to check all filesystems after a computer hardware reset.
    Turn off keyboard raw mode. This can be useful when your X session
    hangs. After issueing this command you may be able to use
    .
    Reboot immediately without syncing or unmounting your disks. Your
    will likely end up with filesystem errors.
    Shut the system off (if configured and supported).
    Dump the current registers and flags to your console.
    Dump a list of current tasks and their information to your console.
    Dump memory info to your console.
    SysRq>
    The digit is '0' to '9'. Set the console log level, controlling which
    kernel messages will be printed to your console. For example, '0'
    will cause only emergency messages like PANICs or OOPSes displayed on
    your console.
    Display help. Also, any other unsupported
    combination will display the same help.
    3 Help
    commands
    any_command
    --help |more
    Display a brief help on a
    command (works with most commands). For example, try cp
    --help |more. "--help" works similar
    to DOS "/h" switch. The "more" pipe is needed
    when the output is longer than one screen.
    man
    topic
    Display the contents of the
    system manual pages (help) on the topic. Press "q" to quit
    the viewer. Try man man if you need any advanced options. The command
    info topic works similar to man topic, yet it may contain more
    up-to-date information. Manual pages can be hard to read--they were
    written for UNIX programmers. Try any_command
    --help for a brief, easier to digest help on a
    command. Some programs also come with README or other info
    files--have a look to the directory /usr/share/doc.
    To display manual page from a specific section, I may use something
    like: man
    3 exit (this displays an info on the command
    exit from section 3 of the manual pages) or man
    -a exit (this displays man pages for exit from
    all sections). The man sections are: Section 1-User Commands, Section
    2-System Calls, Section 3-Subroutines, Section 4-Devices, Section
    5-File Formats, Section 6-Games, Section 7-Miscellaneous, Section
    8-System Administration, Section 9, Section n-New. To print a manual
    page, I use: man
    topic | col -b | lpr (the option col -b removes
    any backspace or other characters that could make the printed manpage
    difficult to read).
    info
    topic
    Display the contents of the
    info on a particular command. info is a replacement for man pages so
    it contains the most recent updates to the system documentation. Use
    and
    to move around or you may get confused. Press "q" to quit.
    A replacement for the somewhat confusing info browsing system might
    be pinfo - try if you like it any better.
    apropos
    topic
    Give me the list of the
    commands that have something to do with my topic.
    whatis
    topic
    Give me a short list of
    commands matching my topic. whatis
    is similar to apropos (see the command above)--they both use the same
    database. But whatis
    searches keywords, while apropos
    also searches the descriptions of the keywords.
    help
    command
    Display brief info on a
    bash (shell) built-in command. Using help with no command prints the
    list of all bash built-in commands. The shortest list of bash
    built-in commands would probably include: alias, bg, cd, echo, exit,
    export, fg, help, history, jobs, kill, logout, pwd, set, source,
    ulimit, umask, unalias, unset.
    kdehelpcenter
    &
    (in X-terminal). Browse the
    whole system help using the graphical KDE help navigator. Normally,
    KDE help is invoked by pressing the appropriate icon on the KDE
    control panel. Use gnome-help-browser for the GNOME equivalent. (The
    older KDE versions used kdehelp&
    instead of kdehelpcenter&).
    4 System info
    pwd
    Print working directory,
    i.e., display the name of my current directory on the screen.
    hostname
    Print the name of the local
    host (the machine on which I am working). Use netconf
    (as root) to change the name of the machine.
    whoami
    Print my login name.
    id
    username
    Print user id (uid) and
    his/her group id (gid), effective id (if different than the real id)
    and the supplementary groups.
    date
    Print the operating system
    current date, time and timezone. For an ISO standard format, I have
    to use: date
    -Iseconds
    I can change the date and
    time to 2000-12-31 23:57 using this command: date 123123572000
    or using these two commands
    (easier to remember):
    date
    --set 2000-12-31
    date
    --set 23:57:00
    To set the hardware (BIOS)
    clock from the system (Linux) clock, I can use the command (as root):
    setclock
    The international (ISO
    8601) standard format for all-numeric date/time has the form:
    2001-01-31 (as in Linux default "C" localization). You can
    be more precise if you wish using, for example: 2001-01-31
    23:59:59.999-05:00 (representing I millisecond before February 2001,
    in a timezone which is 5 hours behind the Universal Coordinated Time
    (UTC)) . The most "kosher" representation of the same point
    in time could be: 20010131T235959,999-0500. See the standard at
    ftp://ftp.qsl.net/pub/g1smd/8601v03.pdf.
    time
    Determine the amount of
    time that it takes for a process to complete + other process
    accounting. Don't confuse it with the date command (see previous
    entry). E.g. I can find out how long it takes to display a directory
    content using: time
    ls. Or I can test the time function with time
    sleep 10 (time the commands the does nothing for
    10 seconds).
    clock
    hwclock
    (two commands, use either).
    Obtain date/time from the computer hardware (real time,
    battery-powered) clock. You can also use one of this commands to set
    the hardware clock, but setclock
    may be simplier (see 2 commands above). Example: hwclock
    --systohc --utc sets the hardware clock (in UTC)
    from the system clock.
    who
    Determine the users logged
    on the machine.
    w
    Determine who is logged on
    the system, find out what they are doing, their processor ussage,
    etc. Handy security command.
    rwho
    -a
    (=remote who) Determine
    users logged on other computers on your network. The rwho
    service must be enabled for this command to run. If it isn't, run
    setup
    (RedHat specific) as root to enable "rwho".
    finger
    user_name
    System info about a user.
    Try: finger
    root . One can use finger with any networked
    computer that exposes the finger service to the world, e.g., I can do
    (try): finger
    @finger.kernel.org
    last
    Show listing of users last
    logged-in on your system. Really good idea to check it from time to
    time as a security measure on your system.
    lastb
    ("=last bad")
    Show the last bad (unsuccessful) login attempts on my system. It did
    not work on my system, so got it started with: touch
    /var/log/btmp
    "There's a good reason
    why /var/log/btmp
    isn't available on any sane set-up - it's a world-readable file
    containing login mistakes. Since one of the most common login
    mistakes is to type the password instead of the username,
    /var/log/btmp
    is a gift to crackers." (Thanks to Bruce Richardson). It appears
    the problem can be solved by changing the file permissions so only
    root can use "lastb":
    chmod
    o-r /var/log/btmp
    history
    | more
    Show the last (1000 or so)
    commands executed from the command line on the current account. The
    "| more" causes the display to stop after each screen-full.
    To see what another user was doing on your system, login as "root"
    and inspect his/her "history". The history is kept in the
    file .bash_history
    in the user home directory (so yes, it can be modified or erased).
    !comman
    Run the most recent command
    from my bash history commands that starts with the string "comman".
    This is usefull for re-running often the same, command which may be
    complicated to type. For example, I use the following:
    !so
    and this is automatically
    expanded to
    sol
    --variation freecell&
    and a solitaire game with a
    special option is lunched for me.
    uptime
    Show the amount of time
    since the last reboot.
    ps
    (="print status"
    or "process status") List the processes currently run by
    the current user.
    ps
    axu | more
    List all the processes
    currently running, even those without the controlling terminal,
    together with the name of the user that owns each process.
    top
    Keep listing the currently
    running processes on my computer, sorted by cpu usage (top processes
    first). Press c
    when done.
    PID
    = process identification.
    USER=name
    of the user who owns (started?) the process.
    PRI=priority
    of the process (the higher the number, the lower the priority, normal
    0, highest priority is -20, lowest 20.
    NI=niceness
    level (i.e., if the process tries to be nice by adjusting the
    priority by the number given). The higher the number, the higher the
    niceness of the process (i.e., its priority is lower).
    SIZE=kilobytes
    of code+data+stack taken by the process in memory.
    RSS=kilobytes
    of physical (silicon) memory taken.
    SHARE=kilobytes
    of memory shared with other processes.
    STAT=state
    of the process: S-sleeping, R-running, T-stopped or traced,
    D-uniterruptable sleep, Z=zombie.
    %CPU=share
    of the CPU usage (since last screen update).
    %MEM=share
    of physical memory.
    TIME=total
    CPU time used by the process (since it was started).
    COMMAND=command
    line used to start the task (careful with passwords, etc., on command
    line, all permitted to run "top" may see them!
    gtop
    ktop
    (in X terminal) Two GUI
    choices for top. My favourite is gtop
    (comes with gnome). In KDE, ktop
    is also available from the "K"menu under "System"-"Task
    Manager".
    uname
    -a
    (= "Unix name"
    with option "all") Info on your (local) server. I can also
    use guname
    (in X-window terminal) to display the info more nicely.
    XFree86
    -version
    Show me the version of X
    windows I have on my system.
    cat
    /etc/issue
    Check what distribution you
    are using. You can put your own message in this text file--it's
    displayed on login. It is more common to put your site-specific login
    message to the file /etc/motd
    ("motd"="message of the day").
    free
    Memory info (in kilobytes).
    "Shared" memory is the memory that can be shared between
    processes (e.g., executable code is "shared"). "Buffered"
    and "cashed" memory is the part that keeps parts of
    recently accessed files--it can be shrunk if more memory is needed by
    processes.
    df
    -h
    (=disk free) Print disk
    info about all the filesystems (in human-readable form).
    du
    / -bh | more
    (=disk usage) Print
    detailed disk usage for each subdirectory starting at the "/"
    (root) directory (in human legible form).
    cat
    /proc/cpuinfo
    Cpu info--it shows the
    content of the file cpuinfo.
    Note that the files in the /proc
    directory are not real files--they are hooks to look at information
    available to the kernel.
    cat
    /proc/interrupts
    List the interrupts in use.
    May need to find out before setting up new hardware.
    cat
    /proc/version
    Linux version and other
    info.
    cat
    /proc/filesystems
    Show the types of
    filesystems currently in use.
    cat
    /etc/printcap |more
    Show the setup of printers.
    lsmod
    (= "list modules".
    As root. Use /sbin/lsmod
    to execute this command when you are a non-root user.) Show the
    kernel modules currently loaded.
    set|more
    Show the current user
    environment (in full). Normally too much to bother.
    echo
    $PATH
    Show the content of the
    environment variable "PATH". This command can be used to
    show other environment variables as well. Use set to see the full
    environment (see the previous command).
    dmesg
    | less
    Print kernel messages (the
    content of the so-called kernel ring buffer). Press "q" to
    quit "less". Use less /var/log/dmesg
    to see what "dmesg" dumped into this file right after the
    last system bootup.
    chage
    -l my_login_name
    See my password expiry
    information.
    quota
    See my disk quota (the
    limits of disk usage).
    sysctl
    -a |more
    Display all the
    configurable Linux kernel parameters.
    runlevel
    Print the previous and
    current runlevel. The output "N5" means: "no previous
    runlevel" and "5 is the current runlevel". To change
    the runlevel, use "init", e.g., init
    1 switches the system to a single user mode.
    Runlevel is the mode of
    operation of Linux. Runlevel can be switched "on the fly"
    using the command init.
    For example, init
    3 (as root) will switch me to runlevel 3. The
    following runlevels are standard:
    0
    - halt (Do NOT set initdefault to this)
    1
    - Single user mode
    2
    - Multiuser, without NFS (The same as 3, if you do not have
    networking)
    3
    - Full multiuser mode
    4
    - unused
    5
    - X11
    6
    - reboot (Do NOT set initdefault to this)
    The system default runlevel
    is set in the file: /etc/inittab
    .
    sar
    View information extracted
    the system activity log file (/var/log/sarxx
    where xx is the current day number). sar
    can extract many kinds of system statistics including CPU load
    averages, i/o statistics, and network trafic statistics for the
    current day and (usually) several days backs.
    5 Basic
    operations
    ls
    dir
    List the contents of the
    current directory. The command dir
    is an alias to ls
    so these two commands do exactly the same thing. The file listing is
    normally color-coded: dark blue= directories, light grey = regular
    files, green = executable files, magenta = graphics files, red =
    compressed (zipped) files, light blue = symbolic links, yellow =
    device files, brown = FIFO ("First-In First-Out" named
    pipes).
    ls
    -al |more
    List the content of the
    current directory, all files (also those starting with a dot), and in
    a long form. Pipe the output through the "more" command, so
    that the display pauses after each screen-full. The ls
    command has several very useful options. Some of these may have
    shortcuts (aliases) to avoid clumsy typing. Try ll (="long ls",
    an alias to ls
    -l). Another option I use quite often is ls
    -ad (list all the subdirectories in my current
    directory, but don't list their contents).
    cd
    directory
    Change directory. Using
    "cd" without the directory name will take you to your home
    directory. "cd - " will take you to your previous directory
    and is a convenient way to toggle between two directories. "cd
    .." will take me one directory up (very useful).
    ./program_name
    Run an executable in the
    current directory. The ./
    is needed when the executable is not on my PATH. An executable which
    is on my PATH is simply run using: program_name
    shutdown
    -h now
    (as root) Shut down the
    system to a halt. Mostly used for a remote shutdown. Use
    for a shutdown at the console (which can be done by any user).
    halt
    reboot
    init
    6
    (as root, three commands)
    Halt or reboot the machine. Used for remote shutdown, simpler to type
    than the previous command. Also great if the computer "hangs"
    (I lose control over the keyboard)--I telnet to it from another
    machine on the network and remotely reboot it. I use
    for normal shutdown at the console of a local computer.
    vlock
    (Not present on older
    versions of RedHat.) Lock a local (text mode) terminal. I can also
    use vlock
    -a to lock all terminals (probably not a good
    idea). The best is probably to log out. You don't use vlock
    in GUI--the windows managers come with password-protected screensaver
    and a locking utility (the small icon with padlock in KDE, the
    keyboard shortcut ).
    6 File
    management
    cp
    source destination
    Copy files. E.g., cp
    /home/stan/existing_file_name . will copy a file
    to my current working directory. Use the "-R" option
    (stands for "recursive") to copy the contents of whole
    directory trees, e.g. , cp
    -R my_existing_dir/ ~ will copy a subdirectory
    under my current working directory to my home directory.
    mcopy
    source destination
    Copy a file from/to a DOS
    filesystem (no mounting of the DOS filesystem is necessary). E.g.,
    mcopy
    a:\autoexec.bat ~/junk. See man
    mtools for other commands that can access DOS
    files without mounting: mdir,
    mcd, mren, mmove,mdel,mmd,mrd,mformat .... We
    don't use the mtool
    commands that often--operations on DOS/MS Windows files can be
    performed using regular Linux commands after you mount the DOS/MS
    Windows filesystem.
    mv
    source destination
    Move or rename files. The
    same command is used for moving and renaming files and directories.
    rename
    string replacement_string filename
    Flexible utility for
    changing parts of filenames. For example:
    rename
    .htm .html *.htm
    ln
    source destination
    Create a hard link called
    destination to the file called source. The link appears as a copy of
    the original files, but in reality only one copy of the file is kept,
    just two (or more) directory entries point to it. Any changes to the
    file are automatically visible throughout. When one directory entry
    is removed, the other(s) stay(s) intact. The limitation of the hard
    links are: the files have to be on the same filesystem, hard links to
    directories or special files are impossible.
    ln
    -s source destination
    Create a symbolic (soft)
    link called "destination" to the file called "source".
    The symbolic link just specifies a path where to look for the "real"
    file. In contradistinction to hard links, the source and destination
    do not have to be on the same filesystem. In comparison to hard
    links, the drawback of symbolic links are: if the original file is
    removed, the link is "broken"--it points to nowhwere;
    symbolic links can create circular references (like circular
    references in spreadsheets or databases, e.g., "a" points
    to "b" and "b" points back to "a"). In
    short, symbolic links are a great tool and are very often used (more
    often than hard links), but they can create an extra level of
    complexity.
    rm
    files
    Remove (delete) files. You
    must own the file in order to be able to remove it (or be "root").
    On many systems, you will be asked for a confirmation of deletion; if
    you don't want this, use the "-f" (=force) option, e.g., rm
    -f * will remove all files in my current working
    directory, no questions asked.
    mkdir
    directory
    Make a new directory.
    rmdir
    directory
    Remove an empty directory.
    rm
    -r files
    (recursive remove) Remove
    files, directories, and their subdirectories. Careful with this
    command as root--you can easily remove all files on the system with
    such a command executed on the top of your directory tree, and there
    is no undelete in Linux (yet). But if you really wanted to do it
    (reconsider), here is how (as root):
    rm
    -rf /*
    rm
    -rf files
    (recursive force remove).
    As above, but skip the prompt for confirmation, if one is set on your
    system. Careful with this command particularly as root--see the
    command above.
    mc
    Launch the "Midnight
    Commander" file manager (looks like "Norton Commander"
    for Linux). According to some computer dinosaurs, this is the best
    file manager ever.
    konqueror
    &
    (in X terminal) Launch the
    KDE file manager. Perhaps this is the utltimate for file managment.
    Much better that the MS "Windows Explorer". It embeds web
    browsing, pdf viewing, and more. Really cool.
    xwc
    (in X terminal). Another
    excellent file manager (called "X Win Commander"). Faster
    than konqueror,
    but not as loaded with features.
    nautilus
    &
    (in X terminal). A really
    cool file manager. Slower than konqueror,
    but offers me goodies like icon-preview of the content of files (!).
    It even "previews" the contents of sound files! Speedwise,
    it runs great on my 1.33 GHz computer, but I don't use it on my
    133MHz computer.
    7 Viewing and
    editing files
    cat
    filename | more
    View the content of a text
    file called "filename", one page a time. The "|"
    is the "pipe" symbol (on many American keyboards it shares
    the key with "\"). more makes the output stop after each
    screen-full. For long files, it is sometimes convenient to use the
    commands head and tail that display just the beginning and the end of
    the file, or less that enables scrolling up and down. If you happened
    to use cat a binary file and your terminal displays funny characters
    afterwards, you can restore it with the command reset.
    cat
    filename | less
    less
    filename
    (two commands, use either)
    Scroll a content of a text file. Press q when done. "less"
    is roughly an equivalent to "more" , the command you know
    from DOS, but often "less" is more convenient than "more"
    because it lets me scroll both up and down.
    head
    filename
    Print first 10 lines of the
    (long) text file.
    tail
    filename
    Print last 10 lines of a
    long or growing text file. Use tail
    -f filename for tail to follow the file as it
    grows--really handy for continuing inspection of log files.
    pico
    filename
    Edit a text file using the
    simple and standard text editor called pico.
    Use x
    to exit. There are many text editors for Linux, including several
    GUI-based. A brand new clone of pico
    (GPLed) is nano.
    pico
    -w filename
    Edit a text file, while
    disabling the long line wrap. Handy for editing configuration files,
    e.g. /etc/fstab.
    kwrite
    (in X terminal) Very nice,
    "advanced text editor". Supports vertical text selection!
    kate
    kedit
    gedit
    (in X terminal). Simple yet
    nice text editors (GUI based).
    gxedit
    (in X terminal) Another
    multi-purpose, feature packed text editor. This one even has timed
    backup.
    latte
    (in X terminal) "Code"
    editor, i.e., plain text editor meant for writing programs.
    nedit
    (in X terminal) Another
    programmer editor. Very nice and loaded.
    bluefish
    (in X terminal) html editor
    (source with syntax highlighting and maaaany tools and options).
    ispell
    filename
    Spell check an ASCII text
    file. AbiWord, WordPerfect, StarOffice and other word processors come
    with "as-you-type" spell-checking, so you really don't have
    to worry about the simple ispell unless you need it. Newer Linux
    distributions (e.g., RH7.0) contain an improved spell-checking module
    called aspell,
    yet the above command will still work.
    look
    thermo
    Look up the dictionary on
    your system (/usr/share/dict/words)
    for words which start with "thermo".
    wvHtml
    ms_word_document.doc > filename.html
    Convert a MS Word document
    to the html file format.
    8 Finding
    files
    find
    / -name "filename"
    Find the file called
    "filename" on your filesystem starting the search from the
    root directory "/". The "filename" may contain
    wildcards (*,?).
    The find command is very
    powerful. It has many options that will let you search for files in a
    variety of ways e.g., by date, size, permissions, owner, .... Yet
    some search queries can take you more than a minute to compose. See
    info find. Here are some more complex examples for using find to
    accomplish some useful tasks.
    find
    $HOME -name core -exec rm -f {} \;
    The above command finds
    files named "core", starting from your home directory. For
    each such file found, it perform the action "rm -f"
    (force-deleting the file). The {} stands for the file found, and the
    "\" terminates the command list.
    find
    /dev -user "peter" |more
    The above command prints
    the filename for all devices owned by user "peter".
    Printing the filename is the default "action" of find, so
    it does not have to be specified if this is all I need.
    find
    /home/peter -nouser -exec ls -l {} \; -ok chown peter.peter {} \;
    Find files without a valid
    owner in the /home/peter directory. List the file in a long format.
    Then prompt to change the ownership to the user "peter" and
    the group "peter". You probably need to be root to hand
    over the ownership of a file.
    locate
    filename
    Find the file name which
    contains the string "filename". Easier and faster than the
    previous command but depends on a database that normally rebuilds at
    night, so you cannot find a file that was just saved to the
    filesystem. To force the immediate update of the database, I may do
    (as root): updatedb&.
    which
    executable_name
    Show me the full path to
    the executable that would run if I just typed its name on the command
    line. For example, this commmand:
    which
    mozilla
    on my system produces:
    /usr/bin/mozilla
    whereis
    command
    Print the locations for the
    binary, source, and manual page files of the command "command".
    rgrep
    -r 'celeste' . |more
    grep
    -r 'celeste' . |more
    (Two commands, use the one
    that works on your system.) Search all files in the current directory
    and all its subdirectories (the option "-r" stands for
    "recursive") for the example string "celeste".
    Print the filename and the line in the file that contains the
    searched string.
    kfind
    &
    (in X terminal). A GUI
    front-end to find and grep. Very nice. The & at the end of the
    command makes kfind
    run in the background so that the X terminal remains available.
    6.9 Basics of
    X-windows
    xinit
    &
    Start a barebone X-windows
    server (without a windows manager). The "&" makes the
    command run in the background.
    startx
    &
    Start an X-windows server
    and the default windows manager. Works like typing "win"
    under DOS with Win3.1.
    startx
    -- :1 &
    Start another X-windows
    session on the display 1 (the default is opened on display 0). You
    can have several GUI terminals running concurrently. Switch between
    them using ,
    , etc.
    xterm
    (in X terminal) Run a
    simple X-windows terminal. Typing exit will close it. There are
    other, more advanced "virtual" terminals for Xwindows. I
    like the popular ones: konsole
    and kvt
    (both come with kde) and gnome-terminal (comes with gnome). If you
    need something more fancy-looking, try Eterm.
    For something plain and fast, I could select rxvt.
    startkde
    gnome-session
    xfce
    afterstep
    AnotherLevel
    fvwm2
    fvwm
    (in X terminal, 7 different
    commands, use the one which starts your fav windows manager) Start
    your favourite windows manager in an X terminal on bare X server.
    kstart
    --desktop 4 --iconify kwrite
    (In X terminal) Start
    kwrite
    program on the 4th desktop (both KDE and Gnome can have multiple
    "desktops" for the user to switch between, so that you can
    keep yourself better organized with all the windows) and minimize the
    program on startup. This can be useful when starting multiple GUI
    programs from scripts in such a way that they do not interfere too
    much with your current work in the GUI.
    10 Network
    apps
    mozilla
    &
    (in X terminal) Run the
    mozilla
    web browser. The current version is Mozilla 1.0.1 (Oct. 2002), and it
    is very nice. Mozilla is a descendant of netscape
    (netscape
    is on older Linux systems). Good alternatives are also konqueror
    and galeon
    (type konqueror&
    or galeon&
    in your Xterminal).
    mozilla
    -display host:0.0 &
    (in X terminal) Run mozilla
    on the current machine and direct the output to machine named "host"
    display 0 screen 0. Your current machine must have a permission to
    display on the machine "host" (typically given by executing
    the command xhost
    current_machine_name in the xterminal of the
    machine host. Other X-windows program can be run remotely the same
    way.
    lynx
    file.html
    View an html file or browse
    the net from the text mode. Although lynx's look or convenience of
    use is not as great as GUI-based browser, it is light-weight, almost
    always works, and does not require any configuration, as long as your
    networks is functional.
    konqueror
    &
    (in X terminal) File
    manager and web browser in one. Very nice, in many very competitive
    to mozilla.
    Comes with KDE.
    pine
    A good, old-fashioned,
    text-mode mail reader. Another old-fashioned and standard one is elm.
    Your mozilla mail will read the mail from your Internet account. pine
    will let you read the "local" mail, e.g. the mail your son
    or a cron process sends to you from a computer on your home network.
    The command mail could also be used for reading/composing mail, but
    it would be inconvenient--it is meant to be used in scripts for
    automation.
    mutt
    A really basic but
    extremely useful and fast mail reader.
    mail
    A basic operating system
    tool for e-mail. Look at the previous commands for a better e-mail
    reader. mail is good if you wanted to send an e-mail from a shell
    script.
    kmail
    &
    (in X-terminal) Nice, GUI
    mail program. I use kmail,
    it is much better than netscape
    mail. I can have multiple accounts and retrieve mail from the smtp
    (local) server and pop3 servers (internet service provider) to the
    same mailbox. Simple and elegant. Supports digital signatures.
    licq
    &
    (in X terminal) An icq
    "instant messaging" client. Another good one is kxicq.
    Older distributions don't have an icq client installed, you may have
    to do download one and install it.
    knode
    &
    (in X terminal) Start my
    favourite newsgroup (usenet) reader. It is MUCH better than the
    netscape's built-in reader.
    talk
    username1
    Talk to another user
    currently logged on your machine (or use "talkusername1@machinename"
    to talk to a user on a different computer) . To accept the invitation
    to the conversation, type the command "talk username2". If
    somebody is trying to talk to you and it disrupts your work, your may
    use the command "mesg n" to refuse accepting messages. You
    may want to use "who" or "rwho" to determine the
    users who are currently logged-in. talk is one of the old-fashioned
    "standard" UNIX tools, yet it still can be cool and useful
    in some situations.
    telnet
    server
    Connect to another machine
    using the TELNET protocol. Use a remote machine name or IP address.
    You will be prompted for your login name and password--you must have
    an account on the remote machine to login. Telnet will connect you to
    another machine and let you operate on it as if you were sitting at
    its keyboard (almost). Telnet is not very secure--everything you type
    moves through the networks in open text, even your password! A
    competent system administrator on a computer "on-route" can
    read what you type. Use ssh (requires some setup) for encrypted
    transmission.
    rlogin
    server
    (=remote login) Connect to
    another machine. The login name/password from your current session is
    used; if it fails you are prompted for a password.
    rsh
    server
    (=remote shell) Yet another
    way to connect to a remote machine. The login name/password from your
    current session is used; if it fails you are prompted for a password.
    ssh
    servername -l username
    (=secure shell) Connect to
    a server (remote login) using a secure connection. ssh
    is secure because encrypts all the data transfered over the network
    using a pair of RSA"public-private" keys. If you don't
    specify the username, your current user name is assumed.
    Both the client and the
    server must have ssh service (daemon) running. They are normally
    available on newer Linux distributions (e.g., RH7.0). Before using
    ssh, some setup may be necessary. The user creates his/her RSA key
    pair (for encryption) by running the command ssh-keygen.
    This stores the private key in the file $HOME/.ssh/identity
    and the public key in $HOME/.ssh/identity.pub
    in the user's home directory. To allow automatic login, the user
    should copy the identity.pub
    to $HOME/.ssh/authorized_keys
    in his/her home directory on the remote machine After this, the user
    can log in without giving the password. The most convenient way to
    use RSA authentication may be with an authentication agent. See man
    1 ssh-agent for more information. If automatic
    authentication methods fail, ssh
    prompts the user for a password. The password is sent to the remote
    host for checking; however, since all communications are encrypted,
    the password cannot be seen by someone listening on the network.
    From:
    Benjamin Smith  (edited for space):
    I
    recently got openssh 2.9.2p1 up and running, along with the
    password-free login option. It took some doing and none of the howtos
    covered this. Would you like the "magic tidbit" that makes
    it all work? Here it is: "the default is to SSH2 and DSA keys,
    which you generate with 'ssh-keygen -d' and it goes into
    ~/.ssh/id_dsa.pub, which you would copy to
    remotehost:.ssh/authorized_keys2" Use this instead of the usual
    "authorized_keys" file given in the howtos, and VOILA! It
    actually works.
    ftp
    server
    Ftp another machine. (There
    is also ncftp
    which adds extra features and gftp for GUI .) Ftp is good for copying
    files to/from a remote machine. Try user "anonymous" if you
    don't have an account on the remote server. After connection, use "?"
    to see the list of available ftp commands. The essential ftp commands
    are: ls
    (see the files on the remote system), ASCII,binary
    (set the file transfer mode to either text or binary, important that
    you select the proper one ), get
    (copy a file from the remote system to the local system), mget
    (get many files at once), put
    (copy a file from the local system to the remote system), mput
    (put many files at once), bye
    (disconnect). For automation in a script, you may want to use
    ncftpput
    and ncftpget,
    for example:
    ncftpput
    -u my_user_name -p my_password -a remote.host.domain remote_dir
    *local.html
    "ncftp" seems to
    have a problem if your computer is behind a firewall--you need to
    configure the file /home/usr_name/.ncftp/firewall.
    Alternatively, you may use "lftp" to accomplish the same,
    for example:
    lftp
    -e "mput -a *local.html" -u my_user_name,my_password
    ftp://remote.host.domain
    For keeping mirrors of ftp
    directories, one can use fmirror
    wget
    -m --no-parent http://sunsite.dk/linux-newbie
    Copy files from web sites.
    The example above uses the option -m (=mirror) to retrieve a complete
    set of files from the master site of this guide. The option
    "--no-parent" limits the retrieval to the files in the
    given directory and its subdirectories.
    minicom
    Minicom program for serial
    port "terminal emulation". Looks and works like "Procomm"
    or "Telix". It is useful for testing and debugging your
    serial communication.
    rx
    Receive files using the
    Zmodem, Ymodem, or Xmodem protocol. Xmodem requires a filename. Use
    rx --help for more info. Who uses these protocols any more anyway?
    "I
    use Zmodem regularly. I have two computers running (SuSE) Linux, a
    laptop and a desktop. The desktop computer does not have access to an
    internet connection. So, in order to get files I downloaded from one
    computer to the other, I send them over via a null-modem cable, using
    Minicom and the Zmodem protocol. This way I can even connect my
    laptop from work running Win2000 to my Linux machine using Reflexion
    (a win32 terminal emulation prog)" (from Berry Vos,
    B.Vos@getronics.com, 2001 08 28).
    11 File
    (de)compression
    tar
    -zxvf filename.tar.gz
    (=tape archiver) Untar a
    tarred and compressed tarball (*.tar.gz or *.tgz) that you downloaded
    from the Internet.
    tar
    -xvf filename.tar
    Untar a tarred but
    uncompressed tarball (*.tar).
    tar
    czvpf /var/backups/mybackup.tar.gz /home
    cd
    /; tar xzvpf /var/backups/mybackup.tar.gz '*/myfile.rtf'
    (as root) Create a backup
    of /home
    to a compressed file. The second command shows how to restore a file
    from the backup. This won't include "dotfiles" (the files
    or directories with names starting with a dot) in my tarball. To tar
    everything, I would do:
    tar
    cvzf filename.tgz * .[a-zA-Z]*
    gunzip
    filename.gz
    Decompress a zipped file
    (*.gz" or *.z). Use gzip
    (also zip or compress) if you wanted to compress files to this file
    format. Note the funny pronunciation of "gun zip".
    zcat
    filename.gz | more
    (=zip cat) Display the
    contents of a compressed file. Other utilities for operating on
    compressed files without prior decompression are also available:
    zless,
    zmore, zgrep, ...
    bunzip2
    filename.bz2
    (=big unzip) Decompress a
    file (*.bz2) zipped with bzip2 compression utility. Used for big
    files.
    unzip
    filename.zip
    Decompress a file (*.zip)
    zipped with a compression utility compatible with PKZIP for DOS.
    zip
    filename.zip filename1 filename2
    Compress two files
    "filename1" and "filename2" to a zip archive
    called "filename.zip".
    unarj
    e filename.arj
    Extract the content of an
    *.arj archive.
    lha
    e filename.lha
    Extract the content of an
    lharc archive.
    uudecode
    -o outputfile filename
    Decode a file encoded with
    uuencode.
    uu-encoded files are typically used for transfer of non-text files in
    e-mail (uuencode
    transforms any file into an ASCII file).
    cat
    filename | mimencode -o filename.mime
    cat
    filename.mime |mimencode -u -o filname
    (2 commands.) Encode and
    then decode back a file to/from the mail-oriented Internet standard
    for 7-bit data transfer called "mime". On older
    distributions, the command that does the work (mimencode) is called
    mmencode.
    Usually, you don't have to bother with these commands, your mailer
    should do the mime encoding/decoding in a transparent way.
    ar
    -x my_archive.a file1 file2
    (=archiver). Extract files
    file1 and file2 from an archive called my_archive.a. The archiver
    utility ar
    is mostly used for holding libraries.
    ark
    &
    (in X terminal). A GUI
    (Qt-based) archiver application. Perhaps that's everything what you
    need to manage your compressed files. An alternative is gnozip.
    12 Process
    control
    ps
    (="print status"
    or "process status") Display the list of currently running
    processes with their process ID (PID) numbers. Use ps
    axu to see all processes currently running on
    your system (also those of other users or without a controlling
    terminal), each with the name of the owner. Use "top" to
    keep listing the processes currently running.
    any_command
    &
    Run any command in the
    background (the symbol "&" means "run the
    preceding command in the background"). The job_number is printed
    on the screen so you can bring the command in the foreground (see
    below) if you want. I use "&" often when starting a GUI
    program from an X-terminal.
    jobs
    List my background or
    stopped processes and show their job numbers.
    fg
    job_number
    Bring a background or
    stopped process to the foreground.
    bg
    job_number
    Place a process in the
    background, so it is exactly as if it had been started with &.
    This will restart a stopped background process. The current
    foreground process can often be stopped with z.
    If you have stopped or background jobs, you have to type exit twice
    in row to log out.
    batch
    at>updatedbd
    Run any command (usually
    one that is going to take more time to complete) when the system load
    is low. I can logout, and the process will keep running. When the
    command completes, an email will be sent to me with the output. In
    the example above, the "at>" represents a prompt, the
    command to run is updatedb,
    and the
    terminates my input to batch (I could start many commands to run,
    separated by ).
    at
    17:00
    Execute a command at a
    specified time. You will be prompted for the command(s) to run, until
    you press d.
    The associated commands are atq
    (display the queue of processes started with at)
    and atrm
    (remove a process from the "at queue").
    kill
    PID
    Force a process shutdown.
    First determine the PID of the process to kill using ps.
    killall
    program_name
    Kill program(s) by name.
    For example, killall
    pppd will disconnect your dial-up network.
    nohup
    program_name
    (=no hungup). Run
    program_name so that it does not terminate when you log out. Output
    is redirected to the file nohup.out
    in your home directory. You surely do not want to run an interactive
    program under nohup.
    xkill
    (in X terminal) Kill a
    GUI-based program with mouse. (Point with your mouse cursor at the
    window of the process you want to kill and click.)
    kpm
    (in X terminal) KDE process
    manager.
    lpc
    (as root) Check and control
    the printer(s). Type "?" to see the list of available
    commands.
    lpq
    Show the content of the
    printer queue. Under KDE (X-Windows), you may use GUI-based "Printer
    Queue" available from "K"menu-Utilities.
    lprm
    job_number
    Remove a printing job
    "job_number" from the queue.
    nice
    program_name
    Run program_name adjusting
    its priority. Since the priority is not specified in this example, it
    will be increased by 10 (the process will run slower), from the
    default value (usually 0). The lower the number (of "niceness"
    to other users on the system), the higher the priority. The priority
    value may be in the range -20 to 19. Only root may specify negative
    values. Use top to display the priorities of the running processes.
    renice
    -18 PID
    (as root) Change the
    priority of a running process to minus 18. Normal users can only
    adjust processes they own, and only up from the current value (make
    them run slower). One could also renice
    +10 -u peter to make user peter use fewer cpu
    clicks so that other user don't suffer when he runs his
    computing-intensive tasks.
    c,
    z, s, and q
    also belong to this chapter but they were described previously. In
    short they mean: stop the current command, send the current command
    to the background, stop the data transfer, resume the data transfer.
    lsof
    List the opened files. If I
    am a root, all files will be listed. I can limit myself to files
    opened by processes owned by the first console if I use
    lsof
    /dev/tty1 . To list only network files (useful
    for a security audit), I would do
    lsof
    -i (as root).
    watch
    -n 60 my_command
    Execute my_command
    repeatedly at 60-second intervals (the default interval is 2
    seconds).
    13 Some
    administration commands
    su
    (=substitute user id)
    Assume the superuser (=root) identity (you will be prompted for the
    password). Type "exit" to return you to your previous
    login. Don't habitually work on your machine as root. The root
    account is for administration and the su
    command is to ease your access to the administration account when you
    require it. You can also use "su" to assume any other user
    identity, e.g. su
    barbara will make me "barbara"
    (password required unless I am the superuser).
    alias
    ls="ls --color=tty"
    Create an alias for the
    command "ls" to enhance its format with color. In this
    example, the alias is also called "ls" and the "color"
    option is only evoked when the output is done to a terminal (not to
    files). Put the alias into the file /etc/bashrc
    if you would like the alias to be always accessible to all users on
    the system. Aliases are a handy way to customize your system. Type
    "alias" alone to see the list of aliases for your account.
    Use unalias
    alias_name to remove an alias.
    cat
    /var/log/httpd/access_log
    Show who connected to your
    http (apache) server since the last time the log file was "rotated"
    (normally rotated once a day, when cron runs). The previous log file
    is access_log.1, the yet previous access_log.2, etc.
    cat
    /var/log/secure
    (as root) Inspect the
    important system log. It is really a good idea to do it from time to
    time if you use Internet access.
    ftpwho
    (as root) Determine who is
    currently connected to your ftp server.
    printtool
    (as root in X-terminal)
    Configuration tool for your printer(s). Settings go to the file
    /etc/printcap
    and (strangely) /var/spool/lpd.
    setup
    (as root) Configure mouse,
    soundcard, keyboard, X-windows, and system services. There are many
    distibution-specific configuration utilities,setup is the default on
    RedHat. Mandrake 7.0 offers very nice DrakConf .
    linuxconf
    (as root, either in text
    mode or in the X terminal). You can access and change hundreds of
    network setting from here. Very powerful--don't change too many
    things at the same time, and be careful with changing entries you
    don't understand. ReadHats network configuration utility netconf
    is a subset of linuxconf,
    therefore it is simpler and sometimes easier to use.
    mouseconf
    (as root). Simple tool to
    configure your mouse (after the initial installation). Mandrake
    includes also an alternative mousedrake.
    kudzu
    (as root). Automatically
    determines and configures your hardware. If having mysterious
    problems with your mouse (or other serial hardware), you may want to
    disable kudzu, so it does not run on the system startup (kudzu messed
    up my system so I could not have my mouse working). You can run it
    manually when you need it.
    timeconfig
    (as root) Set the timezone
    for your system. My computer hardware clock (BIOS setup) keeps time
    in UTC (Coordinated Universal Time, which was once called GMT or the
    Greenwich Mean Time). This way, I avoid any possible problems
    associated with switching timezones due to the daylight savings time,
    transferring files across the globe through the network, or a
    physical travel. It is customary to keep time on a server computers
    in UTC to avoid time ever going "backwards" (which could
    cause problems). Timestamps on files are always kept in UTC and
    displayed in the local time using the time zone information. For
    example, many applications (e.g., compilers, databases) depend on
    being able to distinguish a newer file from an older one by comparing
    their timestamps. It is important to keep the timezone correct. The
    only reason why I could select to keep BIOS time in the local time is
    to avoid problems when when dual booting from the same computer, and
    when the other operating system (MS Windows?) does not know how to
    handle UTC. Then, I let my Linux server know about this by checking
    the box "Hardware clock set to GMT", so that Linux can
    back-calculate the UTC which it needs.
    setclock
    (as root). Set your
    computer hardware clock from the current Linux system time. Use the
    command "date" first to set up the Linux system time. E.g.,
    I could change the date and time to 2000-12-31 23:57 using this
    command:
    date
    123123572000
    and then write the time to
    the hardware clock using:
    setclock
    dateconfig&
    (in X-terminal, as root
    else you will be asked for the root password). An excellent GUI
    utility to set my operating system and hardware clock and timezone,
    and tell my BIOS to keep time in UTC. I don't need the previous two
    commands.
    xvidtune
    (in X-terminal). Adjust the
    settings for your monitor display for all resolutions so as to
    eliminate black bands, shift the display right/left/up/down, etc.
    (First use the knobs on your monitor to fit your text mode correctly
    on the screen). Then use xvidtune
    to adjust the monitor frequencies for each resolution so it fits well
    in your screen. To make the changes permanent, display the
    frequencies on the screen and then transfer them to the setup file
    /etc/X11/XF86Config.
    On newer monitors, you may really prefer to adjust your monitor using
    the built-in monitor settings--xvidtune
    is for older monitors which do not have the capability to remember
    their settings.
    kvideogen
    (in X-terminal). Generate
    "modelines" for customized resolutions of your screen.
    After you generated the setup text (the "modelines"), you
    can copy-paste it to the X-windows setup file /etc/X11/XF86Config
    (or /etc/X11/XF86Config-4
    if you use X-server version 4.xx). See also the keyboard shortcut
    SVGATextMode
    80x25x9
    SVGATextMode
    80x29x9
    (as root) Change the text
    resolution in the text terminal. In the above example (second line) I
    changed the text screen to 80 columns x 29 lines with characters 9
    pixels high. The first line defines a resolution that always works,
    so that if the second command did not work on my system, I can press
    twice and
    to regain control over my screen. The possible modes depend on your
    video card and your monitor synchronization frequencies--I needed to
    edit (as root) the file /etc/TextConfig
    and (un)comment the proper lines to let SVGATextMode
    know what my system supports.
    SuperProbe
    (as root). A utility to
    determine the type of the video card and the amount of its memory.
    cat
    /var/log/XFree86.0.log
    A log file for X that can
    be useful to determine what is wrong with your X setup. The "0"
    in the filename stands for "display 0"--modify the filename
    accordingly if you need log for displays "1", "2",
    etc.
    lspci
    Show info on your
    motherboard and what cards are inserted into the pci extension slots.
    My older computer has ISA slots (or EISA) slots, no pci.
    lsdev
    Display info about your
    hardware (DMA, IRQ, IO ports).
    lsof|more
    List files opened on your
    system.
    kernelcfg
    (as root in X terminal).
    GUI to to add/remove kernel modules. Module is like a device
    driver--a piece of Linux kernel that provides support for a
    particular piece of hardware or functionality. You can do the same
    from the command line using the command insmod.
    lsmod
    (= list modules). List
    currently loaded kernel modules. A module is like a device driver--it
    provides operating system kernel support for a particular piece of
    hardware or feature.
    modprobe
    -l |more
    List all the modules
    available for your kernel. The available modules are determined by
    how your Linux kernel was compiled. Almost every possible
    module/feature can be compiled on Linux as either "hard wired"
    (perhaps a bit faster, but non-removable), "module" (maybe
    a bit slower, but loaded/removable on demand), or "no" (no
    support for this feature at all). The modules which your kernel
    supports (with which it was compiled) are all as files under the
    directory /lib/modules (and the subdirectories) so browsing it may
    give you a clue if you are lost. If your kernel does not support a
    module you require, you may need to re-compile your kernel with this
    module enabled (this is rare because the "stock" RedHat or
    Mandrake Linux kernels come with almost all common and
    non-experimental modules pre-compiled. Still, if you have a bleeding
    edge hardware ... ).
    modprobe
    sb
    Load the soundblaster (sb)
    module. Use the previous command to find other kernel modules there
    are to load.
    insmod
    parport
    insmod
    ppa
    (as root) Insert modules
    into the kernel (a module is roughly an equivalent of a DOS device
    driver). Normally, I use "modprobe" (see the previous
    command) to insert modules. This example shows how to insert the
    modules for support the external parallel-port 100-MB zip drive (it
    appears to be a problem to get the external zip drive to work in any
    other way under RH6.0 and 6.1). For the 250-MB external zip, I use
    the imm module instead of ppa.
    rmmod
    module_name
    (as root, not essential).
    Remove the module module_name from the kernel.
    depmod
    -a
    (as root) Build the module
    dependency table for the kernel. Not essential unless you modified
    /etc/modules
    and don't wish to reboot.
    setserial
    /dev/ttyS0 port 0x03f8 irq 4
    (as root) Set a serial port
    to a non-standard setting. The example here shows the standard
    setting for the first serial port (ttyS0). The standard PC settings
    for the second serial port (ttyS1) are: address of i/o port 0x02f8,
    irq 3. The third serial port (ttyS2): 0x03e8, irq 4. The forth serial
    port (ttyS3): 0x02e8, irq 3. Add your setting to /etc/rc.d/rc.local
    if you want it to be set at the boot time. See man
    setserial for good a overview. In old versions
    of Linux you can also find alternative names for serial ports (cua0
    to cua3 which you may use instead of ttyS0 to ttyS3) but these cua*
    names are now obsolete.
    tunelp
    (as root, rarely needed)
    Tune up your parallel ports.
    /sbin/chkconfig
    --level 123456 kudzu off
    (as root)A tool to
    check/enable/disable system services which will automatically start
    under different runlevels. Typically, I just use RedHat ntsysv
    utility if I need to enable/disable a service in the current
    runlevel, but chkconfig
    does give me an extra flexibility. An alternative tool is tksysv
    (X-based). The example above shows how to disable kudzu
    service so it does not start up at any runlevel (it messes up mouse
    on one of my computers). To list all the services started/stopped
    under all runlevels, I use:
    chkconfig
    --list | more
    To check the current status
    of services, I may use:
    service
    --status-all
    To start a service right
    now, I may use something like (starts an ftp server):
    service
    wu-ftpd start
    To re-start samba
    networking (e.g., after I changed its configuration), I may use:
    service
    smb restart
    symlinks
    -r -cds /
    (as root) Check and fix the
    symbolic links on my system. Start from / and progress through all
    the subdirectories (option -r="recurse") and change
    absolute/messy links to relative, delete dangling links, and shorten
    lengthy links (options -cds). If my filesystem spreads over different
    hard drive partitions, I need to re-run this command for each of them
    (e.g., symlinks
    -r -cds /usr).
    cd
    /usr/src/linux-2.4.7-10
    make
    xconfig
    (as root in X terminal). A
    nice GUI front-end for configuration of the kernel options in
    preparation for compilation of your customized kernel. (The directory
    name in the example contains the version of my Linux kernel so you
    may need to modify the directory name if your Linux kernel version is
    different than 2.4.7-10 used in this example. You need the "Tk"
    interpreter to run “make
    xconfig”, and the kernel source code
    installed.) The alternatives to "make xconfig" are: "make
    config" (runs a scripts that asks you
    questions in the text mode) and "make
    menuconfig" (runs a text-based menu-driven
    configuration utility).
    Try: less
    /usr/share/doc/HOWTO/Kernel-HOWTO for more
    information.
    After configurating the
    options for the new kernel with "make
    xconfig", I may proceed with compilation of
    the new kernel by issuing the following commands:

    • make
              clean (this is optional; it cleans the old
              object files, may lengthen compilation, may prevent problems in some
              situations)
             

    • make
              dep
             

    • make
              bzImage

    The last command will take
    some time to complete (maybe 10 min or 2 h, depending on your
    hardware). It produces the file arch/386/boot/bzImage, which is your
    new Linux kernel. Next:

    • make
              modules
             

    • make
              modules_install

    Now you have the new
    modules installed in /lib/modules/KernelName.
    Don't rename the module
    directory if you want to run multiple kernels--the kernel must be
    able to find its "matching" modules. If I want to change
    the kernel name, I have to edit the main kernel makefile (e.g.,
    /usr/src/linux-2.2.14/Makefile)
    and change the lines right at the top. Mine (default RH7.2) are:
    VERSION
    = 2
    PATCHLEVEL
    = 4
    SUBLEVEL
    = 7
    EXTRAVERSION
    = -10custom
    The kernel name for the
    currently running kernel can be displayed using uname
    -r . Mine (default RH7.2) is "2.4.7-10custom".
    The configuration for my
    "original" RedHat kernel is in the file
    /boot/config-2.4.18-14
    (RedHat 8.0), while some additional "custom" kernel
    configurations are in the directory
    /usr/src/linux-x.x.x/configs.
    I can load any of those from a dialog box in available from "make
    xconfig".
    Now I can install the new
    kernel. The installation involves copying the new kernel (while
    renaming it) into the /boot directory:
    cp
    arch/386/boot/bzImage /boot/vmlinuz-2.4.7-10custom
    cp
    System.map /boot/System.map-2.4.7-10custom
    and making changes to
    /etc/lilo.conf
    or /boot/grub/grub.conf
    so I can select at the boot time which kernel (the old or the new) to
    boot. It is strongly advised that you preserve the old kernel as a
    boot option (in case the new kernel refuses to boot).
    If you use initrd
    (initial ram disk) for two-stage booting, you may also need to create
    an image with modules used by the kernel during startup:
    mkinitrd
    /boot/initrd-2.4.7-10custom.img 2.4.7-custom
    See this for details on
    kernel patching. Quick reference:
    cd
    /usr/src/linux-2.4.7-10
    patch
    -E -p1
    It may also be helpful to
    read: /usr/doc/HOWTO/Kernel-HOWTO
    and perhaps man
    depmod. Configuration, compilation and
    installation of a new kernel is quite simple but it CAN lead to
    problems. Compilation of a kernel is also a good way to test your
    hardware, because it involves considerable amount of computing. If
    your hardware is "flaky", you may receive the "signal
    11" error (then read the /usr/doc/FAQ/txt/GCC-SIG11-FAQ).
    ldconfig
    (as root) Re-create the
    bindings and the cache for the loader of dynamic libraries ("ld").
    You may want to run
    ldconfig after an installation of new
    dynamically linked libraries on your system. (It is also re-run every
    time you boot the computer, so if you reboot you don't have to run it
    manually.)
    mknod
    /dev/fd0 b 2 0
    (=make node, as root)
    Manually create a device file. This example shows how to create a
    device file associated with your first floppy drive and could be
    useful if you happened to accidentally erase it. The options are:
    b=block mode device, c=character mode device, p=FIFO device,
    u=unbuffered character mode device. The two integers specify the
    major and the minor device number. I normally wouldn't know the
    parameters which mknod
    requires. So to make devices, I first read man
    MAKEDEV to figure the name of the device and
    then run the script /dev/MAKEDEV
    which knows about Linux devices by their names--see the next command.
    If the mentioned manual page does not help, I may refer to the
    ultimate documentation included with the kernel source code:
    less
    /usr/src/linux/Documentation/devices.txt
    cd
    /dev
    ./MAKEDEV
    audio
    (as root). Restore the
    "audio" device that I just somehow screwed up. Also see the
    previous command.
    14 Hard
    Drive/Floppy Disk Utilities
    fdisk
    /dev/hda
    (= "fixed disk".
    As root.) Linux hard drive partitioning utility (DOS has a utility
    with the same name). In the example above, I specified that I would
    like to partition the first harddrive on the first IDE interface,
    hence "hda". If I were you, I would backup any important
    data before using fdisk
    on any partition. I do not not know anybody who likes fdisk
    (either Linux or DOS edition)--I prefer easier to use cfdisk,
    see next command.
    cfdisk
    /dev/hda
    (as root) Hard drive
    partitioning utility, menu-based. Easier to use then the
    plain-vanilla fdisk
    (see the previous command). Physical drives can contain primary
    partitions (max 4 per disk), and logical partitions (no restriction
    on number). A primary partition can be made bootable. Logical
    partitions must be contained within "extended partitions";
    extended partitions are not usable by themselves, they are just a
    container for logical partitions. When partitioning a disk, I
    typically: (1) create a primary partition (2) make the primary
    partition bootable (3) create an extended partition, (4) create
    logical partition(s) within the extended partition.
    sfdisk
    -l -x |more
    (as root) List the
    partition tables (including extended partitions) for all drives on my
    system.
    parted
    /dev/hda
    A partition manipulation
    utility for Linux (ext2), and DOS (FAT and FAT32) hard drive
    partition. It is for creation, destroying, moving, copying,
    shrinking, and extending partitions. You should really like to backup
    your data and carefully read info parted before using it.
    fdformat
    /dev/fd0H1440
    mkfs
    -c -t ext2 /dev/fd0
    (=floppy disk format, two
    commands, as root) Perform a low-level formatting of a floppy in the
    first floppy drive (/dev/fd0),
    high density (1440 kB). Then make a Linux filesystem (-t
    ext2), checking/marking bad blocks (-c ). Making
    the filesystem is an equivalent to the high-level formatting. I can
    also format floppies to different (also non-standard) densities; try
    ls
    /dev/fd0 .I am also able
    to format to the default density (normally 1440k) using fdformat
    /dev/fd0.
    badblocks
    /dev/fd01440 1440
    (as root) Check a
    high-density floppy for bad blocks and display the results on the
    screen. The parameter "1440" specifies that 1440 blocks are
    to be checked. This command does not modify the floppy. badblocks
    can be also used to check the surface of a hard drive but I have to
    unmount the filesystem first to do a full read-write check:
    [use mount
    to find out which device contains the disk partition I wish to check
    for bad blocks]
    mount
    [unoumnt the selected
    partition]
    umount
    /dev/hda8
    [check the selected
    partition in a non-destructive read-write mode, so that my data is
    not erased!]
    badblocks
    -n /dev/hda8
    [mount the partition back
    since no info on bad blocks was printed]
    mount
    /dev/hda8
    If bad blocks are found,
    they can be marked on the hard drive so that will not be used using:
    e2fsck
    -c /dev/hda8
    fsck
    -t ext2 /dev/hda2
    (=file system check, as
    root) Check and repair a filesystem, e.g., after an "unclean"
    shutdown due to a power failure. The above example performs the check
    on the partition hda2, filesystem type ext2. You definitely want to
    unmount the partitions or boot Linux in the "single mode"
    to perform this (type "linux single" at the LILO prompt or
    use init
    1 as root to enter the single user mode). If
    errors are found during the filesystem checkup, I accept the defaults
    for repair. The problems with "unclean shutdown" can be
    avoided if you use a journaling file system (e.g., ext3) on your
    system (highly recommended).
    tune2fs
    -j /dev/hda2
    (as root, only for kernel
    that support ext3--RH7.2) Adjust the tunable parameter of an ext2
    filesystem. The example above shows how to add a journal to a disk
    partition (hda2 in this example), effectively converting the file
    system to ext3 (journaling) filesystem. To complete the transition,
    you must also edit the file /etc/fstab
    and change the filesystem type from ext2 to ext3, else you may run
    into problems--ext2 will not mount an uncleanly shut down journaled
    filesystem! To check what is the type of the filesystem use mount
    (with no arguments) or cat
    /etc/mtab. If you need more information on ext3
    setup, try:
    http://www.symonds.net/~rajesh/howto/ext3/ext3-5.html
    .
    Other options of tune2fs
    let you me add a volume label, adjust the number of mounts after
    which the filesystem check is performed (maximal mount count), or
    turn on time-based filesystem checks instead (less often used).
    dd
    if=/dev/fd0H1440 of=floppy_image
    dd
    if=floppy_image of=/dev/fd0H1440
    (two commands, dd="data
    duplicator") Create an image of a floppy to the file called
    "floppy_image" in the current directory. Then copy
    floppy_image (file) to another floppy disk. Works like DOS
    "DISKCOPY".
    mkbootdisk
    --device /dev/fd0 2.4.2-3
    Make an emergency boot
    floppy. You are typically asked if you would like to make a boot disk
    during the system installation. The above command shows how to make
    it after install, on the first floppy drive (/dev/fd0).
    Your kernel name (needed in the command, here 2.4.2-3) can be
    determined either by running uname
    -a or ls
    /lib/modules.
    15 Management
    of user accounts and files permissions
    useradd
    user_name
    passwd
    user_name
    (as root) Create a new
    account (you must be root). E.g., useradd
    barbara Don't forget to set up the password for
    the new user in the next step. The user home directory (which is
    created) is /home/user_name.
    You may also use an equivalent command adduser
    user_name.
    ls
    -l /home/peter
    useradd
    peter -u 503 -g 503
    (as root). Create an
    account to match an existing directory (perhaps from previous
    installation). If the user ID and the group ID (shown for each file)
    were both 503, I create an account with a matching user name, the
    user ID (UID) and the group ID (GID). This avoids the mess with
    changing the ownership of user files after a system upgrade.
    userdel
    user_name
    Remove an account (you must
    be a root). The user's home directory and the undelivered mail must
    be dealt with separately (manually because you have to decide what to
    do with the files). There is also groupdel
    to delete groups.
    groupadd
    group_name
    (as root) Create a new
    group on your system. Non-essential on a home machine, but can be
    very handy even on a home machine with a small number of users.
    For example, I could create
    a group "friends", using
    groupadd
    friends
    then edit the file
    /etc/group,
    and add my login name and the names of my friends to the line that
    lists the group, so that the final line might look like this:
    friends:x:502:stan,pete,marie
    Then, I can change the
    permissions on a selected file so that the file belongs to me AND the
    group "friends".
    chgrp
    friends my_file
    Thus, the listed members of
    this group have special access to these files that the rest of the
    world might not have, for example read and write permission:
    chmod
    g=rw,o= my_file
    The alternative would be go
    give write permission to everybody, which is definitely unsafe even
    on a home computer.
    groups
    List the groups to which
    the current user belongs. Or I could use groups john to find to which
    groups the user john belongs.
    usermod
    groupmod
    (as root) Two command-line
    utilities to modify user accounts and groups without manual editing
    of the files /etc/passwd
    /etc/shadow /etc/group and /etc/gshadow.
    Normally non-essential.
    userconf
    (as root) Menu-driven user
    configuration tools (password policy, group modification, adding
    users, etc). Part of linuxconf
    package, but can be run separately.
    passwd
    Change the password on your
    current account. If you are root, you can change the password for any
    user using: passwd
    user_name
    chfn
    (="change full name").
    Change the information about you (full name, office number, phone
    number, etc). This information is displayed when the finger
    command is run on your login_name.
    chage
    -M 100 login_name
    (= "change age").
    Set the password expiry to 100 days for the user named login_name .
    quota
    username
    setquota
    username
    quotaon
    /dev/hda
    quotaoff
    /dev/hda
    quotastats
    A set of commands to manage
    user disk quotas. Normally not used on a home computer. "Disk
    quota" means per-user limits on the usage of disk space. The
    commands (respectively) display the user quota, set the user quota,
    turn the quota system on the for a given filesystem (/dev/hda
    in the above example), turn the quota system off, display quota
    statistics. "Typical" Linux distros I have seen set on
    default: no limits for all users, and the quota system is off on all
    filesystems.
    kuser
    (as root, in X terminal)
    Manage users and groups using a GUI. Nice and probably covering most
    of what you may normally need to manage user accounts.
    chmod
    perm filename
    (=change mode) Change the
    file access permission for the files you own (unless you are root in
    which case you can change any file). You can make a file accessible
    in three modes: read (r), write (w), execute (x) to three classes of
    users: owner (u), members of the group which owns the file (g),
    others on the system (o). Check the current access permissions using:
    ls
    -l filename
    If the file is accessible
    to all users in all modes it will show:
    rwxrwxrwx
    The first triplet shows the
    file permission for the owner of the file, the second for the group
    that owns the file, and the third for others ("the rest of the
    world"). A "no" permission is shown as "-".
    When setting permissions,
    these symbols are used: "u"(=user or owner of the file),
    "g"(=group that owns the file), "o"(=others), "a"
    (=all, i.e., owner, group and others), "="(=set the
    permission to), "+"(=add the permission), "-"(=take
    away the permission), "r"(=permission to read the file),
    "w"=(write permission, meaning the permission to modify the
    file), "x"(=permission to execute the file).
    For example, this command
    will add the permission to read the file junk to all
    (=user+group+others):
    chmod
    a+r junk
    This command will remove
    the permission to execute the file junk from others:
    chmod
    o-x junk
    Also try
    here(lnag_basics.html#file_permissions) for more info.
    You can set the default
    file permissions for the new files that you create using the command
    umask
    (see man
    umask).
    chown
    new_ownername filename
    chgrp
    new_groupname filename
    Change the file owner and
    group. You should use these two commands after you copy a file for
    use by somebody else. Only the owner of a file can delete it.
    lsattr
    files
    List attributes for the
    file(s). Not very often used because the most interesting attributes
    are still not implemented. The attributes can be changed using the
    chattr
    command. The attributes are: A (=don't update a time when the file is
    modified), S (=synchronous updates), a (=append only possible to this
    file), c (=file compressed on the kernel level, not implemented yet),
    i (=immutable file), d (=no dump), s (=secure deletion), and u
    (undeletable, not implemented yet). An interesting usage may be to
    make a file undeletable even by root (until s/he clears the
    attribute).
    sudo
    /sbin/shutdown -h now
    (as a regular user, I will
    be prompted for my user password) Run the command "shutdown"
    (or another command which you have been given permission to run by
    your system administrator). With sudo,
    the administrator can give selected users the rights to run selected
    commands, without handing out the root password. The file
    /etc/sudoers
    must be configured to contain something like:
    my_login_name
    my_host_computer_name = /sbin/shutdown
    pwck
    grpck
    (as root, two commands).
    Verify the integrity of the password and group files.
    pwconv
    grpconv
    (as root) Unlikely you need
    these commands. They convert old-style password and group files to
    create the more-secure "shadow" files.
    16 Program
    installation
    rpm
    -ivh package_name-version.platform.rpm
    (as root) Install a package
    (option "i", must be the first letter after the dash),
    while talking to me a lot (option "v'=verbose) and printing
    "hashes" to show installation progress (option "h").
    rpm stands for "Redhat Package Manager".
    rpm
    -Uvh package_name-version.platform.rpm
    (as root) Upgrade (option
    "U", must be the first letter after the dash) a package,
    while being verbose (option "v") and displaying hashes
    ("h").
    rpm
    -ivh --force --nodep package_name-version.platform.rpm
    (as root) Install the
    package ignoring any possible conflicts and package dependency
    problems.
    rpm
    -e package_name
    (as root) Uninstall (option
    "e"=erase) the package package_name. Please note the
    absence of "-version.platform.rpm" at the end of the
    package name (the package name is the same as the name of the *.rpm
    file from which the package was installed but without the dash,
    version, platform and "rpm").
    rpm
    -qpi package_name-version.platform.rpm
    Query (option "q",
    must be the first letter after the dash) the yet uninstalled package
    (option "p") so that it displays the info (option "i")
    which the package contains.
    rpm
    -qpl package_name-version.platform.rpm
    Query (option "q",
    must be the first letter after the dash) the yet uninstalled package
    (option "p") so that it displays the listing (option "l")
    of all the files the package contains.
    rpm
    -qf a_file
    Find the name of the
    installed package to which the file "a_file" belongs or
    belonged. Useful if I accidentally erased a file and now I need to
    find the right package and re-install it.
    rpm
    -qi package_name
    Query the already installed
    package so that it displays the info about itself. Please note the
    absence of "-version.platform.rpm" at the end of the
    package name.
    rpm
    -qai | more
    Query all the packages
    installed on my system so that they display their info. On my simple
    system, I have ~600 packages installed so obviously, I must have a
    lot of time to read all their info. To count your packages, try:
    rpm
    -qa | grep -c ''
    To find a particular
    package, try:
    rpm
    -qa | grep -i the_string_to_find
    (The option -i makes grep
    ignore the case of the characters, so upper or lower case letters
    will match.)
    rpm
    -Va
    Verify (the option "V")
    all the packages (option "a") installed on my system. This
    lists files that were modified since the installation. Here is the
    legend for the output:
    .
    Test passed
    c
    This is a configuration file
    5
    MD5 checksum failed
    S
    File size is different
    L
    Symbolic link has changed
    T
    File modification time changed
    D
    Device file is modified
    U
    User that owns the file has changed
    G
    Group that owns the file has changed
    M
    File mode (permissions and/or file type) has been modified
    kpackage
    gnorpm
    glint
    (in X terminal, as root if
    you want to be able to install packages, 3 commands) GUI fronts to
    the Red Hat Package Manager (rpm). "glint" comes with RH5.2
    and seems obsolete now. gnorpm
    is the "official" RedHat GUI package installer, older
    versions are very slow and confusing but the newer version (the one
    that comes with RH7.0) is vastly improved. kpackage
    is the "official" KDE program and has been pretty good all
    along. Use any of them to view which software packages are installed
    on your system and the what not-yet-installed packages are available
    on your RedHat CD, display the info about the packages, and install
    them if you want (installation must be done as root).
    17 Accessing
    drives/partitions
    mount
    See
    here(FAQ.htm#Where_drives) for details on mounting drives. Examples
    are shown in the next commands.
    mount
    -t auto /dev/fd0 /mnt/floppy
    (as root) Mount the floppy.
    The directory /mnt/floppy
    must exist, be empty and NOT be your current directory. No setup in
    /etc/fstab
    is necessary because you supplied the command with all the
    information required and you are a root. The type of the filesystem
    will be autodetected.
    mount
    -t auto /dev/cdrom /mnt/cdrom
    (as root) Mount the CD. You
    may need to create/modify the /dev/cdrom
    file depending where your CDROM is. The directory /mnt/cdrom
    must exist, be empty and NOT be your current directory.
    mount
    /mnt/floppy
    (as user or root) Mount a
    floppy as user. The file /etc/fstab
    must be set up to do this. The directory /mnt/floppy
    must not be your current directory.
    mount
    /mnt/cdrom
    (as user or root) Mount a
    CD as user. The file /etc/fstab
    must be set up to do this. The directory /mnt/cdrom
    must not be your current directory.
    umount
    /mnt/floppy
    Unmount the floppy. The
    directory /mnt/floppy
    must not be your (or anybody else's) current working directory.
    Depending on your setup, you might not be able to unmount a drive
    that was mount by somebody else.
    mount
    /mnt/hda1 /mnt/dos_drive1
    Mount a DOS (MS Windows)
    partition from your local hard drive.
    18 Network
    administration tools
    netconf
    (as root) A very good
    menu-driven setup for your network.
    ping
    machine_name
    Check if you can contact
    another machine (give the machine's name or IP), press C
    when done (without c,
    the command keeps going). As all Linux commands, ping has options,
    including the "ping of death" attack, when it seems you can
    ping some servers so they die--try the the opitons -f and -s.
    route
    -n
    Show the kernel routing
    table.
    host
    host_to_find
    nslookup
    host_to_find
    dig
    ip_to_find
    (Three commands, use any.)
    Query your default domain name server (DNS) for an Internet name (or
    IP number) host_to_find. This way you can check if your DNS works.
    You can also find out the name of the host of which you only know the
    IP number.
    traceroute
    host_to_trace
    Have a look how your
    messages trace to host_to_trace (which is either a host name or IP
    number).
    mtr
    host_to_trace
    (as root) A powerful and
    nice tool that combines the functionality of the older ping and
    traceroute (RH7.0)
    nmblookup
    -A ip_address
    Status of a networked MS
    Windows machine (with an NetBIOS name). This command is an equivalent
    of Windows nbtstat
    command.
    ipfwadm
    -F -p m
    (for RH5.2, see the next
    command for RH6.0) Set up the firewall IP forwarding policy to
    masquerading. (Not very secure but simple.) Purpose: all computers
    from your home network will appear to the outside world as one very
    busy machine and, for example, you will be allowed to browse the
    Internet from all computers at once.
    echo
    1 > /proc/sys/net/ipv4/ip_forward
    ipfwadm-wrapper
    -F -p deny
    ipfwadm-wrapper
    -F -a m -S xxx.xxx.xxx.0/24 -D 0.0.0.0/0
    (three commands, RH6.0).
    Does the same as the previous command. Substitute the "x"s
    with digits of your class "C" IP address that you assigned
    to your home network. See here(FAQ.htm#masquerading) for more
    details.
    ipchains
    -P forward DENY
    ipchains
    -A forward -s xxx.xxx.xxx.0/24 -d 0.0.0.0/0 -j MASQ
    (two commands, RH7.0). Same
    as previous commands, but works under RH7.0.
    ipchains
    -L
    List all firewall rules.
    Use to check if your firewalling setup works.
    iptables
    -L
    Linux kernel 2.4.x uses new
    firewalling "iptables". The above example lists the
    firewall rules.
    firewall-config
    (as root, in Xterm). A GUI
    for building your custom firewall.
    ifconfig
    (as root) Display info on
    the network interfaces currently active (ethernet, ppp, etc). Your
    first ethernet should show up as eth0, second as eth1, etc, first ppp
    over modem as ppp0, second as ppp1, etc. The "lo" is the
    "loopback only" interface which should be always active.
    Use the options (see ifconfig
    --help) to configure the interfaces.
    ifup
    interface_name
    (/sbin/ifup
    to run as a user) Startup a network interface. E.g.:
    ifup
    eth0
    ifup
    ppp0
    ifup
    ppp1
    Users can start up or
    shutdown the ppp interface only when the permission is given in the
    ppp setup (using netconf
    ). To start a ppp interface (dial-up connection), I normally use kppp
    available under the KDE "K" menu (or by typing kppp
    in an X-terminal).
    /etc/rc.d/init.d/network
    restart
    Restart the network using
    its normal initialization script (the same which is used during
    bootup). Useful if you just have manually made changes to your
    network configuration. Any other service listed in
    init.d
    can be stopped, started, or restarted in a similar way (call the
    script with an options stop, start or restart).
    ifdown
    interface_name
    (/sbin/ifdown
    to run it as a user). Shut down the network interface. E.g.: ifdown
    ppp0 Also, see the previous command.
    netstat
    | more
    Displays a lot (too much?)
    information on the status of your network.
    /usr/sbin/mtr
    --gtk
    (as root, in X windows if
    you wish the nice gtk-based interface). Network diagnostic tool
    combining the capabilities of traceroute
    and ping.
    Comes with RH7.0.
    nmap
    ip_number
    Map the ports on the
    machine with ip_number. REALLY useful to establish the security of
    your network configuration as you can see the opened ports. nmap
    is included on the RH7.0 "Linux PowerTools" CD, as is a
    convenient GUI front end, "nmapfe".
    nmap
    can also do operating system "fingerprinting". Normally,
    people (and their ISPs) don't like their computer ports being scanned
    (they view it as possibly probing before an attack) so they may
    complain if they find out--learn how to use nmap
    on your own computers else you will soon hear from your ISP (the
    complaints will go to them). How do I know this?
    ethereal
    (as root, in Xterminal)
    Network analyzer--view the network trafic
    going through your computer. Included on the RH7.0 "Linux
    PowerTools" CD. Using ethereal may be unethical in some
    situations, and unauthorized use in the workplace could be a fireable
    offence.
    tcpdump
    -i ppp0 -a -x
    (as root) Print all the
    network traffic going through the first over-the-phone interface
    (ppp0) as ascii and hexadecimal. Probably too much printout. tcpdump
    is a rather raw tool and it can be useful for building more
    "customized" tools for listening to/log what you need.
    19
    Music-related commands
    cdplay
    play 1
    Play the first track from a
    audio CD. Use cdplay
    to play the whole CD. Use cdplay
    stop when had enough.
    eject
    Get a free coffee cup
    holder :))). (Eject the CD ROM tray). This command defaults to the
    CDROM, but could be used to eject other removable media by specifying
    the mount point or device. E.g., I can eject the zipdisk from a
    parallel-port (external) zipdrive (as root) using:
    eject
    /dev/sda4.
    I often use eject (as root)
    when the media does not want to eject when I press the button on the
    CDROM.
    play
    my_file.wav
    Play a wave file.
    rec
    my_file.wav
    Record a wave file from my
    microphone.
    mpg123
    my_file.mp3
    Play an mp3 file.
    mpg123
    -w my_file.wav my_file.mp3
    Create a wave audio file
    from an mp3 audio file. Useful if you wanted to write a regular audio
    CD from mp3s--you have to convert the mp3s to the *.wav format first.
    Don't be surprised the conversion is slow--decompressing mp3s is very
    processor intensive.
    xmms
    &
    (in X terminal) Nice GUI
    mp3 player.
    freeamp
    &
    (in X terminal) Another GUI
    mp3 player.
    lame
    input_file output_file
    MP3 encoder. You may need
    to download and install it yourself (standard Linux distributions
    avoid supplying it because of disagreement about patents on the mp3
    compression technique).
    knapster
    (in X terminal) Start the
    program to download mp3 files that other users of napster
    have displayed for downloading. You may share your mp3s too. Really
    cool, while it lasts. Gnutella
    and FreeNet
    will soon replace them->it gets even cooler.
    cdparanoia
    -B "1-"
    (CD ripper) Read the
    contents of an audio CD and save it into wavefiles in the current
    directories, one track per wavefile. The "1-" means "from
    track 1 to the last". -B forces putting each track into a
    separate file.
    grip&
    (in X terminal) A GUI to
    ripping (see the previous command).
    playmidi
    my_file.mid
    Play a midi file. playmidi
    -r my_file.mid will display text mode effects on
    the screen.
    sox
    audio_file another_format_audio_file
    (="SOund eXchange")
    Convert from almost any audio file format to another (but not mp3s).
    See man
    sox for the list of supported audio file formats
    (many). sox
    also lets you add special effects to your sound file.
    kscd
    (in X terminal) CD player.
    kmidi
    (in X terminal) MIDI
    player.
    kmid
    (in X terminal)
    MIDI/caraoke player.
    kmix
    (in X terminal) Sound
    mixer.
    studio&
    (in Xterminal) Sound
    Studio--edit sound files, add effects, etc. Available on the on the
    PowerTools CD, RH7.x.
    extace&
    (in Xterminal) Sound
    visualization utility.
    festival
    --tts my_file.txt
    Say the content of the
    my_file.txt file (ascii text). "festival" is a speach
    synthesizer that comes on the RedHat 7.0 "Linux PowerTools"
    CD. To say something from the command line, you need to start up
    "festival" and then, at the "festival>"
    prompt, type the appropriate command ("scheme" language
    interpreter), as in this example (bold represents the prompt):
    festival
    festival>(SayText
    "good dog, really good dog")
    festival>
    (quit)
    20
    Graphics-related commands
    kghostview
    my_file.ps
    (in X terminal) Display a
    postscript (or pdf) file on screen. I can also use the older-looking
    ghostview
    or gv
    for the same end effect. I can print the postscript file from the
    viewer too.
    xpdf
    my_file.pdf
    (in X terminal) View a pdf
    file. For viewing pdf files, I prefer the Adobe Acrobat Reader for
    Linux (it is faster):
    acroread
    my_file.pdf
    It can be downloaded from:
    http://www.adobe.com/products/acrobat/readstep2.html
    enscript
    my_file.txt -U 2
    Convert a text file to
    postscript and print it to the default printer. I could also send the
    output to a postscript file:
    enscript
    my_file.txt -U 2 -o my_file.ps
    The option -U
    2 makes enscript
    print 2 logical pages on one physical page which saves me paper, and
    creates more convenient, compact printouts. You may also select four
    pages per page, more makes the printout kind of difficult to read.
    enscript
    is really flexible, see man
    enscript to select from among the many
    formatting options.
    ps2pdf
    my_file.ps my_file.pdf
    Make a pdf (Adobe portable
    document format) file from a postscript file.
    mpage
    -2 my_file.ps > new_file.ps
    Print the postscript file
    my_file.ps, outputting two logical pages on one physical page. Save
    the output to the file new_file.ps.
    ps2ps
    file.ps new_file.ps
    psnup
    -nup 2 -pletter new_file.ps new_file2.ps
    Another way of making a
    postscript file containing 2 logical pages on one physical page.
    First, I used the "postscript distiller" ps2ps
    to make the postscript file simpler (at the cost of it becoming much
    larger). Then, I used the psnup
    utility to make new_file2.ps which contains 2 logical pages per one
    physical page. I could have also put 4 or 8 logical pages per one
    physical page.
    gimp
    (in X terminal) A humble
    looking but very powerful image processor. Takes some learning to
    use, but it is great for artists, there is almost nothing you can't
    do with gimp. Use your mouse right button to get local menus, and
    learn how to use layers. Save your file in the native gimp file
    format *.xcf (to preserve layers for future editing) and only then
    flatten it and save as png (or whatever) for use. "Learning how
    to make proper selection is the key."
    gphoto
    (in X terminal) Powerful
    photo editor and camera image acquisition program.
    kpaint
    (in X terminal) Simple
    bitmap paint program ("paintbrush"-type).
    xfig
    (in X terminal) A simple
    drawing program. Useful for making elementary sketches or diagrams.
    dia
    (in X terminal) A tool for
    drawing diagrams from pre-built components.
    display
    my_picture
    (in X terminal) Display a
    picture for viewing only. You can also type display
    & and select file from the menu to view the
    image, rotate it , change its colour, apply certain effects, etc.
    display
    is part of ImageMagick package, together with several other utilities
    described below.
    identify
    -verbose my_picture
    Give me a description of an
    image file my_picture: format, type, class, size in pixels, number of
    colours, size in bytes, etc.
    convert
    -geometry 60x80 my_picture.gif out_small_picture.gif
    Scale a picture to a size
    60x80 pixels. See a few line down for an example how to use convert
    to convert between different graphical file formats.
    animate
    -delay 6x5 pic1 pic2 pic3
    Keep showing two or more
    pictures in sequence. In the example above, the picture files are
    named pic1, pic2 and pic3, the delay between pictures is 0.06 second,
    and the whole presentation sequence is repeated in 5 seconds.
    combine
    pic1 pic2 combined_pic.miff
    Combine two or more images
    to another image. You can for example put a logo on every image.
    montage
    -geometry 800x600+0+0 my_picture montage.miff
    Create a tiled image from
    my_picture so that the total size is 800x600 pixels, with 0x0 border.
    The output goes to the file montage.miff.
    zgv
    my_picture
    Display a picture for
    viewing on a vga screen (no X necessary).
    giftopnm
    my_file.giff > my_file.pnm
    pnmtopng
    my_file.pnm > my_file.png
    Convert the proprietary
    giff graphics into a raw, portable pnm file. Then convert the pnm
    into a png file, which is a newer and better standard for Internet
    pictures (better technically plus there is no danger of being sued by
    the owner of giff patents).
    xwd
    -out my_cupture_screen_file.xwd
    (in X terminal) Capture the
    contents of X-windows screen into a graphics X-windows "dump"
    file (*.xwd). You can later convert the xwd file into your favourite
    format using the convert utility. Unde
    KDE, you can also use the keyboard shortcuts
    or
    to copy the current window or the entire desktop into the clipboard.
    convert
    my_capture_screen_file.xwd my_capture_screen.jpg
    Convert the X-windows
    screen dump file (*.xwd) into the *.jpg file format. The convert
    utility can convert graphics from/to many different file formats.
    import
    -display 192.5.100.10:0 -window root my_file.jpeg
    Capture the contents of the
    root screen from X-windows running on server 192.5.100.10 display 0.
    The output file is my_file.jpeg (change the file format by giving it
    an appropriate filename extension). You need to have the permission
    to write to the screen in order to be able to capture its content
    (the permission to everybody can be given by running xhost
    + in the X-terminal). See man
    import for options.
    ksnapshot
    (in X terminal) GUI-based
    utility to capture screen contents.
    xine
    frankenstein.avi &
    (in X terminal). Watch the
    movie from the file "frankenstein.avi". Looks better than
    on a TV :))
    21 Small games
    Many small games are
    probably installed on your system. Here is just a sample that
    installed from my standard Linux distribution CD.
    kpat
    (in X terminal) Patience
    card game. sol
    (fast) and pysol
    (slow but loaded) are two other choices. My favourite is: sol
    --variation=freecell&
    xboing
    (in X terminal). Very nice,
    pin-ball game.
    xboard
    (in X terminal) Chess.
    Plays too well for me :(
    konquest
    &
    (in X terminal) Compete
    with your son in a conquest of a galaxy. Nice board game.
    kmines
    (in X terminal)
    Minesweeper.
    civserver
    civclient
    (in X terminal) Startup
    server for the FreeCivilization game (first command). Afterwards,
    when the server is already running, start up the client (second
    comamand). Somebody else starts another client--and you play. FreeCiv
    came on my RH7.0 CDs.
    fgfs
    "Flight Gear"
    flight simulator.
                   
                   
                   

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/19798/showart_145948.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP