Useful Linux Commands and Utilities A-Z
cal : calendar for this month
cal -y : for this year
cal 1992 : you can specify any year. Try 1752 and check September!
cal 03 2011: check a specific month in another year. Handy when you don't have next year's calendar available yet.
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
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 ..
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
chgrp Jane <filename> : changed ownership of file to group 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
chown -R Jane. updates : recursively changed /home/Jane/updates subdirectory to ownership by Jane
chgrp : changes the group which owns a file eg. chgrp Jane <filename>
clear : clears text out of the top of a terminal. Can still be scrolled back through. A shortcut is Ctl - l
cmp -l file1 file2: displays all differences between binary files
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.
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.
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.
df -h : shows amount of disk used, in human readable format
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 reastoring a backup in an upgrade. Pipe to less to scroll through output at your pace.
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
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
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 : exec executes a file, usually a binary or executable
file <filename> : takes a guess at the type of data contained in a file
ffmpeg -i moviefile.flv -f mp3 musicfile.mp3: converts video files, eg. youtube flv to mp3
ffmpeg -i musicfile.ogg musicfile.mp3: converts ogg to mp3 for those annoying media players that don't play ogg files
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
See also locate, which is much faster - searches quickly through a system database.
free : quick method of checking memory usage
fuser -vn tcp <portnumber> : names the service that uses that port.
grep <text string> <filename> : find text strings in files and returns the whole line.
gunzip <filename.gz> unzips files with a .gz extension
bunzip2 : same for .bz2 extensions. Must have bzip2 installed.
unzip : for .zip files.
head <filename> Gives first 10 lines of file. head -1 would give the first line only. Also see tail
Help type commands:
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
whereis <cmdname> : locates the binary, source, and manual page files for an executable
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
history : prints out about the last 1000 commands
ifconfig : lists interfaces and traffic. Can be used to get your current ip address. Must be root
init0: shuts system down (starting runlevel 0)
init1: goes down to to basic admin level
init6: reboots system
kill -1 or kill -HUP <PID> this interrupts the process and makes it reread its config
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
ksnapshot : for screenshots. Easy to launch through `run command' window: alt F2
ldd <pkgname>: shows missing libraries that files/packages depend on. Prints out library dependencies for a given executable
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. Type q to exit. Press n to find the next occurence, and shift - n to find the previous.
more : shows the percentage that you are through the file. Move down with enter key. No backwards movement permitted.
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 : create / update the locate database. Must be root.
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 : the ln command alone makes a hard link - it's a copy of the original file and 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.
lprm : removes all from the printer queue except what is already buffered in printer
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
lsof : lists open files. eg. If cdrom is busy and won't unmount, do lsof |grep cdrom, then kill PID's using it.
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.
md5 <filename.iso> : shows md5sum, to compare before writing a disc. Takes a while to calculate.
mkdir : create directory
mkdir -p temp/grandparent/parent/child : create a hierarchy of directories - use the -p (parent) option
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.
mount /mnt/cdrom : to mount the device you want on the command line. Use umount when finished. Command line and gui mounting/unmounting not interchangeable.
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
mv file1 file2 : rename or move files and directories
mv mydir newdir : To rename a directory, specify the old directory name and new directory name:
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
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.
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
oggenc *.wav : converts wav to similarly named ogg file
passwd : use to change password. Follow instructions. As root: passwd <username> does not require old password to be entered, can be changed directly.
pdftohtml <filename.pdf> : Utility (must be installed) that converts pdf files into html format.
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
rm <filename> : deletes file. You can use wildcards with the rm command rm *.txt or rm file*
rm -i <filename> : deletes file interactively, asks for confirmation
rm -rf : To delete a directory. Dangerous as root. -f (force) option 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.
The RPM command
To install, query, select and build rpm packages. The man page is fairly understandable and lists all the 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.
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
SuSEconfig : run in terminal window after manually installing rpm's on a SuSe system. updates all menus, database etc.
shutdown -h now: shuts the system down immediately. Use also init0
shutdown -r now: reboots the system immediately. Use also init6
shutdown -rF now: reboots and does a filesystem check on reboot. Handy if your machine had previously shut down irregularly (power failure, freeze up.)
ssh2 -l <user> <domain> : usage for ssh2. Will be prompted for password for user eg ssh2 -l jane ant.co.za
su: use to log in as another user while logged in as another. Most often used to become root. Will be prompted for password.
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
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. Also see head
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
touch : creates files or updates the modification times
type <executablename> : shows you where the executable is run from.
[Jane@mylinuxbox log]$ type gpm
gpm is /usr/sbin/gpm
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.)
whereis <cmdname>: locates the binary, source, and manual page files for an executable. See help dept
which <executablename> : shows full path to executable. Similar to using type
wget -r http://www.xxxx : to download the pages of an entire website. -m creates a mirror and is recursive
wc: counts lines, words and characters in a file. -c, -w or -l options to only display one. Spaces are considered as words, though
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 if 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