These commands are grouped by function. For alphabetical listing, see here.
- Root Operations
- Directory Operations - Creating, Changing, Listing
- Files: Create, View, Compare, Control the Output
- Copy, Move and Delete Files, Directories
- Change Attributes: Permissions, Ownership, Links
- Help and Information
- Finding Files and Locating Executables
- Multimedia and Disk Usage
- Internet and Networking
- List and Stop Processes
- Shut down Machine
- Installing Software and Package Management
-
Opensuse, Mandriva and Useful Linux Utilities
- Miscellaneous, Path and Environment
- Wild Cards and various symbols
-
Terminal/Console Keyboard Shortcuts
- Word processing shortcuts
Root Operations
Many functions such as installing software, editing files, running many commands require you to be root, or superuser. An error of "Command not found" means
that either you must change to root or it is a utility that is not
installed.
su: log as root while user. Will be prompted for password.
su <username>: change to that user. eg. back from root to yourself.
su - : sets the environment as if you'd actually logged
in as root. Will put you in /home/root
sux : logs you in as root, so that root can connect to
the X server. This will enable you to launch gui programs as
root. SuSE only
sudo: changes you to root temporarily, for that command only.
Terminal Usage Tips
Tab key:
autocompletes filenames in command line. If two similar filenames
exist, filename will not complete. Hit tab twice to show all options, then type enough to
autocomplete the rest. Handy for long filenames.
Up arrow: Scrolls back through history of previous commands. Handy if you are using one or two repetitively.
mc: launch midnight commander, a handy console file manager. (Utility - check if installed) See here for tutorial
history : prints out
about the last 1000 commands
clear : clears text out of the top of a terminal. Can still
be scrolled back through. A shortcut is Ctl - l
Directory Operations - Creating, Changing, Listing
mkdir : create
directory
mkdir -p temp/grandparent/parent/child : create a
hierarchy of directories - use the -p (parent) option
cd: change directory
cd ~ : takes you to home directory
cd - : last directory you were in.
cd .. : parent directory of the one you are in at present
cd ../../.. will take you up three parent directories
cd / : takes you to root directory
cd ../sisterdir : when you want to change to a directory
at the same level, the .. takes you back to the parent, followed
immediately by the sister directory.
When using cd, if you put / in front of the directory name, you
have to give the full path from root. Don't put the / to change
to a subdirectory from where you are at present (relative path)
unless doing a sidestep and it is preceded by ..
ls : short listing of directory contents
ls -l : long listing, permissions, buildtimes, owner, points
to links, etc
ls -a or ls -al shows hidden .files
ls -ltr : long listing of files, in order of time
created, and reversed. This will give the most recent files at
the bottom of the list
ls -lSr : sorts by size. Largest files at the bottom
ls -R : lists recursively contents of subdirectories
Files: Create, View, Compare, Control the Output
cat filename : views contents of file. Use -n option to
number lines.
cat filename >
anotherfilename.txt sends output to a file that is
created or overwritten
cat filename >>
anotherfilename.txt appends output to selected file
cat file1.txt file2.txt > file3.txt : contents of two
files can be combined
The cat command can be used as a quick text editor:
cat > friends.txt
Joan
Scott
Meredith
Tim
[EOT](Ctl -d)
touch : creates files or updates the modification times
wc: counts lines, words
and characters in a file. -c, -w or -l options to only display
one. Spaces are considered as words, though
diff oldfile.txt newfile.txt: displays line-by-line
differences between two text files.
diff --brief : shows only the difference. Much easier to
understand the output!
diff -r /etc /home/jane/etc |less : shows difference between two
directories, useful when restoring a backup in an upgrade. Pipe to
less to scroll through output at your pace.
cmp -l file1 file2: displays all differences between binary
files
file <filename> :
takes a guess at the type of data contained in a file
grep <text string> <filename> : find text strings in files
and returns the whole line.
less : allows you to go back and forth in a file. Pipe large
files to less when the output is too big to be seen on one
screen. Can read contents of gzipped files, eg. less filename.gz.
To search for a particular term in less (and man pages) type /searchterm
<enter> and it highlights where it appears in the file.
Press n to find the next occurence, and shift - n to
find the previous.
spacebar : skips whole screen.
Type
q to exit less.
more : shows the percentage that you are through the
file. Move down with enter key. No backwards movement permitted.
head <filename> Gives first 10 lines of file. head -1 would
give the first line only. Also see tail
tail <filename> :
gives the last 10 lines of a file. Useful if there's going to be
lots of scrolling as screen may not be able to keep up, as in
compiling kernel. eg.tail -f /var/log/messages follows last 10
lines.
Copy, Move and Delete Files, Directories
cp <filename> <newfilename> : straight copy
cp -p : preserves attributes and permissions of the file
cp <filename> /dir/ect/ory : copy to file to another directory
Use wildcards to copy multiple files to a new location:# cp
file* /tmp
command line option -i will prompt you if you are about to
overwrite an existing file
cp -bi <file> <file.1> creates a backup of any file that may be
overwritten. A backup has a ~ attached to its name.
Copying Directories:
cp -a : archive option. Copies directories recursively and preserves attributes and permissions
cp -Pr dir1 dir2 :-P (parent)
along with the -r (recursive) command-line option, copies files
within one directory to another directory, and also any
directories inside.
mv file1 file2 : rename or move files and directories
To rename a directory, specify the old directory name and new
directory name:
mv mydir newdir
mv -i file1 file2 asks for permission to overwrite an existing
file.
mv -b : creates a backup
mv -bi file1 file2
mv: replace ´file2'? y
ls file*
file2 file2~
mv file1 /tmp : moves file to another directory
mv file1 /tmp/file2 : renames file during move
mv dir1 dir3 : If the destination directory does not exist, mv
renames the directory. If the destination directory exists, then
dir1 is moved inside the destination directory, dir3.
rm <filename> : deletes file.
You can use wildcards with the rm command rm *.txt or rm file*
rm -i <filename> : removing file interactively, asks for
confirmation
rm -rf : recursive, force options to delete a
directory. Dangerous
as root. -f does not ask for confirmation.
rmdir temp/grandparent/parent/child :removes empty
directories. If any files or directories exist below the
specified directory, you must move or delete those first. Easier to use Midnight Commander!
Change Attributes: Permissions, Ownership, Links
chgrp Jane <filename> changed ownership of file to group
Jane
chown -R Jane. updates : recursively
changed /home/Jane/updates subdirectory to ownership by Jane
chmod (a=all u=user g=group o=other) +/-/= (r=read w=write
x=execute) simplest way of changing permissions. eg
chmod a-w <filename> : removes write permissions w for all a
chmod u+x <filename> : adds execute permissions x for user u(the
user is generally the person who created the file, and therefore
the owner)
- removes ,+ adds, = makes permissions exactly as specified
In the long listing, permissions are specified user/group/other
as in rwxr-xr-x
421= rwx, as in chmod 755 <filename> means rwx for user, r and x
for group and others
chmod 4777 : (4 = u+s) : Adding the set user id or suid bit.
When you run the file, you become the user/owner : rwsrwxrwx
In front of the whole lot there are sometimes other characters:
b = block device, c = character device, - =an ordinary file, d =
directory.
Directory permissions: t at the end denotes a sticky bit - everyone has permissions but only user can alter
files. 1777 1 = +t
ln -s file file2 :
symbolic link. Source file first, then target. Can be used for
any type of file, including executables. A symlink will reflect
all changes to the source file
ln file file3 : ln on its own makes a hard link - a copy of the original file that will not reflect any change
or deletion of the original file.
ln -s sourcedirectory targetdirectory :
Linking directories: User can only make symbolic links, root
can hard-link as well.
Help and Information
apropos <anything> : searches man pages for the specified
word and prints out info
<cmdname> --help : briefer than man page, gives a summary
of arguments for command. Can be scrolled with scrollbar.
Returns you to command prompt.
info <cmdname> similar to man page, but has nodes and
menus.
whatis : searches the whatis database for complete words,
gives a one-line synopsis
makewhatis : creates the whatis directory
man <cmd> : man page. Type q to exit. Move with up/down
arrows. Find particular words by typing /searchterm <enter>
to highlight where it appears. Press n to find the next
occurence, and shift - n to find the previous.
man -k <word> : searches headings of man pages for word
/usr/doc directory: documentation pertaining to everything is in
there
Finding Files and Locating Executables
find <filename> : Searches your complete hard drive for file. Takes a while. Quicker if you know which directory to search:
find . <filename> : find files in current directory, find /etc <filename> : find files in /etc dir
Locate is much faster - searches quickly through a system database.
locate : finds files by searching a database, created with updatedb. Much
quicker than find. Wildcards can be used to either expand or
narrow a search. For example, to look for opera
browser icons: locate *opera*png*
(Check if installed: package is called findutils-locate)
updatedb : update the locate database. Must be root.
type <executablename> : shows you where the executable is
run from.
[Jane@mylinuxbox log]$ type gpm
gpm is /usr/sbin/gpm
whereis <cmdname>: locates the binary, source, and
manual page files for an executable.
which <executablename> : shows full path to executable.
Similar to using type
Multimedia and Disk Usage
Sound
cdda2wav -D /dev/cdrom -x -t 1+10 -B : for ripping audio to
wav. Most of the following arguments will be required:
-D /dev/cdrom : device used must be specified
-x : for cdaudio quality
-t 1+10 : to specify either a single track or start and end
tracks
-B : copies each track to a separate file
oggenc *.wav : converts wav to similarly named ogg file (must be installed)
mpg123 <file.mp3> :
console mp3 player. Needs backslashes in file names instead of
spaces. Can play two songs at once! (Utility, must be installed)
mpg123 -w <filename.wav> <filename.mp3> : Outputs your
mp3 into a wav file.
play <filename.wav> : wav file player
Iso Copying, Mounting, and Filesystems
md5 <filename.iso> : shows md5sum, to compare before writing a disc. Takes a while to calculate.
mkisofs /dev/cdrom/* filename.iso : copies an iso image of
the cd ready to write.
mount -t iso9660 -o loop
filename /media/cdrom : Mounting an iso to access the
contents. -t=type iso9660=cd file type -o option loop=expecting
you to mount a file /media/cdrom= mount it on a mount point not
currently in use. (Iso contents can be viewed without mounting in Midnight Commander.)
mount /mnt/cdrom : to mount the
device you want on the command line.
umount /mnt/dcrom: unmount (note spelling of command). Command line and gui mounting/unmounting not
interchangeable.
dd if=/dev/cdrom of=/tmp/filename.iso bs=8192 : data
dump - this copies the iso image of a cd. This example is
copying direct from the device - make sure the cd is not
mounted. Copy to a filename of your choice. You can now burn a
cd with this image. The output file must have a .iso extension.
The last command, block size, increases the size and makes the
process faster.
Disk and Resource Usage
df -h : shows amount of disk used, in human readable format
du -s : summarise the size of the directory you are in
du -ks <dirname>: summarise in kilobytes the size
of the directory named
du -ms: summarise in megabytes
du -m : shows size in megabytes of directory, as well as
all subdirectories
du -m --max-depth=1 <directoryname> : As above, except
summarises subdirectories to a max depth of one
free : quick method
of checking memory usage
Internet and Networking
dig : will get the ip address from the user ident (irc) The
ip address will be the numbers following ID IN A xxx.xxx.xx.xx
ifconfig : lists interfaces and traffic. Can be used to get
your current ip address. Must be root
netstat -a : shows connections on all network
connections/sockets. Pipe to less for easier reading
-l : listening sockets only
-p : shows processes listening and includes
PID. Useful to kill processes hogging key ports
fuser -vn tcp <portnumber> : names the service that uses that
port.
ssh2 -l <user> <domain> : usage for ssh2. Will be prompted
for password for user eg ssh2 -l jane ant.co.za
ssh username@domain : ssh to another box/site.
wget -r http://www.xxxx : to suck down an entire website
-m creates a mirror and
is recursive
List and Stop Processes
lsof : lists open files. eg. If cdrom is busy and won't
unmount, do lsof |grep cdrom, then kill PID's using it.
grep <parametername>: filters results for a parameter or word. An output of a command can be piped to grep to list only those that match the parameter, eg. ps ax |grep <parametername>
ps : processes
running
ps ax or ps -e :all users and processes without a controlling terminal (tty)
ps axf :as above, showing child processes
ps -ef : everything running. Display will be PID, tty, time (at idle) and name. Use PID in
the kill command. See kill for shutting down processes by
command line.
NB: To list only a particular process, pipe to grep <processname>
eg. ps ax | grep esd
kill -1 or kill -HUP <PID> this interrupts the process only. Handy for something stuck.
killall <processname> : Use on Linux only. Kill without
requiring the process ID
kill -9 <PID> kills the process forcibly
kill -15 <PID> : a nicer kill than -9
Shut down Machine
init0: shuts system down (starting runlevel 0)
init1: goes down to to
most basic admin level, runlevel 1
init6: reboots system
shutdown -h now: shuts
the system down immediately.
shutdown -r now: reboots
the system immediately.
Installing Software and Package Management
ldd <pkgname>: shows missing libraries that files/packages
depend on. Prints out library dependencies for a given
executable
The RPM command
The RPM command can be used to install, query, select and build
packages. The man page is fairly understandable and lists all
the options.
Query options:
rpm -q <packagename> : to see if a specific package is
installed. Need only give the name, not the whole version
number.
rpm -qa : query database for all installed packages. You
could pipe to grep if you are looking for a string. eg. rpm -qa
| grep ssh or rpm -qa | grep "part_of_package_name".
rpm -ql : lists files of an already installed package.
rpm -qpl : query an uninstalled package to list all files
in package
rpm -qf <filename>: lists the package that the file came
from
rpm -qi : gives info on installed packages, including
description and header
rpm -qpi : info on uninstalled packages
rpm qRp : shows dependencies on which an uninstalled
package depends. Remove the -p for an
already installed package.
Install options:
rpm -ivh :
the basic one. -i installs, but it's better to use -U or -F depending
on the situation. -v: verbose - keeps you in the loop, and -h: hashes -
handy to check the progress.
rpm -Fvh : freshen an already installed package, eg. update. Will upgrade already installed
packages only.
rpm -Uvh : will upgrade already installed packages and
install ones not already installed.
rpm -i --replacepackages <rpm-package-name> This forces
the installation of a package that according to rpm is already
installed. Used when the already installed package is damaged.
rpm -e [<options>] <installed-package-name> To de-install
a package, rpm runs through the following procedure: Checks
dependencies. Runs some preparatory procedures for the
de-installation. If configuration files have been changed, makes
a copy of them before removing them. Removes the package. Runs
some final procedures for the de-installation.
--force and --nodeps options can persuade reluctant
packages. Use nodeps with caution!
rpm -rebuilddb : updates database of installed rpm
packages
Tarballs or tgz
When installing tarballs, unpack, then read the
INSTALL or README file (with cat). Although most packages follow a
standard format, some have their own install scripts or are run
directly from that directory.
The standard format is:
- tar -xzvf <filename.tgz>
- cd filename (into the similarly named directory)
- make
- su (change to root)
- make install
Read the output carefully when it stops, to
ensure you have no errors. It may not have completed the operation due
to a missing library or dependency.
make:
For installing tgz files, as per the INSTALL file. Not
installed by default in opensuse. Install with
YAST, as well as other packages as required, such as gcc-c++ and
kernel-source.
make install: must be root
tar -xzvf <filename.tgz>
: Unpacks the file separate files in its own directory
tar -cvzf <targetfile.tgz> <source files> (could be *) :
packs up files into a tarball
gunzip <filename.gz>
unzips files with a .gz extension
bunzip2 : same for .bz2 extensions. Must have bzip2
installed.
unzip : for .zip files.
Opensuse, Mandriva and Utilities
Distro-dependent commands:
drakconf : mandriva / pclinuxos system configuration tool
ksnapshot : kde utility for screenshots. Easy to launch through `run
command' window: alt F2
qtconfig : to configure appearance of QT applications, eg.fonts, styles.
SuSEconfig : run in
terminal window after manually installing rpm's on an opensuse
system. Updates menus, database etc.
yast : console opensuse system configuration tool.
yast2 : launches GUI version from command line.
zypper: openSUSE
or Ark Linux command line package management utility for installing,
patching or upgrading via repositories. Less controllable than YAST
unless you are well acquainted with usage. See man page or google. zypper -up upgrades all packages from enabled repositories.
pdftohtml
<filename.pdf> : Utility that converts pdf files into html format.
wine <appname.exe> : run certain windows executables with wine.
winecfg : sets up wine before running for the first time.
ies4linux : uses wine and cabextract (install with wine) to install Internet Explorer 5 or 6
ie4wine : uses wine to install Internet Explorer 7
Miscellaneous, Path and Environment
cal : calendar for this month
cal -y : for year
cal 1992 : you can specify any year. Try 1752 and check
September!
dmesg : shows you all the boot messages.
env : displays exported environment variables, like the path
and other interesting stuff
echo $PATH : shows the path that is followed to find
executables
export PATH="$PATH:/opt/gnome/bin" : add a new directory
eg. /opt/gnome/bin to path
exec : executes a file, usually a binary or executable
lprm : removes all
from the printer queue except what is already buffered in
printer
passwd : change password. Follow instructions. As root: passwd <username>
does not require old password to be entered, can be changed
directly.
Wild Cards and various symbols
* wildcard symbol. Match any string of characters, eg rm
*.c would delete all files in the current directory whose names
end with `.c'.
| : pipe - the vertical bar - send the output of one command to another program, eg.
less, grep. eg. cat <longfile> | less or rpm -qa | grep qt
> : send the output of a file to another file, eg cat
xxx > xxx.txt
>> : appends the output, otherwise an existing file will get
overwritten eg. cat xxyy >> xxx.txt
& : runs a job in the background
.. (double dot) parent directory of where you are. Can be used with other
stuff, like cd.
. (single dot) current directory.
~ (tilde, that squiggly thing) home directory
./executablename : (dot-slash) to run an executable in the current directory
(it won't be in the path.)
Terminal/Console Keyboard Shortcuts
Ctl - c : kills the process running.
Ctl - \ : force kills program, causes core dump, works when
Ctl-c doesn't.
Ctl - z : puts a job into suspension
Ctl -d : exits you from program /closes that shell/ end of text
Ctl - o : use to flip back and forth between mc and console
Ctl - l : clears screen
Ctl - a : takes cursor to front of command line, bash only
Ctl - Esc : launches ksysguard - system activity monitor - graphical utility to kill a process.
Ctl - Alt -Backspace : get out of X (or back to login window in
runlevel 5)
Ctl - Alt -Del : shutdown and reboot
Ctl - Alt - F1 to F6 : takes you into consoles
Ctl - Alt - F7 : back into graphical mode
Ctl - F1/F2/F3/F4 - to change you to each desktop, a KDE feature
only
Ctrl-Alt-Esc : Kill window. Gives you a skull-and crossbones - click on
window to kill. Only works if one window has frozen, not the
whole system.
Alt - F2: pops up 'run command' window
Alt - F1 : pops up kde menu
Alt-Tab : Change between windows on the current KDE desktop.
Alt-F3 : Popup the window operation menu.
Alt-F4 : Close active window.
Shift - pg up/down is how you scroll in the console
spacebar : skips whole screen in less
Word processing shortcuts
home : takes you to beginning of line
end : to end of line
Ctl c : copy
Ctl x : cut
Ctl v : paste
Ctl z : undo
Ctl a : select whole doc
Ctl s : save your doc
Shift pgdn : highlights whole page down
Shift end : highlights text to end of line
Jane Trembath, Benoni, South Africa June 2010
top
of page