Shell command basics
You should already know how shell commands work at a basic level. To start out, you need to find your Terminal program in which all the above shell can be found , by default most of the Linux distros bash was the default shell. The command line you typed is divided up into words. The first word is used as the command name, which is either understood by the shell itself, or used as the name of an external program to run. In either case, the rest of the words are used as arguments to the command.
What is BASH?
BASH = Bourne Again SHell
- Bash is a shell written as a free replacement to the standard Bourne Shell (/bin/sh) originally written by Steve Bourne for UNIX systems.
- It has all of the features of the original Bourne Shell, plus additions that make it easier to
- program with and use from the command line.
- Since it is Free Software, it has been adopted as the default shell on most Linux systems.
How is BASH different from the DOS command prompt?
Case Sensitivity – In Linux/UNIX, commands and file names are case sensitive, meaning that typing “EXIT” instead of the proper “exit” is a mistake.
“\” vs. “/” –In DOS, the forward-slash “/” is the command argument delimiter, while the backslash “\” is a directory separator. In Linux/UNIX, the “/” is the directory separator, and the “\” is an escape character._
Filenames : The DOS world uses the “eight dot three” file name convention,Meaning that all files followed a format that allowed up to 8 characters in the filename, followed by a period (“dot”), followed by an option extension,up to 3 characters long (e.g. FILENAME.TXT). In UNIX/Linux, there is no such thing as a file extension. Periods can be placed at any part of the filename, and “extensions” may be interpreted differently by all programs, or not at all.
Before we continue to learn about Linux shell commands, it is important to know that there are many symbols and characters that the shell interprets in special ways. This means that certain typed characters: a) cannot be used in certain situations, b) may be used to perform special operations, or, c) must be “escaped” if you want to use them in a normal way.
\ Escape character. If you want to reference a special character, you must “escape” it with a backslash first.
Example: touch /tmp/filename\*
/ Directory separator, used to separate a string of directory names.
. Current directory. Can also “hide” files when it is the first character in a filename.
.. Parent directory
~ User’s home directory
* Represents 0 or more characters in a filename, or by itself, all files in a directory.
Example: pic*2002 can represent the files pic2002, picJanuary2002,picFeb292002, etc.
? Represents a single character in a filename.
Example: hello?.txt can represent hello1.txt, helloz.txt, but not hello22.txt
[ ] Can be used to represent a range of values, e.g. [0-9], [A-Z], etc.
Example: hello[0-2].txt represents the names hello0.txt, hello1.txt, and hello2.txt
| “Pipe”. Redirect the output of one command into another command.
Example: ls | more
> Redirect output of a command into a new file. If the file already exists, over-write it.
Example: ls > myfiles.txt
>> Redirect the output of a command onto the end of an existing file.
Example: echo ìMary 555-1234î >> phonenumbers.txt
< Redirect a file as input to a program.
Example: more < phonenumbers.txt
; Command separator. Allows you to execute multiple commands on a single line.
Example: cd /var/log ; less messages
&& Command separator as above, but only runs the second command if the first one
finished without errors.
Example: cd /var/logs && less messages
& Execute a command in the background, and immediately get your shell back.
Example: find / -name core > /tmp/corefiles.txt &
Using a Command’s Built-In Help
Many commands have simple “help” screens that can be invoked with special command flags. These flags usually look like “-h” or “–help”.
Example: grep –help
Online Manuals: “Man Pages”
The best source of information for most commands can be found in the online manual pages, known as “man pages” for short. To read a command’s man page, type “man command”.
Examples: man ls Get help on the “ls” command.
man man A manual about how to use the manual!
Navigating the Linux Filesystem
The Linux filesystem is a tree-like hierarchy hierarchy of directories and files. At the base of the filesystem is the “/” directory, otherwise known as the “root” (not to be confused with the root user). Unlike DOS or Windows filesystems that have multiple “roots”, one for each disk drive, the Linux filesystem mounts all disks somewhere underneath the / filesystem. The following table describes many of the most common Linux directories.
The Linux Directory Layout
The nameless base of the filesystem. All other directories, files, drives, and devices are attached to this root. Commonly (but incorrectly) referred to as the “slash” or “/” directory. The “/” is just a directory separator, not a directory itself.
/bin Essential command binaries (programs) are stored here (bash, ls, mount, tar, etc.)
/boot Static files of the boot loader.
/dev Device files. In Linux, hardware devices are acceessd just like other files, and
they are kept under this directory.
/etc Host-specific system configuration files.
/home Location of users’ personal home directories (e.g. /home/susan).
/lib Essential shared libraries and kernel modules.
/proc Process information pseudo-filesystem. An interface to kernel data structures.
/root The root (superuser) home directory.
/sbin Essential system binaries (fdisk, fsck, init, etc).
/tmp Temporary files. All users have permission to place temporary files here.
/usr The base directory for most shareable, read-only data (programs, libraries,documentation, and much more).
/usr/bin Most user programs are kept here (cc, find, du, etc.).
/usr/include Header files for compiling C programs.
/usr/lib Libraries for most binary programs.
/usr/local “Locally” installed files. This directory only really matters in environments where files are stored on the network. Locally-installed files go in /usr/local/bin, /usr/local/lib,etc.). Also often used for software packages installed from source, or software not officially shipped with the distribution.
/usr/sbin Non-vital system binaries (lpd, useradd, etc.)
/usr/share Architecture-independent data (icons, backgrounds, documentation, terminfo, man pages, etc.).
/usr/src Program source code. E.g. The Linux Kernel, source RPMs, etc.
/usr/X11R6 The X Window System.
/var Variable data: mail and printer spools, log files, lock files, etc.
Linux System Management
env Show all environment variables.
export Set the value of a variable so it is visible to all subprocesses that belong to the current shell.
printenv Print all or part of environment.
reset Restores runtime parameters for session to default values.
set Shows how the environment is set up. This is a builtin bash command.
ldconfig Updates the necessary links for the run time link bindings.
ldd Tells what libraries a given program needs to run.
ltrace A library call tracer.
trace Same as ltrace.
Module and kernel management
depmod Handle loadable modules automatically. Creates a makefile-like dependency file.
dmesg Print or control the kernel ring buffer. This shows the last kernel startup messages.
genksyms Generate symbol version information.
insmod Install loadable kernel module.
lsmod List currently installed kernel modules.
modprobe Used to load a set of modules that are marked with a specified tag.
rmmod Unload loadable modules.
Runtime level management
exit Terminates the shell.
halt Stop the system.
init Process control initialization.
initscript Script that executes inittab commands.
logout Log the user off the system.
poweroff Brings the system down.
reboot Reboot the system.
runlevel List the current and previous runlevel.
setsid Run a program in a new session.
shutdown If your system has many users, use the command “shutdown -h +time message”, where
time is the time in minutes until the system is halted, and message is a short explanation of why the system is shutting down.
# shutdown -h +10 ‘We will install a new disk. System should be back on-line in three hours.’ telinit By requesting run level 1 a system can be taken to single user mode.
System Configuration tools
ctrlaltdel Set the function of the ctrl alt del combination.
isapnp Configure ISA plug and play devices.
kbdconf A Redhat Linux tool which configures the /etc/sysconfig/keyboard file which specifies
the location of the keyboard map file. This is a GUI based tool.
kbdrate Set the keyboard repeat rate and delay time.
kernelcfg A Redhat GUI kernel configuration tool, Start X, then run it from a console session.
linuxconf Redhat’s GUI linux system configuration tool.
lspci List all pci devices.
mesg Control write access to your terminal.
mouseconfig A Redhat Linux tool used to configure the /etc/sysconfig.mouse file. This is a GUI tool.
ndc Script file used to restart, stop, start the DNS server.
Printtool Redhat’s GUI printer configuration tool.
quota Display disk usage and limits.
quotacheck Scan a filesystem for disk usages.
quotaoff Turn file system quotas off.
quotaon Turn file system quotas on.
samba Script file used to stop, start, restart samba services when not run using inetd.
setpci Configure pci devices.
setserial Set/get serial port information.
setterm Set terminal attributes.
setup Set up devices and file systems.
stty Used to configure and print the console devices.
swapon Enable devices and files for paging and swapping.
swapoff Disable devices and files for paging and swapping.
timeconfig A Redhat Linux tool used to configure the /etc/sysconfig/clock file. This is a GUI toolused to set timezone and whether or not the clock is set to GMT time.
tset Used to initialize terminals.
arch Print machine architecture.
df Shows disk free space.
du Shows disk usage.
free Display used and free memory on the system.
ipcrm Provide information on ipc facilities.
ipcs Same as ipcrm.
lsdev Display information about installed hardware via files in the /proc directory.
lsof List open files.
lspci List PCI devices .
pnpdump Lists ISA plug and play devices resource information.
procinfo Display system status gathered from proc.
pstree Display a tree of processes.
runlevel Find the current and previous system runlevel.
klogd Kernel log daemon which intercepts and logs Linux kernel messages.
logger Make entries in the system log.
syslogd Linux system logging utilities.
clock Used to change or get current time. The command “clock -–w” sets the hardware clock.
date Print or set the system date and time.
hwclock Set or read the hardware CMOS clock.
timed Time server daemon to synchronize the host’s time with other machines, normally invoked at boot time from the rc(8) file.
timedc Timed control program.
tzset Used to change the users private time zone by setting the TZ environment variable.
uptime Reports how long the system has been running.
zdump Prints the current time in each zonename named on the command line.
zic Reads text from files named on the command line and creates time conversion files.
X Management and programs
SuperProbe Probe video hardware.
Xconfigurator The Redhat tool used during system setup to configure X.
xconsole Displays messages usually sent to /dev/console.
xf86config Older version of XF86Setup.
XF86Setup A newer X configuration program with a GUI interface which modifies the “/etc/X11/ XF86Config” configuration file.
xvidtune This program will test video modes on the fly without modification to your X configuration. Read the usr/X11R6/lib/X11/doc/VideoModes.doc file before running this program.
Trace ssytem calls and signals for a binary program.
stty Change and print terminal line settings.
tload Prints a graphic representation of the system load average.
tty Print the filename of the terminal connected to standard input.
uname Print system information, Prints Linux.
vmstat Report virtual memory statistics.
xcpustate Displays CPU states (idle, nice, system, kernel) statistics. Runs in X?
Linux User Management
ac Print statistics about users’ connect time.
accton Turn on accounting of processes. To turn it on type “accton /var/log/pacct”.
adduser Ex: adduser mark – Effect: Adds a user to the system named mark
chage Used to change the time the user’s password will expire.
chfn Change the user full name field finger information
chgrp Changes the group ownership of files.
chown Change the owner of file(s ) to another user.
chpasswd Update password file in batch.
chroot Run command or interactive shell with special root directory.
chsh Change the login shell.
edquota Used to edit user or group quotas. This program uses the vi editor to edit the quota.user and quota.group files. If the environment variable EDITOR is set to emacs, the emacs editor will be used. Type “export EDITOR=emacs” to set that variable.
faillog Examine faillog and set login failure limits.
finger See what users are running on a system.
gpasswd Administer the /etc/group file.
groupadd Create a new group.
grpck Verify the integrity of group files.
grpconv Creates /etc/gshadow from the file /etc/group which converts to shadow passwords.
grpunconv Uses the files /etc/passwd and /etc/shadow to create /etc/passwd, then deletes /etc/
shadow which converts from shadow passwords.
groupdel Delete a group.
groupmod Modify a group.
groups Print the groups a user is in
id Print real and effective user id and group ids.
last Display the last users logged on and how long.
lastb Shows failed login attempts. This command requires the file /var/log/btmp to exist in order to work. Type “touch /var/log/btmp” to begin logging to this file.
lastcomm Display information about previous commands in reverse order. Works only if process accounting is on.
lastlog Formats and prints the contents of the last login.
logname Print user’s login name.
newgrp Lets a suer log in to a new group.
newusers Update and create newusers in batch.
passwd Set a user’s pass word.
pwck Verify integrity of password files.
pwconv Convert to and from shadow passwords and groups.
quota Display users’ limits and current disk usage.
quotaoff Turns system quotas off.
quotaon Turns system quotas on.
quotacheck Used to check a filesystem for usage, and update the quota.user file.
repquota Lists a summary of quota information on filesystems.
sa Generates a summary of information about users’ processes that are stored in the /var/log/pacct file.
smbclient Works similar to an ftp client enabling the user to transfer files to and from a windows based computer.
smbmount Allows a shared directory on a windows machine to be mounted on the Linux machine.
smbpasswd Program to change users passwords for samba.
su Ex: su mark – Effect: changes the user to mark, If not root will need marks password.
sulogin Single user login.
ulimit A bash builtin command for setting the processes a user can run.
useradd Create a new user or update default new user information.
userdel Delete a user account and related files.
usermod Modify a user account.
users Print the user names of users currently logged in.
utmpdump Used for debugging.
vigr Edit the password or group files.
vipw Edit the password or group files.
w Display users logged in and what they are doing.
wall Send a message to everybody’s terminal.
who Display the users logged in.
whoami Print effective user id.
Linux Printing and Programming
banner Print a large banner on printer.
lpr Print, submits a job to the printer.
Ex: lpr -Pdest filename. Dest is the destination printer. the name of the file to print is filename.
lpc Lets you check the status of the printer and set its state.
lpq Shows the contents of a spool directory for a given printer.
lprm Removes a job from the printer queue.
gs Ghostscript – A PostScript interpreter.
pr Print a file. Ex: pr filename |pg.
tunelp Set various parameters for the lp device.
awk C programming language – allows finding of lines with specific characters.
bc A precision calculator language.
cproto Reads in c source files and generates function prototypes for all the functions.
ctags Generate tag (index) files for source code.
dialog Display dialog boxes from shell scripts.
egcs GNU project C and C++ compiler.
f2c Converts fortran code to c code.
gawk Pattern scanning and processing language. GNU’s implementation of awk.
gccGNU c and c++ compiler.
cb – C program beautifier
ctrace – C program debugger
cxref – generate C program cross reference
workshop – SPARCStation development environment
gcc GNU ANSI C Compiler
indent – indent and format C program source
CC – C++ compiler for Suns SPARC systems
g++ GNU C++ Compiler
f77 – Fortran 77 compiler
f90 – Fortran 90 compiler
f95 – Fortran 95 compiler
bc – interactive arithmetic language processor
gcl – GNU Common Lisp
squeak – smalltalk
mathematica – symbolic maths package
matlab – maths package
-g Produce debugging information.
-pg Generate profile info that will allow the gprof program to display timing info.
gdb Debugging program.
gprof In /usr/bin, allows you to tell where most of the execution time is spent in a program.
igawk Gawk with include files.
indent Reformats c source code for consistent indenting and opening and closing bracketsconsistent.
ld The GNU linker.
ld86 Linker for as86.
make GNU make utility to maintain a group of programs.
nm Lists symbols from object files.
objcopy Copy and translate object files.
objdump Display information from object files.
p2c Converts pascal code to c code.
prompt set prompt = “waldo” (in C shell) ps1 = ‘waldo’ (in BOURNE shell)
PS1=”[\u@\h \w]\\$ ” makes prompt = [username@hostname current directory]
see the BASH or your shell’s man page for more information.
size List section sizes and total size.
strip Discard symbols from object files.
xxgdb X windows based graphical user interface to gdb.
Perl A command interpreter for the Practical Extraction and Report Language (perl).
Python A report language.
Tcl Tool command language shell. Enter by typing tclsh.
info Return information about the state of the Tcl interpreter.
Tk A graphical user extension to Tcl based on X windows. Commands are same as Tcl.
Mysql, Oracle and informix are available.
setoracle – set up oracle environment and path on Suns
slplusq – run the Oracle SQL interpreter
sqlldr – run the Oracle SQL data loader
mysql – run the mysql SQL interpreter
Miscellaneous Linux Commands
Keys and keycodes and console
dumpkeys Dump keyboard translation tables.
getkeycodes Print kernel scancode-to-keycode mapping table.
lesskey Specify key bindings for less.
loadkeys Load keyboard translation tables.
psfaddtable Add a unicode character table to a console font.
psfgettable Extract the embedded Unicode character table from a console font.
psfstriptable Remove the embedded Unicode character table from a console font.
resizecons Change kernel idea of the console size.
setkeycodes Load kernel scancode-to-keycode mapping table.
captoinfo Convert a termcap description into a terminfo description.
clear Clear the terminal screen.
infocmp Compare or print out terminfo descriptions.
reset Restore run-time parameters for session to default values.
tie Merge or apply WEB change files.
toe Table of terminfo entries.
tput Initialize a terminal or query terminfo database.
tset Terminal initialization.
Ex:: alias dir=’ls -a’ – Effect: Makes dir list all files (no spaces next
to the = sign).
bison GNU project parser generator.
chvt Change foreground virtual terminal.
crack Program used to find bad passwords or crack security.
cvs Concurrent Versions System.
deallocvt Gets rid of unused virtual terminals.
dumpkeys Dump keyboard translation tables.
fc Fix command. Used to edit the commands in the current history list.
gdbm The GNU database manager.
gpm A cut and paste mouse server.
history Show commands listed in the shell history (last n).
lilo Boot management program.
mc Visual shell for Unix like system. A file manager.
nc A file manager.
pdksh Public domain Korn shell.
pilot Filesystem browser.
PS1=”Please enter a command” Set Bash level 1 response.
PS2=”I need more information” Set Bash level 2 response.
rcs Recision Control system. Change RCS file attributes.
sash Standalone shell with built in commands.
screen Screen manager with VT100 terminal emulation.
sleep Ex: “sleep 2” – wait 2 seconds.
tcsh C shell with filename completion and command line editing.
unalias Ex: “unalias dir” – Effect: Removes the alias dir.
units Unit conversion program.
l set – Ex: set t=/temp
l unset – Ex: unset t
l echo – Ex: echo $t
zsh The Z shell.
ttysnoop A program that comes with some systems that lets the administrato r to snoop on the user’s terminals.
Configure Kernel Parameters
Configuring the kernel with interactive, menu or X window interface.
Compile Kernel Source
Building and installing a new kernel.
Building and installing modules.
NFS File Sharing
/etc/fstab file systems mounted during boot.
/etc/exports NFS server export list.
/etc/auto.master auto mount master file.
X Window (XFree86)
startx start X window system.
xf86config setup X server and generate XF86config.
XFreee86 auto configuration (Plug-n-Play), generate a template named “XF86Config.new”
Ctrl+Alt+Del stop X server (on some system Ctrl+Alt+ESC).
Ctrl+Alt+F1 F1 temporary switch to text mode
Ctrl+Alt+F7 F7 switch back to graphic mode.
SuperProbe detect graphic hardware.
xvidtune adjust X server origin and size.
xmodmap modifying key map and mouse button map.
xhost server access control program for X.
xsetroot root window parameter setting utility for X.
xlsfonts server font list displayer for X.
xset ser preference utility for X.
Linux Document Preparation
addftinfo Add information to troff font files for use with groff.
afmtodit Create font files for use with groff.
colcrt Filter nroff output for CRT previewing.
enscript Convert text files to postscript.
eqn Format equations for troff. Compiles descriptions of equations embedded in troff.
geqn Used to print special symbols and complex equations. Not user friendly.
git GNU interactive tools.
gitaction Per file type action script.
gitkeys Display key sequence utility.
gitmount Allows any block device to be mounted.
gitps A graphical process viewer and killer program.
gitrgrep A recursive grep program.
gitunpack Used to unpack archive files in a given directory.
gitview A hexadecimal or ASC file viewer.
grodvi Convert Groff output to TeX dvi format, normally run by groff.
groff Used as a front end for the groff document formatting system.
grops Postscript driver for groff. invoked by groff.
gtbl Used to prepare charts, multicolumn lists and tabular formats.
hpftodit Create font description files for use with groff.
indxbib Make inverted index for bibliographic databases.
lookbib Search bibliographic databases.
nroff Emulate nroff command with groff.
pfbtops Translate a postscript font in .pbf format to ASCII.
pic Compile pictures for troff or Tex.
psbb Extract bounding box from postscript document.
refer Preprocess bibliographic references for groff.
rpm2html Make an html database from rpm repository.
soelim Interpret .so requests in groff input.
tbl Format tables for groff.
TeX Used to format professionally typeset documents (Chapters, Headings, and paragraphs).
texi2html Texinfo to html converter.
tfmtodit Create font files for use with groff.
troff Formats documents as part of the groff document formatting system.
yacc A parser generator.