LINUX troubleshooting commands/tools

List of Linux and Unix commands

Here is a list of Linux and Unix commands which will be useful for you. These commands can be used as a quick reference to simplify your Linux or Unix using experience. The commands are categorized into different categories depending upon the operation of the command. Almost commands of every type are listed here. The commands are listed with their category , command and the operation it does. The list goes as follows..
File Commands
  • ls : directory listing
  • ls -al : formatted listing with hidden files
  • cd dir : change directory to dir
  • cd : change to home
  • pwd : show current directory
  • mkdir dir : create a directory dir
  • rm file : delete file
  • rm -r dir : delete directory dir
  • rm -f file : force remove file
  • rm -rf dir : force remove directory dir
  • cp file1 file2 : copy file1 to file2
  • cp -r dir1 dir2 : copy dir1 to dir2; create dir2 if it doesn’t exist
  • mv file1 file2 : rename or move file1 to file2 if file2 is an existing directory, moves file1 into directory file2
  • ln -s file link : create symbolic link link to file
  • touch file : create or update file
  • cat > file : places standard input into file
  • more file : output the contents of file
  • head file : output the first 10 lines of file
  • tail file : output the last 10 lines of file
  • tail -f file : output the contents of file as it grows, starting with the last 10 lines
Process Management
  • ps : display your currently active processes
  • top : display all running processes
  • kill pid : kill process id pid
  • killall proc : kill all processes named proc
  • bg : lists stopped or background jobs; resume a stopped job in the background
  • fg : brings the most recent job to foreground
  • fg n : brings job n to the foreground
File Permissions
  • chmod octal file – change the permissions of file to octal, which can be found separately for user, group, and world by adding: 4 – read (r), 2 – write (w), 1 – execute (x)
Examples:
  • chmod 777 – read, write, execute for all
  • chmod 755 – rwx for owner, rx for group and world
For more options, see man chmod.
SSH
  • ssh user@host : connect to host as user
  • ssh -p port user@host : connect to host on port port as user
  • ssh-copy-id user@host : add your key to host for user to enable a keyed or passwordless login
Searching
  • grep pattern files : search for pattern in files
  • grep -r pattern dir : search recursively for pattern in dir
  • command | grep pattern : search for pattern in the output of command
  • locate file : find all instances of file
System Info
  • date : show the current date and time
  • cal : show this month’s calendar
  • uptime : show current uptime
  • w : display who is online
  • whoami : who you are logged in as
  • finger user : display information about user
  • uname -a : show kernel information
  • cat /proc/cpuinfo : cpu information
  • cat /proc/meminfo : memory information
  • man command : show the manual for command
  • df : show disk usage
  • du : show directory space usage
  • free : show memory and swap usage
  • whereis app : show possible locations of app
  • which app : show which app will be run by default
Compression
  • tar cf file.tar files : create a tar named file.tar containing files
  • tar xf file.tar : extract the files from file.tar
  • tar czf file.tar.gz files : create a tar with Gzip compression
  • tar xzf file.tar.gz : extract a tar using Gzip
  • tar cjf file.tar.bz2 : create a tar with Bzip2 compression
  • tar xjf file.tar.bz2 : extract a tar using Bzip2
  • gzip file : compresses file and renames it to file.gz
  • gzip -d file.gz : decompresses file.gz back to file
Network
  • ping host : ping host and output results
  • whois domain : get whois information for domain
  • dig domain : get DNS information for domain
  • dig -x host : reverse lookup host
  • wget file : download file
  • wget -c file : continue a stopped download
Installation
Install from source:
  • ./configure
  • make
  • make install
  • dpkg -i pkg.deb : install a package (Debian)
  • rpm -Uvh pkg.rpm : install a package (RPM)
Shortcuts
  • Ctrl+C – halts the current command
  • Ctrl+Z – stops the current command, resume with fg in the foreground or bg in the background
  • Ctrl+D – log out of current session, similar to exit
  • Ctrl+W – erases one word in the current line
  • Ctrl+U – erases the whole line
  • Ctrl+R – type to bring up a recent command
  • !! – repeats the last command
  • exit – log out of current session

Linux Commands

mkdir - make directories
Usage
mkdir [OPTION] DIRECTORY
Options
Create the DIRECTORY(ies), if they do not already exist.
 Mandatory arguments to long options are mandatory for short options too.
 -m, mode=MODE  set permission mode (as in chmod), not rwxrwxrwx - umask
 -p, parents  no error if existing, make parent directories as needed
 -v, verbose  print a message for each created directory
 -help display this help and exit
 -version output version information and exit
cd - change directories
Use cd to change directories. Type cd followed by the name of a directory to access that directory.Keep in mind that you are always in a directory and can navigate to directories hierarchically above or below.
mv- change the name of a directory
Type mv followed by the current name of a directory and the new name of the directory.
 Ex: mv testdir newnamedir
pwd - print working directory
will show you the full path to the directory you are currently in. This is very handy to use, especially when performing some of the other commands on this page
 rmdir - Remove an existing directory
 rm -r
Removes directories and files within the directories recursively.
chown - change file owner and group
Usage
chown [OPTION] OWNER[:[GROUP]] FILE
chown [OPTION] :GROUP FILE
chown [OPTION] --reference=RFILE FILE
Options
Change the owner and/or group of each FILE to OWNER and/or GROUP. With --reference, change the owner and group of each FILE to those of RFILE.
 -c, changes like verbose but report only when a change is made
 -dereference affect the referent of each symbolic link, rather than the symbolic link itself
 -h, no-dereference affect each symbolic link instead of any referenced file (useful only on systems that can         change the ownership of a symlink)
 -from=CURRENT_OWNER:CURRENT_GROUP
  change the owner and/or group of each file only if its current owner and/or group match those specified here.  Either  may  be  omitted,  in which case a match is not required for the omitted attribute.
-no-preserve-root do not treat `/' specially (the default)
-preserve-root fail to operate recursively on `/'
-f, -silent, -quiet  suppress most error messages
-reference=RFILE use RFILE's owner and group rather than the specifying OWNER:GROUP values
-R, -recursive operate on files and directories recursively
-v, -verbose output a diagnostic for every file processed
The  following options modify how a hierarchy is traversed when the -R option is also specified. If more than one is specified, only the final one  takes effect.
-H     if a command line argument is a symbolic link to a directory, traverse it
-L     traverse every symbolic link to a directory encountered
-P     do not traverse any symbolic links (default)
chmod - change file access permissions
Usage
chmod [-r] permissions filenames
 r  Change the permission on files that are in the subdirectories of the directory that you are currently in.        permission  Specifies the rights that are being granted. Below is the different rights that you can grant in an alpha  numeric format.filenames  File or directory that you are associating the rights with Permissions
u - User who owns the file.
g - Group that owns the file.
o - Other.
a - All.
r - Read the file.
w - Write or edit the file.
x - Execute or run the file as a program.
Numeric Permissions:
CHMOD can also to attributed by using Numeric Permissions:
400 read by owner
040 read by group
004 read by anybody (other)
200 write by owner
020 write by group
002 write by anybody
100 execute by owner
010 execute by group
001 execute by anybody
ls - Short listing of directory contents
-a        list hidden files
-d        list the name of the current directory
-F        show directories with a trailing '/'
            executable files with a trailing '*'
-g        show group ownership of file in long listing
-i        print the inode number of each file
-l        long listing giving details about files  and directories
-R        list all subdirectories encountered
-t        sort by time modified instead of name
cp - Copy files
cp  myfile yourfile
Copy the files "myfile" to the file "yourfile" in the current working directory. This command will create the file "yourfile" if it doesn't exist. It will normally overwrite it without warning if it exists.
cp -i myfile yourfile
With the "-i" option, if the file "yourfile" exists, you will be prompted before it is overwritten.
cp -i /data/myfile
Copy the file "/data/myfile" to the current working directory and name it "myfile". Prompt before overwriting the  file.
cp -dpr srcdir destdir
Copy all files from the directory "srcdir" to the directory "destdir" preserving links (-poption), file attributes (-p option), and copy recursively (-r option). With these options, a directory and all it contents can be copied to another dir
ln - Creates a symbolic link to a file.
ln -s test symlink
Creates a symbolic link named symlink that points to the file test Typing "ls -i test symlink" will show the two files are different with different inodes. Typing "ls -l test symlink" will show that symlink points to the file test.
locate - A fast database driven file locator.
slocate -u
This command builds the slocate database. It will take several minutes to complete this command.This command must be used before searching for files, however cron runs this command periodically  on most systems.locate whereis Lists all files whose names contain the string "whereis". directory.
more - Allows file contents or piped output to be sent to the screen one page at a time
less - Opposite of the more command
cat - Sends file contents to standard output. This is a way to list the contents of short files to the screen. It works well with piping.
whereis - Report all known instances of a command
wc - Print byte, word, and line counts
bg
bg jobs Places the current job (or, by using the alternative form, the specified jobs) in the background, suspending its execution so that a new user prompt appears immediately. Use the jobs command to discover the identities of background jobs.
cal month year - Prints a calendar for the specified month of the specified year.
cat files - Prints the contents of the specified files.
clear - Clears the terminal screen.
cmp file1 file2 - Compares two files, reporting all discrepancies. Similar to the diff command, though the output format differs.
diff file1 file2 - Compares two files, reporting all discrepancies. Similar to the cmp command, though the output format differs.
dmesg - Prints the messages resulting from the most recent system boot.
fg
fg jobs - Brings the current job (or the specified jobs) to the foreground.
file files - Determines and prints a description of the type of each specified file.
find path -name pattern -print
Searches the specified path for files with names matching the specified pattern (usually enclosed in single quotes) and prints their names. The find command has many other arguments and functions;
.
ftp hostname
Opens an FTP connection to the specified host, allowing files to be transferred. The FTP program provides subcommands for accomplishing file transfers; see the online documentation.
head files - Prints the first several lines of each specified file.
ispell files - Checks the spelling of the contents of the specified files.
kill process_ids
kill - signal process_ids
kill -l
Kills the specified processes, sends the specified processes the specified signal (given as a number or name), or prints a list of available signals.
killall program
killall - signal program
Kills all processes that are instances of the specified program or sends the specified signal to all processes that are instances of the specified program.
mail - Launches a simple mail client that permits sending and receiving email messages.
man title
man section title - Prints the specified man page.
ping host - Sends an echo request via TCP/IP to the specified host. A response confirms that the host is operational.
reboot - Reboots the system (requires root privileges).
shutdown minutes
shutdown -r minutes
Shuts down the system after the specified number of minutes elapses (requires root privileges). The -r option causes the system to be rebooted once it has shut down.
sleep time - Causes the command interpreter to pause for the specified number of seconds.
sort files - Sorts the specified files. The command has many useful arguments; see the online documentation.
split file - Splits a file into several smaller files. The command has many arguments; see the online documentation
sync - Completes all pending input/output operations (requires root privileges).
telnet host - Opens a login session on the specified host.
top - Prints a display of system processes that's continually updated until the user presses the q key.
traceroute host - Uses echo requests to determine and print a network path to the host.
uptime - Prints the system uptime.
w - Prints the current system users.
wall - Prints a message to each user except those who've disabled message reception. Type Ctrl-D to end the message.