- 论坛徽章:
- 0
|
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 |
|