Linux Terminal Command Reference

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

df -h – Show disk usage

du – Show directory space usage

free – Show memory and swap usage

Keyboard Shortcuts

Enter – Run the command

Up Arrow – Show the previous command

Ctrl + R – Allows you to type a part of the command you're looking for and finds it

Ctrl + Z – Stops the current command, resume with fg in the foreground or bg in the background

Ctrl + C – Halts the current command, cancel the current operation and/or start with a fresh new line

Ctrl + L – Clear the screen

command | less – Allows the scrolling of the bash command window using Shift + Up Arrow and Shift + Down Arrow

!! – Repeats the last command

command  !$ – Repeats the last argument of the previous command

Esc + . (a period) – Insert the last argument of the previous command on the fly, which enables you to edit it before executing the command

Ctrl + A – Return to the start of the command you're typing

Ctrl + E – Go to the end of the command you're typing

Ctrl + U – Cut everything before the cursor to a special clipboard, erases the whole line

Ctrl + K – Cut everything after the cursor to a special clipboard

Ctrl + Y – Paste from the special clipboard that Ctrl + U and Ctrl + K save their data to

Ctrl + T – Swap the two characters before the cursor (you can actually use this to transport a character from the left to the right, try it!)

Ctrl + W – Delete the word / argument left of the cursor in the current line

Ctrl + D – Log out of current session, similar to exit

Learn the Commands

apropos subject – List manual pages for subject

man -k keyword – Display man pages containing keyword

man command – Show the manual for command

man -t man | ps2pdf - > man.pdf  – Make a pdf of a manual page

which command – Show full path name of command

time command – See how long a command takes

whereis app – Show possible locations of app

which app – Show which app will be run by default; it shows the full path


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

find / -name filename – Starting with the root directory, look for the file called filename

find / -name ”*filename*” – Starting with the root directory, look for the file containing the string filename

locate filename – Find a file called filename using the locate command; this assumes you have already used the command updatedb (see next)

updatedb – Create or update the database of files on all file systems attached to the Linux root directory

which filename – Show the subdirectory containing the executable file  called filename

grep TextStringToFind /dir – Starting with the directory called dir, look for and list all files containing TextStringToFind

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)


chmod 777 – read, write, execute for all

chmod 755 – rwx for owner, rx for group and world

For more options, see man chmod.

File Commands

ls – Directory listing

ls -l – List files in current directory using long format

ls -laC – List all files in current directory in long format and display in columns

ls -F – List files in current directory and indicate the file type

ls -al – Formatted listing with hidden files

cd dir – Change directory to dir

cd – Change to home

mkdir dir – Create a directory dir

pwd – Show current directory

rm name – Remove a file or directory called name

rm -r dir – Delete directory dir

rm -f file – Force remove file

rm -rf dir – Force remove an entire directory dir and all it’s included files and subdirectories (use with extreme caution)

cp file1 file2 – Copy file1 to file2

cp -r dir1 dir2 – Copy dir1 to dir2; create dir2 if it doesn't exist

cp file /home/dirname – Copy the filename called file to the /home/dirname directory

mv file /home/dirname – Move the file called filename to the /home/dirname directory

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

cat file – Display the file called file

more file – Display the file called file one page at a time, proceed to next page using the spacebar

head file – Output the first 10 lines of file

head -20 file – Display the first 20 lines of the file called file

tail file – Output the last 10 lines of file

tail -20 file – Display the last 20 lines of the file called file

tail -f file – Output the contents of file as it grows, starting with the last 10 lines


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


/etc/rc.d/init.d/lpd start – Start the print daemon

/etc/rc.d/init.d/lpd stop – Stop the print daemon

/etc/rc.d/init.d/lpd status – Display status of the print daemon

lpq – Display jobs in print queue

lprm – Remove jobs from queue

lpr – Print a file

lpc – Printer control tool

man subject | lpr – Print the manual page called subject as plain text

man -t subject | lpr – Print the manual page called subject as Postscript output

printtool – Start X printer setup interface


ifconfig – List IP addresses for all devices on the local machine

iwconfig – Used to set the parameters of the network interface which are specific to the wireless operation (for example: the frequency)

iwlist – used to display some additional information from a wireless network interface that is not displayed by iwconfig

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


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

User Administration

adduser accountname – Create a new user call accountname

passwd accountname – Give accountname a new password

su – Login as superuser from current login

exit – Stop being superuser and revert to normal user

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 (use with extreme caution)

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

Installation from source



make install

dpkg -i pkg.deb – install a DEB package (Debian / Ubuntu / Linux Mint)

rpm -Uvh pkg.rpm – install a RPM package (Red Hat / Fedora)

Stopping & Starting

shutdown -h now – Shutdown the system now and do not reboot

halt – Stop all processes - same as above

shutdown -r 5 – Shutdown the system in 5 minutes and reboot

shutdown -r now – Shutdown the system now and reboot

reboot – Stop all processes and then reboot - same as above

startx – Start the X system

If you want to get new posts, make sure to subscribe to Value In Brief by Email.