Unix command line cheat sheet

File Commands
ls - directory listing
ls -a - directory listing with hidden files
ls -al - formatted directory listing with hidden files
cd dir - change directory to dir
cd - change to home
cd - - change back to previous directory
pwd - show current directory
mkdir dir - create a directory dir
rm file - delete file
rmdir dir - delete empty directory dir
rm -r dir - recursively delete directory dir (use with caution)
rm -f file - force remove file; no error output if file doesn't exist
rm -rf dir - recursively force remove directory dir (use with caution)
cp file1 file2 - copy file1 to file2
cp file1 file2 file3 dir - copy file1, file2 and file3 to dir
cp -r dir1 dir2 - recursively copy dir1 to dir2; create dir2 if it doesn't exist
mv file1 file2 - 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
>file - create file (use with caution, doing this on an existing file will overwrite the content)
touch file - create or update file
cat > file - places standard input into file
cat file1 > file2 - overwrites the content of file2 with the content of file1
cat file1 >> file2 - appends the content of file1 to file2
echo "Hello World" > file - overwrites file's content with Hellow World
echo "Hello World" >> file - appends Hello World to the end of file
less file - output the contents of 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
sed 's/foo/bar/g' file - replaces all occurrences of foo with bar in file
sed -i.backup 's/food/bar/g' file - replaces all occurrences of foo with bar in file after backing up file as file.backup
rm {m,M}yfile - remove files according to a pattern
Example:
$ ls
$ touch myfile Myfile myfile1 Myfile1
$ ls
myfile Myfile myfile1 Myfile1
$ rm {m,M}yfile
$ ls
myfile1 Myfile1

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 * file
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 - rwx 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 password-less 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
updatedb - updates the slocate database; see next item
locate file - find all instances of file; may need to run updatedb first
find $HOME -user root - find files owned by root in $HOME
find /path -depth -type d -empty - find empty directories
find /path -depth -type f -empty - find empty files
find /path -name [name_of_file] - find a file with a specific name
find /path -name "*.[given_extension]" - find a file with a specific extension
find /path -name '*.txt' -perm 644 - find .txt files with specific permissions
find /path -perm -[permission_bits] - find files with some given permissions
find /path -name '[given_name].*' - find files with a given name and any extension

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
lshw -html > hardware.html - create an overview of hardware
lsb_release -a - show information about the distro
tr : '\n' <<<$PATH - show directories in the PATH, one per line
sed 's/:/\n/g' <<<$PATH - show directories in the PATH, one per line with sed

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 cf file.tar.gz files - create a tar with Gzip compression
tar xf file.tar.gz - extract a tar using Gzip
tar cf file.tar.bz2 - create a tar with Bzip2 compression
tar xf 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 - execute the configure script
make - compile the source
make install - install needed files
dpkg -i pkg.deb - install a deb package on .deb-based systems
rpm -Uvh pkg.rpm - install an rpm package on .rpm-based systems

Shortcuts
Ctrl+A - move to the start of the line
Ctrl+E - move to the end of the line.
Ctrl+U - delete from the cursor to the beginning of the line.
Ctrl+K - delete from the cursor to the end of the line.
Ctrl+W - delete from the cursor to the start of the word.
Ctrl+Y - pastes text from the clipboard.
Ctrl+L - clear the screen leaving the current line at the top of the screen.
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+R - reverse search
^abc^xyz - replace first occurrence of abc with xyz in last command and execute it
!! - repeats the last command
sudo !! - repeats the last command with sudo privileges
exit - log out of current session

Source: http://ardchoille42.blogspot.com/2009/08/command-line-cheatsheet.html

~~LINKBACK~~ ~~DISCUSSION~~