Defindit Docs and Howto Home

This page last modified: Apr 20 2007
title:Linux and emacs getting started hints
keywords:linux,unix,beginner,question,questions,howto,how,to,hint,
description:Linux beginner secrets explained.

Emacs minimum:

Start Emacs:
emacs filename.txt

When you are running Emacs, you need three minimal skills: move, save,
exit.

Move within a file: use your keyboard arrow keys and cursor keys,
backspace (delete back), delete (delete under the cursor).

Save a file: Press "control" and the X key together, then "control" and the S
key. We pronounce this "control x control s" and write it C-x C-s.

Exit from Emacs: C-x C-c

I suggest that you use my .emacs file which has additional features,
and which gets rid of some irritating default options. See
http://defindit.com/readme_files/dot_emacs.html

If you wish to learn more about Emacs, you will need to be able to
enter commands. You don't have to remember all the command names since
Emacs will auto-complete commands for you when you press the tab key. 

If you want to see all your current emacs keys (called key bindings)
you can use the describe-bindings command. Use the key combination
called Meta-x or simple M-x: press Esc (and relase) then press x. Then
enter a command and press the Enter key. To reiterate M-x, here are
the steps:
press Esc and release
press the letter x and release
type in a command
press Enter

The command will run as soon as you press Enter. If you want to cancel
any operation at any time in Emacs, use control-g which we write
C-g. You may press C-g any time, and as often as you like. It has no
effect if you aren't running a command (i.e. if you are just sitting
in a file).

Do the following commands in order to get the key bindings into a text
file that you can print:

M-x
describe-bindings
M-x
other-window
M-x
delete-other-windows
C-x 
C-w
emacs_key_bindings.txt (enter a file name and press Enter)


Here is some info about the Linux command line, and some of the
conventions we use. The shell bash is actually easier to use than
systems like MS Windows or the Apple Macintosh since bash will
auto-complete comamnds for you. However, you need a some hidden,
secret info.  (Secret info isn't limited to Linux. If you don't
believe me, just watch a Windows XP person try to use a Mac. The Mac
is quite difficult to use. If you don't believe me, try to figure out
how to drag a copy of a file to a different folder.)

"-bash-2.05b$" is technically the "prompt" or we simply say "the
shell" or "go back to the prompt" if you are in a program. This is
also the "command line" interface. There are several shells, and the
best one is called bash. The prompt means that the computer is
awaiting your command. If you press Enter without a command, you'll
just get the prompt. Entering a control-c will kill the currently
running command. You may enter control-c multiple times. Control-c
will not kill the shell. 

A typical throw-away file is tmp.txt which we pronounce "t m p dot t x
t" or "temp dot t x t" or even "temp dot text". There is an entire
shorthand way of talking about commands that is necessary since the
commands are too long to fully pronounce.

We speak "p s" for the ps command. However, we usually pronounce chmod
as "ch-mod".

Commands have options. There are short options which consist of hyphen "-"
(dash, or minus) and one letter. Some options have values. examples are:

-l
-fr
-alt
-ld
-h
-d"may 21, 2002"

Long options are "--" a double hypnen and a word. Some long options
have values. An examples is:

--version

When speaking "ls -l *.txt" we say "ls minus l the t x t files". The
"*" is the wild card asterix is called "star". The file specification
"*.txt" gives all files that end in ".txt", thus all the t x t files.

Here are some examples commands and how I would speak them. (Note that
we use hyphen, dash, and minus interchangably.) Sometimes we leave off
the word "dash", "hyphen" or "minus" since it is commonly understood
as a requirement for all command line options.

Now that I read these example "sentences" I can easily see why people
who have not been tutored in the this would be confused. However, it
really is straightforward. Speaking these commands may help reveal the
intent of the command. Keep in mind that the commands are easier to
type than they are to speak.

There is some confusion when reading 1 (one) and l (ell). Everything
here is an ell unless otherwise obviously a digit.

emacs -nw file.dat
e-macs dash n w file dot dat

ls -alt *.pdf
ls dash a l t star dot p d f

ls -l *.pl
l s dash l star dot p l 
l s minus l all the perl scripts (Perl scripts end in .pl)

df -h .
d f dash h dot

chmod go+x *.pl
ch mod g o plus x star dot p l
ch mod g o plus x all the perl scripts
sha-mod the perl scripts to group other executable

cp myfile.txt myfile_1.txt
c p my file dot t x t my file underscore one dot t x t
c p my file dot t x t to my file underscore one dot t x t

grep -i "singlet" *.txt
grep dash i double quote singlet double quote star dot t x t
grep dash i quote singlet quote star dot t x t
grep dash i for the string singlet in star dot t x t
grep dash i for the double quoted string singlet in star dot t x t
(A "string" is some text surrounded by double quote characters. If
someone say "quote" they usually mean a double quote character.)

grep '>' *.fasta | wc -l
grep tick greater than tick star dot fasta pipe w c dash l
grep a single quoted string greater than in star dot fasta pipe to w
c dash l
(We often say "tick" for a single quote. The pipe character | above
the enter key is used to connect commands together.)


Here are the common command names:

ls
ps
grep
wc
pwd
cd
chmod
chgrp
cp
mv
rm
less
more
tail
cat
mkdir
rmdir
emacs
tar
exit

That's pretty much the day-to-day list. Every command has help
available. Some of the help is a bit arcane, but most is pretty
good. For example, enter "man ls" to get help for ls.

Important note: the rm command is used to delete files. There is no
undo. For what I consider historically stupid reasons, the rm command
has a fairly dangerous set of options -fr which have been used to
delete entire hard disks. I suggest that you avoid rm -fr * until you
have lots of experience. Instead, create an archive or trash
directory, and mv files there. Most systems will alias rm to rm -i
which prompts before removing a file. If you don't have this alias, I
suggest you add it. Edit your .bashrc file and add this line:

alias rm='rm -i'

Keep backups of anything important. Use "tar" to create backups on
disk. Backup directories and files with tar before deleting,
especially before using rm -fr in any form.

Here are some example commands:

ls -l
ls -l *.txt
tail .bashrc
ls -alt | head
ps aux
pwd
cd public_html
ls -l *.html
la -alt *.html | head -n 30
cd ~/
mkdir archive
echo "stuff" > tmp.txt
mv tmp.txt archive/
ls -l archive/*.txt
pa aux > ps_list.txt
cat ps_list.txt

Less and more are used for looking at (viewing) files, usually text
files. Use the plain letter q to quit. Space-bar is page down. Less
supports the cursor keys. Control-c will not exit from less. Press h
in less will bring up some help, and there is always the less man
page, i.e. man less.

Linux is case-sensitive. Most things are lowercase. Upper case will
not work if the computer is expecting lowercase. 

Dot files (.emacs, .bashrc) are generally reserved for configuration
and options files. The leading dot is treated special by the "ls"
command. Other than that, using dot files is a convention and nothing
else.