Dave's Linux Cookbook
   

 
  

Created on: November 1, 2001

Last Updated: June, 2003

Don't use any commands here until you have read the disclaimer at the end*

Conventions for this document

Why not use a GUI? Memorizing commands, are you crazy?

Beginnings and Essentials

Quick lesson on options and directories

How do I view a .pdf file?

How do close a program that has locked-up?

How do I view (know) what computers are listed in a domain??

How do I log into another computer from a shell terminal?

How do I move files over the network (from a shell terminal)?

How do I compress and uncompress files?

How do I delete an entire directory and all directories under it?

How do I copy files from my Linux machine to a DOS formatted floppy disk, so that my Windows machine can read it?

How do I make a symbolic link?

How can I see what resolutions and colors are available to the X-windows Server (the GUI for linux)?

What's in my PC?

How can linux repair a hard drive?

Other miscellaneous commands:

Mounting a Samba share (Windows drive or folder) to Linux

Mounting Samba shares at bootup

Mounting Samba shares (connecting to a Windows network from Linux).

To look up your local settings for the network, view the files

Is there another way to format a 3.5" disk for Windows?

How do I add a route?

Printer commands

Useful text based programs

Programming and Network Conventions

*Disclaimer:

Conventions for this document

itlalics words are placeholders and will vary from user to user. Don't copy literally.

"#" represents the beginning of comments.  Don't type this as a command, but it's ok if you do.  Bash (your shell terminal) will just ignore it because it sees "#" as a comment.

$ represents the command prompt and the beginning of user input.  Don't type this.

Why not use a GUI? Memorizing commands, are you crazy?

    You may be thinking, why all this command line stuff in Linux?  In the early 90s, didn't all the operating systems evolve to the point-and-click method with GUI interfaces that left DOS command line stuff behind?  Well, yes there is a GUI (X-server) available for all distributions of Linux, but to do anything useful with configurations, installations, and to really know your Linux OS (i.e. security, and performance issues), you have to go to the command prompt.  So leave that mouse behind and stretch your hands for some speed-typing, because you're in Linux now.  Also, memorize frequently used commands, and build a text file for the obscure ones you have used.  Eventually you'll realize that for the gurus, the GUI (X-server) is just used to pack even more Linux command prompt windows onto one screen, and for the occasional (ha!) web browsing. 

Beginnings and Essentials

1.Type these commands from any shell terminal (open by clicking on "black box thingy" on lower left of screen)

2.Use [tab] key to autocomplete commands or files.  If it doesn't autocomplete, hit tab twice to see list of commands or file that match so far.

$ anycommand    --help          #Shows help menu for any command.  Good source of

                                                #information for the command options

$man anycommand                 # A text based Help file.  If the man pages are available for that command, they are usually an even

                                                #better source of information than "--help."  Man pages

                                                # was started back in the days of Unix (prior 1991 before Linux was created) and have been

                                                #loosely continued in Linux  (man pages were required for most Unix systems, but are optional in Linux).

$ ls                                           #Lists the files in directory

$ ls -al                                      #Lists all (the all comes from the "a" in the "-al" option) the files with details (the details comes from the "l" in the "-al" option).

                                                # See the section Quick lesson for the meaning of "." and ".."

$ pwd                                      #Shows what directory (a "directory" is Linux speech for a "folder") you are currently working in.

$ cd  directory/                        #Goes into subdirectory called directory

$ cd ..                                      #Backs up one directory

$ cd /                                       #Backs up to the beginning (root directory)

$ cp  /sourcedir/file.txt  /targetdir/copyherewiththisname.txt            #copies the file file.txt

$ mv /file.txt  /target.txt                      #Moves the file file.txt. Also used for renaming (it's the same to the OS so there is not a separate command for "rename").

$ mv /sourcedir/*.txt ../                       #Two things here: 1. uses wildcard (*) to act on all

                                                            #files ending with .txt  2.  moves these files back

                                                            #one directory

$ rm /file.txt                                         #Deletes (remove) file

$ rm /file.txt   -f                                   #"f " means force.

$ rmdir /emptyjunkdir/                         #deletes an empty directory

$ rmdir /notemtpyjunkdir/  -fR                        #Forced. "R" means recursive, so it will delete all

                                                            #subdirectories

$ rm  . /* -Rf                                        #CAREFUL!  This deletes everything in this

                                                            #directory, recursively.  It's forced so you won't be asked for

                                                            #confirmation

Quick lesson on options and directories

$ ls -al                                      #Lists all (the all comes from the "a" in the "-al" option) the files with details (the details comes from the "l" in the "-al" option).

    This is usually how the options in Linux commands work.  The different options add up behind that little minus sign ("-al"), and some commands or options take argruments.  For argruments, follow the syntax given by the "--help" or man pages.  Look for examples.

     Notice the two lines at the beginning, there's a "." and a ".." that represent directories.  Every directory on the computer has these two in them (except the root directory, /, it does not have ".." ) .

            The "dot" directory is the current directory, so if you type "rm ./*.txt" it will only delete text files from the directory you are in.  However, if you left out the "." and typed "rm /*.txt" you would have deleted any text files from your main (root) directory.  So be careful.

            The "dot dot" directory is the directory above it, so that's why you type ".." when you want to go up a directory (i.e. type "cd ..").  Even more useful, say you wanted to create a directory in the parent directory, move some files there, and do it without having to move from the directory you are in.  Just type "mkdir ../newdirmadeeasy" and then move some files to it (i.e. type "mv fileOne fileTwo ../newdirmadeeasy/ ").

How do I view a .pdf file?

$ xpdf  filename.pdf                             # assumes the program XPDF is installed

How do I view what is being processed along with PIDs?

$ top                                        #press [ctrl-Z] to exit

Or

$ ps  -ax

How do close a program that has locked-up? 

$ps -ax | grep 'lockedprogram'

Let's say for example Netscape has an opened window that is hung up and won't close.

$ps -ax | grep 'netsc'                 #Type the first three or four letters for the program you want to find

Find the PID of the most likely process of Netscape (a single program has multiple processes), and carefully type that PID into the command:

$ kill -9 ####                           #Where #### is the 4-digit number for the PID.

How do I view (know) what computers are listed in a domain?

$ host -l lan.vbn                        #lists all dns names assign to the domain vbn

How do I log into another computer from a shell terminal?

            If the ssh program (i.e. ssh server) is running on the server computer, and a ssh client program is installed on the client computer, you can use this.  For Windows, Putty is a good program that has ssh among other client programs for connecting to Linux servers.

$ ssh youraccount@machine.lan.vbn

To log out press [ctrl-D] or type

$ exit

How do I move files over the network (from a shell terminal)?

$ scp youraccount@machine.lan.vbn://sourcedir/file //destinationdir/            #downloads

$ scp //sourcedir/file youraccount@machine.vbni.com://destinationdir/         #uploads

How do I compress and uncompress files?

An example is to back-up your home directory.  Be sure you are in your home directory and type:

$ tar -zcvf ./backhometodaysdate.tgz  ./*                    #"-z" means z compression format

To uncompress to the current directory (Precaution: uncompress to a temporary directory):

$ tar -zxvf ./compressedfile.tgz                         #notice the option change -c to -x

How do I delete an entire directory and all directories under it?

Caution: Be sure you know what you are removing.  This command doesn't ask for confirmation when deleting.

$ rm -fR  ./worthlessdirectory

How do I copy files from my Linux machine to a DOS formatted floppy disk, so that my Windows machine can read it?

For Linux,

$ /sbin/mkfs -t ext2 /dev/fd0

For windows,

$ /sbin/mkfs -t msdos /dev/fd0

How do I make a symbolic link?

            A symbolic link is like a "Shortcut" in Windows.

$ ln -s   /sourcedir/file  /targetdir/newlink

How can I see what resolutions and colors are available to the X-windows Server (the GUI for linux)?

Don't edit this file unless you know what you're doing.

cat /etc/X11/XF86Config

What's in my PC?

To find out details on most of your computer's part except CDROM speed, video RAM, and monitor size, view the following files:

/proc/pci

/proc/meminfo

/proc/cpuinfo

For the size of the harddrive, type this command

$df  -h

For the size of the current directory, type

$du  -h

How can linux repair a hard drive?

$fsck /dev/hda1                                   #replace hda1 the with harddrive letter and number

                                                            #you want to check.  Use command $df -h to find 

                                                            #this harddrive information.

Other miscellaneous commands:

$ shutdown -r now                                                       #restarts the computer

$ shutdown -h now                                                       #shutsdown (halts) the                                                                                      #computer

$ mkdir newdirectory                                                  #makes directory

$ pwd                                                                          #prints what directory you are in                                                                                   #(print working directory)

$ less file                                                                      #views file

$ cat file                                                                       #views file

$ rpm -ivh                                                                    #installs package, verbosely

$ rpm -iq                                                                      #?

Mounting a Samba share (Windows drive or folder) to Linux

$ smbmount //server/dcregal -o username=dcregal

 -or -

$ mount  -t smbfs  //sambaserver/directory/  /wherever/  -o password=something

            #When mounting with the commands above, the mount will disappear when the computer is restarted.  So to have it mount at boot time, edit the /etc/fstab file.

Mounting Samba shares at bootup

$vi /etc/fstab

Add the following line to the bottom of the /etc/fstab file.

//sambaserver/directory/  /wherever/  smbfs password=something  0  0

Mounting Samba shares (connecting to a Windows network from Linux).

From an email from Bill Jr., my manager at the time.

1.         Make sure that smbfs is installed on your computer.  A good indication

is a 'man -k smbfs' and see if it returns anything.  If it doesn't the

odds are significant that you need to find it and install it.

2.         To connect to the network, do this.

$cat /etc/passwd | grep "whateverYourUsernameIs"

note what your userID and your groupID are.

3.         go to your home directory (as your non-root user).

$ mkdir network

$ cd network

$ mkdir sharename      #(they will be listed at the bottom of this mail by

username).

$ su -  (or get root)

4.         edit your /etc/fstab

add a line like this for every share to the end of your fstab:

(all on one line)

//lanserver/dcr  /home/dcr/network/dcr  smbfs

username=dcr,password=****,uid=$UID,gid=$GID    0    0

(end one line)

the $UID is the UID you got out of the /etc/passwd file

the $GID is the GID you got out of the /etc/passwd file

the **** behind password is your password spelled out in plain English.

5.         Example of shares

dcregal:

//lanserver/dcr

//lanserver/forms

//lanserver/technology

rbk:

//lanserver/rbk

//lanserver/forms

//lanserver/technology

mac:

//lanserver/mac

//lanserver/technology

-------

You may want to hang onto this.  This is how you can connect to a windows network from linux.

Bill Jr.

To look up your local settings for the network, view the files

$ /sbin/ifconfig                                                  #your network configuration for

                                                                        #your hardware

$/etc/hosts

$/etc/resolve.conf                                                         #shows your IP addresses

$netstat  -nat                                                    #shows status of the your computer's

                                                                        #  network connections

$netstat  -a

$netstat  -at

Is there another way to format a 3.5" disk for Windows?

You should format your disk in Windows, then mount it in Linux using the following instructions.

First, as root type:

mkdir /foo

Then with the floppy in the drive, type:

mount -t vfat /dev/fd0 /foo

To copy files, use the command:

cp [filename] /foo

To unmount the floppy so you can eject it, type:

umount /foo

How do I add a route?

$route add net  202.87.240.0  202.87.242.23  1          #static; will be there until manually

            # removed.  Administrator has to know the topology of the network at boot time           #and that topology must not change between boots.

$routed                                                #dynamic (Uses daemons). Standard UNIX.

$gated                                                  #dynamic (Uses daemons). More features.

$iptables                                               #Better way to make a firewall

sftp                   [file][folder]                                          #secure file transfer protocol

Printer commands

/etc/init.d/lpd  --help                                         #this will give you the options

/etc/init.d/lpd-ppd  --help                                  #this will give you the options

pdq                                          #shows status

xpdq                                        #gui program to configure pdq when in xserver

lpq                                           #Shows the documents in the print queue

Useful text based programs

$ bc                                         # BC is a text based calculator.

Careful of the rounding (e.g. Type "1/2" and  press Enter.  It will return "0."). 

Exponents examples:

                                    Ex. 1

                                                2^4 [Enter]

                                    Should return 16.

                                    Ex. 2

                                                4^1/2

                                    Should return 2.

$lynx    www.somewebsite.com                       # lynx is text based web-browser that will display most sites. 

                                                                        #This is the best way to surf when you do not have X-server.


Naming Conventions at an Internet company

Programming and Network Conventions

  Conventions are important when working with computers. Write up the standards and conventions followed and let every programmer and network personnel know.  Even if it is just you working on the computers, you should be consistent so your work will be more organized, thus easier to find your way around, and the code in each program you write will look the same (you can read you own code months later).    Short term it takes more time (setting up the conventions), but once it is set-up and followed, long term it will save hours because programmers can read the code of another easier.

Network

fmlast.subdomain.copany

Ex: dcregal.lan.vbn

IP numbers

.255 for gateways

Databases are named with all capital letters.

Ex: DATABASE

Tables contained within a database are named first letter capitalized.

Ex: UpperUpper

PHP variables and Cookies are named with "stud cap" format.

Ex: lowerUpper

HTML, all attributes are lowercase except SELECTED and CHECKED follow example below

<INPUT type="lower" SELECTED>

<                                  CHECKED>

*Disclaimer:

 Although I have never damaged my computer using these commands, use the commands here at your own risk.  Used improperly, some commands can crash programs (kill -9) or erase entire directories (rm  -rf  /bin/laden).  I am not responsible for any headaches, lost or corrupted data, security holes, damaged or locked-up computers resulting from using these.

 

 
           
         






 
 

Please email corrections or comments to: webmaster@techborder.com Last updated: 06/09/2003
 
Home | Linux | Projects | Resumé | Photos | My Life