Legend:
<> = single special or function key on the
keyboard. For example <Ctrl> indicates the "control"
key.
italic = name of the file or variable you
probably want to substitute with your own.
fixed width = in-line Linux commands and
filenames.
Notes for the UNIX Clueless:
1. LINUX IS CASE-SENSITIVE. For example:
Netscape, NETSCAPE and nEtscape would be
three different commands (but of the three, only netscape
is avialable 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.)
2. Filenames can be up to 256 characters long and
can contain letters, numbers, "." (dot), "_" (underscore), "-"
(dash), plus some other non-recommended characters.
3. Files with names starting with "." are
normally not shown by the ls (list) or dir
command. Think of these files as "hidden". Use ls -a
(list with the option "all") to see these files.
4. "/" 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
5. 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 are
merged into this single file system.
6. 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. Always insert
a short comment describing what you have done.
7. Your personal settings 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).
8. System-wide settings are kept in the directory
/etc .
9. Under Linux, as in any multiuser operating
system, directories and files have an owner and set of permissions.
You will be typically 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.
10. 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.
11. Type command& (the command name
followed by the & sign) to start a command in the background.
This is usually the preferred way of starting a program from the
X-window terminal.
<Ctrl><Alt><Fn> (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").
tty
Print the name of the terminal in which you are typing this
command. The number of the active terminal can be printed
using the command fgconsole.
<Ctrl><Alt><F7>
Switch to the first GUI terminal (if X-windows is running on this
terminal).
<Ctrl><Alt><Fn> (n=7..12)
Switch to the nth GUI terminal (if a GUI terminal is running on
screen n-1). On default, nothing is running on terminals # 8 to 12,
but you can run another server there.
<Tab>
(In a text terminal) Autocomplete the command if there is
only one option, or else show all the available options. THIS
SHORTCUT IS GREAT! It even works at LILO prompt!
<ArrowUp>
Scroll and edit the command history. Press <Enter>
to execute.
<Shift><PgUp>
Scroll terminal output up. Work also at the login prompt, so you
can scroll through your bootup messages.
<Shift><PgDown>
Scroll terminal output down.
<Ctrl><Alt><+>
(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 determines the size of the "virtual
screen"):
Modes "1024x768" "800x600" "640x480" "512x384" "480x300"
"400x300" "1152x864"
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).
<Ctrl><Alt><->
(in X-windows) Change to the previous X-server resolution.
<Ctrl><Alt><Esc>
(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?).
<Ctrl><Alt><BkSpc>
(in X-windows) Kill the current X-windows server. Use if the
X-windows server cannot be exited normally.
<Ctrl><Alt><Del>
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!
<Ctrl>c
Kill the current process (works mostly a small text-mode
applications).
<Ctrl>d
(pressed at the beginning of an empty line) Log out from the
current terminal. See also the next command.
<Ctrl>d
Send [End-of-File] to the current process. Don't press it twice
else you also log out (see the previous command).
<Ctrl>s
Stop the transfer to the terminal.
<Ctrl>q
Resume the transfer to the terminal. Try if your terminal
mysteriously stops responding.
<Ctrl>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, the
second shell will be exited and you will be back in the first
shell, not logged out.)
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.
<MiddleMouseButton>
Paste the text which is currently highlighted somewhere else. This
is the normal "copy-paste" operation in Linux. (It doesn't
work with Netscape and WordPerfect which use the MS Windows-style
"copy-paste". It does work in the text terminal if you enabled
"gpm" service using "setup".) Best used with a Linux-ready 3-button
mouse (Logitech or similar) or else set "3-mouse button
emulation").
~
(tilde) 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 ~".
.
(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.
<Alt><SysRq><command_key>
(Non-essential.) This is a group of commands implemented at the
Linux kernel level (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; you should try other,
safer solutions first. The key <SysRq> is also knows on PC as
<PrintScreen>.
<Alt><SysRq><k> Kill all processes
(including X) which are running on the currently active virtual
console. This key combination is know as "secure access key"
(SAK).
<Alt><SysRq><e> Send the TERM
signal to all running processes except init, asking them to
exit.
<Alt><SysRq><i> Send the KILL
signal to all running processes except init. This may be more
successful in killing runaway processes then the previous key
combination, but it may cause some of them to exit abnormally.
<Alt><SysRq><l> Send the KILL signal to
all processes, including init. The system will not be
functional.
<Alt><SysRq><s> Run an emergency
sync (cache write) on all mounted filesystems. This can prevent
data loss.
<Alt><SysRq><u> 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.
<Alt><SysRq><r> Turn off keyboard
raw mode. This can be useful when your X session hangs. After
issueing this command you may be able to use
<CTRL><ALT><DEL>.
<Alt><SysRq><b> Reboot immediately
without syncing or unmounting your disks.
<Alt><SysRq><o> Shut the
system off (if configured and supported).
<Alt><SysRq><p> Dump the
current registers and flags to your console.
<Alt><SysRq><t> Dump a list
of current tasks and their information to your console.
<Alt><SysRq><m> Dump memory
info to your console.
<Alt>SysRq><digit> 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.
<Alt><SysRq><h>
Display help. Also, any other unsuported
<Alt><SysRq><key> combintation will display
help.
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/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
<Space> and <BkSpace> to move around or you may get
confused. Press "q" to quit. A replacement for the for the
bit 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 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 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.kdehelp
hostname
Print the name of the local host (the machine on which you are
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 or change the operating system date and time. E.g., I could
change the date and time to 2000-12-31 23:57 using this
command:
date 123123572000
To set the hardware (BIOS) clock from the system (Linux) clock, use
the command (as root) setclock
time
Determine the amount of time that it takes for a process to
complete + other info. 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
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
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
your system.
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 screenful. 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).
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, sorted by cpu usage
(top users first). Press <Ctrl>c when done.
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.
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 show 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.
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.
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.
sysctl -a |more
Display all the configurable Linux kernel parameters.
stat filename
Print general info about a file (the contents of the so-called
inode).
runlevel
Print the previous and current runlevel. The output "N5"
means: "no previous runlevel" and "5 is the current runlevel".
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 .
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
screenful. 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 you one directory up (very
useful).
./program_name
Run an executable in the current directory. The ./ are needed when
the executable is not on my PATH. Executables which are you your
PATH are simply run using: program_name
shutdown -h now
(as root) Shut down the system to a halt. Mostly used for a remote
shutdown. Use <Ctrl><Alt><Del> 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 <Ctrl><Alt><Del>
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 (e.g.,
the small icon with padlock in KDE).
mcopy source destination
Copy a file from/to a DOS filesystem (no mounting of the 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 don't 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 also 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, 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 or
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).
konqueror &
Launch the KDE file manager. Perhaps this is the utltimate for file
managment. Much better that the MS "Windows Explorer".
cat filename | less
less filename
(two commands, use either) Scroll through a content of a text file.
Press q when done. "less" is roughly equivalent to "more" , the
command you know from DOS, but often "less" is more convenient than
"more".
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 <Ctrl>x to exit.
There are many text editors for Linux, including several
GUI-based.
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
veritical text selection!
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 termina) "Code" editor, i.e., plain text 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"
spellchecking, 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 spellchecking module called aspell, yet
the above command will still works.
touch filename
Change the date/time stamp of the file filename to
the current time. Create an empty file if the file does not
exist.
locate filename
Find the file name of which contains the string "filename". Easier
and faster than the previous command but depends on a database that
normally rebuilds at night.
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 netscape
on my system produces:
/usr/bin/netscape
whereis command
Print the locations for the binary, source, and manual page files
of the command "command".
rgrep -r 'celeste' . |more
Search all files in the current directory and all its
subdirectories (the option "-r" stands for "recursive") for the
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 console
remains available.
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
<Ctrl><Alt><F7>,
<Ctrl><Alt><F8>, etc.
xterm
(in X terminal) Run a simple X-windows terminal. Typing
exit will close it. There are other, more advanced
"virtual" terminals for X-windows. I like the popular ones:
konsole and kvt (both come with kde) and
gnome-terminal (comes with gnome). If you need
something really fancy-looking, try Eterm.
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.
netscape -display host:0.0
(in X terminal) Run netscape 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
broser, it is light-weight, almost always works, and does not
require any configuration, as long as your networks is
functional.
pine
A good text-mode mail reader. Another good and standard one is
elm. Your Netscape 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.
elm
A good tex-mode mail reader. See the previous command.
mutt
A really basic but extremally 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.
licq
(in X terminal) An icq "instant messaging" client. Another good one
is kxicq. Older distributions don't have an icq client
installed, you have to do download one and install it.
knode
(in X terminal) Start my favourite newsgroup (usenet) reader.
It is MUCH better that the netscape's built-in reader.
talk username1
Talk to another user currently logged on your machine (or use
"talk username1@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.
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 goes in open text,
even your password!
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 server
(=secure shell) Connect to a server (remote login) using a secure
connection. ssh is secure because it checks identity of
the person connecting, and encrypts all the data transfered over
the network using your pair of RSA"public-private" keys.
Both the client and the server must have ssh service (daemon) running. This is normally available on newer Linux distributions (e.g., RH7.0). Before using ssh, some setup is necessary. The user creates his/her RSA key pair 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. The user should then 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 authomatic 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.ftp server
wget -m 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.
minicom
Minicom program (looks like "Procomm for Linux").
rx
Receive files using the Zmodem, Ymodem, or Xmodem protocol. Xmodem
requires a filename. Use rx --help
for more info.
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.
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.
zcat filename.gz | more
(=zip cat) Display the contents of a compress file.
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.
unarj e filename.arj
Extract the content of an *.arj 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.
any_command &
Run any command in the background (the symbol "&" means "run
the proceeding 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.
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 exactely as if it had
been started with &. This will restart a stopped background
process. Current foreground process can often be stopped with
<Ctrl>z. If you have stopped or background
jobs, you have to type exit twice in row to log out.
batch any_command
Run any command (usually one that is going to take more time) when
the system load is low. I can logout, and the process will keep
running.
at 17:00
Execute a command at a specified time. You will be prompted
for the command(s) to run, until you press <Ctrl>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.
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.
<Ctrl>c, <Ctrl>z, <Ctrl>s, and <Ctrl>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 second
console if I use lsof /dev/tty1 .
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 .
linuxconfig
(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
linuxconfig, therefore it is simplier and sometimes easier
to use.
timeconfig
(as root) Set the timezone for your system.
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
xvidtune
(in X-terminal). Adjust the settings of the graphical 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 secree. To make the changes permanent, display the
frequencies on the screen and then transfer them to the setup file
/etc/X11/XF86Config.
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 envoke 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 on your system.
Use unalias alias_name to remove an alias.
adduseruser_name
useradd user_name
(Two commands doing the same. Use either.) Create a new account
(you must be root). E.g., adduser barbara
Don't forget to set up the password for the new user in the next
step. The user home directory is
/home/user_name.
userdeluser_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).
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", 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 permissions:
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.
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_nam
(= "change age"). Set the password expiry to 100 days for the user
named login_name .
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, meanning
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):Also try here for more info.
chmod a+r junk
This command will remove the permission to execute the file junk from others:
chmod o-x junk
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 atime 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).
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).
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.
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 <ArrowUP> twice and
<Enter> 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.
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 compliled.
Every possible module/feature can be compiled on linux as either
"hard wired" (fast, non-removable), "module" (maybe slower, but
loaded/removable on demand), or "no" (no support for this feature
at all). The modules with which your kernel supports (with which it
was compiled) are all as files under the directory
/lib/modules so browsing it may give you a clue if you are
lost.
modprobe sb
Load the soundblaster (sb) module.
insmod parport
insmod ppa
(as root) Insert modules into the kernel (a module is roughly an
equivalent of a DOS device driver). This example shows how to
insert the modules for support of the external parallel port 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).
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/cua0 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 (cua0 or
ttyS0). The standard PC settings for the second serial port (cua1or
ttyS1) are: address of i/o port 0x02f8, irq 3. The third serial
port (cua2 or ttyS2): 0x03e8, irq 4. The forth serial port (cua3 or
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.
tunelp
(as root, rarely needed) Tune up your parallel ports.
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 my
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 ther previous
command).
cd /usr/src/linux-2.2.14
make xconfig
(as root in X terminal). Nice GUI front-end for configuration of
the kernel options in preparation for compilation of your
customized kernel. (The directory name contains the version
of your Linux kernel so you may need to modify the directory name
if your Linux kernel version is different than 2.2.14 used in this
example. Also, you need the "Tk" interpreter 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/doc/HOWTO/Kernel-HOWTO for more information.
After configurating the options for the new kernel, you may choose
to proceed with kernel compilation of the new kernel by issuing the
following commands:
make dep
make bzImage
The last command will take some time to complete (maybe 0.5 h or 2
h, depending on your hardware). It produces the file "bzImage",
which is your new Linux kernel. Next:
make modules
make modules_install
Now you the new kernel and modules so you can install
them--installation involves copying the new files into the
/boot directory and making changes to
/etc/lilo.conf so you can select at the boot time which
kernel (old or new) to boot. See this for details on kernel
upgrade. 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 not difficult at all but it CAN lead to problems if you
don't know what you are doing (tough luck, if you cannot boot and
are really unable to fix things after booting from the floppy, you
may need to re-install). Compilation of a kernel is also a good way
to test your hardware, because it involves massive amount of
computing. If your hardware is "flaky", you will most likely
receive the "signal 11" error (read the beatiful
/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.
fdformat /dev/fd0H1440
mkfs -c -t ext2
(=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.
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.
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 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.
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".
/sbin/chkconfig
A tool to check/enable/disable system services under different
runlevels. Typically, I just use RedHat setup utility if I
need to enable/disable a service, but chkconfig does give
me extra flexibility should I ever need it.
SuperProbe
(as root). A utility to determine the type of the video card and
the amount of its memory.
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).
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 ''
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)
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).
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.
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.
ping machine_name
Check if you can contact another machine (give the machine's name
or IP), press <Ctrl>C when done (without <Ctrl>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.
nslookup host_to_find
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 you messages trave 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 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
works.
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).
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
don't like their computer ports being scanned by nmap so they may
complain.
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 is some
situations, and unauthorized use at workplace would probably be a
fireable offence.
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 the zipdrive (as root)
using: eject /dev/sda4
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.
knapster
(in X terminal) Start the program to downoload 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.
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 terminl) Sound mixer.
studio
(in Xterminal) Sound Studio--edit sound files, add effects, etc.
Available on the on the PowerTools CD that comes with RH7.0.
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
interpreter), as in this example (bold represents the
prompt):
festival
festival>(SayText "good dog, really good
dog")
festival> (quit)
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 simplier (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. Part of
ImageMagick package (together with several other utilities
descrbied here).
giftopnm my_file.giff >
my_file.pnm
pnmtopng my_file.pnm > my_file.png
Convert the propriatory 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.
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 runnning on
server 192.5.100.10 display 0. The output file is my_file.jpeg
(change the file format by it giving 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.
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.
animate -delay 6x5 pic1 pic2 pic3
Keep showing pictures 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.
kpat
(in X terminal) Patience card game. sol (fast) and
pysol (slow but loaded) are two other choices.
xboing
(in X terminal). Very nice, pin-ball game.
xboard
(in X terminal) Chess.
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.
Go to Part 6: Essential Linux applications (proprietary or
not)
Back to Top Page