Linux Command Line Cheat Sheet

A Software › Linux cheat sheet in English by DaveChild

A cheat sheet of the commands I use most for Linux, with popup links to man pages.

2,718,585 views 562,983 downloads 28 Oct 2011 History
4.9 avg · 273 ratings

Bash Commands

Show system and kernel
Show distri­bution
Show mounted filesy­stems
Show system date
Show uptime
Show your username
Show manual for command

Bash Shortcuts

CTRL-c
Stop current command
CTRL-z
Sleep program
CTRL-a
Go to start of line
CTRL-e
Go to end of line
CTRL-u
Cut from start of line
CTRL-k
Cut to end of line
CTRL-r
Search history
!!
Repeat last command
!abc
Run last command starting with abc
!abc:p
Print last command starting with abc
!$
Last argument of previous command
ALT-.
Last argument of previous command
!*
All arguments of previous command
^abc^123
Run previous command, replacing abc with 123

Bash Variables

env
Show enviro­nment variables
Output value of $NAME variable
Set $NAME to value
$PATH
Executable search path
$HOME
Home directory
$SHELL
Current shell

IO Redire­ction

cmd < file
Input of cmd from file
cmd1 <(cmd2)
Output of cmd2 as file input to cmd1
cmd > file
Standard output (stdout) of cmd to file
cmd > /dev/null
Discard stdout of cmd
cmd >> file
Append stdout to file
cmd 2> file
Error output (stderr) of cmd to file
cmd 1>&2
stdout to same place as stderr
cmd 2>&1
stderr to same place as stdout
cmd &> file
Every output of cmd to file
cmd refers to a command.

Pipes

cmd1 | cmd2
stdout of cmd1 to cmd2
cmd1 |& cmd2
stderr of cmd1 to cmd2

Command Lists

cmd1 ; cmd2
Run cmd1 then cmd2
cmd1 && cmd2
Run cmd2 if cmd1 is successful
cmd1 || cmd2
Run cmd2 if cmd1 is not successful
cmd &
Run cmd in a subshell

Directory Operations

Show current directory
Make directory dir
Change directory to dir
cd ..
Go up a directory
List files

ls Options

-a
Show all (including hidden)
-R
Recursive list
-r
Reverse order
-t
Sort by last modified
-S
Sort by file size
-l
Long listing format
-1
One file per line
-m
Comma-­sep­arated output
-Q
Quoted output

Search Files

Search for pattern in files
grep -i
Case insens­itive search
grep -r
Recursive search
grep -v
Inverted search
grep -o
Show matched part of file only
Find files starting with name in dir
find /dir/ -user name
Find files owned by name in dir
find /dir/ -mmin num
Find files modifed less than num minutes ago in dir
Find binary / source / manual for command
Find file (quick search of system index)

File Operations

Create file1
Concat­enate files and output
View and paginate file1
Get type of file1
Copy file1 to file2
Move file1 to file2
Delete file1
Show first 10 lines of file1
Show last 10 lines of file1
Output last lines of file1 as it changes

Watch a Command

Issue the 'ntpq -p' command every 5 seconds and display output

Process Management

Show snapshot of processes
Show real time processes
Kill process with id pid
Kill process with name name
Kill all processes with names beginning name

Nano Shortcuts

Files
Ctrl-R
Read file
Ctrl-O
Save file
Ctrl-X
Close file
Cut and Paste
ALT-A
Start marking text
CTRL-K
Cut marked text or line
CTRL-U
Paste text
Navigate File
ALT-/
End of file
CTRL-A
Beginning of line
CTRL-E
End of line
CTRL-C
Show line number
CTRL-_
Go to line number
Search File
CTRL-W
Find
ALT-W
Find next
CTRL-\
Search and replace

Screen Shortcuts

Start a screen session.
screen -r
Resume a screen session.
screen -list
Show your current screen sessions.
CTRL-A
Activate commands for screen.
CTRL-A c
Create a new instance of terminal.
CTRL-A n
Go to the next instance of terminal.
CTRL-A p
Go to the previous instance of terminal.
CTRL-A "
Show current instances of terminals.
CTRL-A A
Rename the current instance.

File Permis­sions

Change mode of file to 775
Recurs­ively chmod folder to 600
Change file owner to user and group to group

File Permission Numbers

First digit is owner permis­sion, second is group and third is everyone.
Calculate permission digits by adding numbers below.
4
read (r)
2
write (w)
1
execute (x)

Badges

Famous Cheat Sheet Essential Cheat Sheet Loved Cheat Sheet Great Cheat Sheet Useful Cheat Sheet Liked Cheat Sheet Good Cheat Sheet Nice Cheat Sheet Appreciated Cheat Sheet Downloaded from Unusual Locations × 40 🇯🇴 Big in Jordan

Comments (67)

Shiny Mc Martin 07:15 20 Jun 2024

could you please add ll comand

Reply
Sathyanarayanan 03:44 19 Oct 2021

check this sheet! https://cheatography.com/sathyanarayanan/cheat-sheets/linux-command-line/

Reply
grantiago 14:27 17 Jan 2021

thanks Dave besides ^w my most used nano commands: Alt+Space Go back one word Ctrl+Space Go forward one word

Reply
Chinaguravaiah M 05:32 13 Sep 2019

thank you very much Dave

Reply
hwac121 06:53 13 Dec 2018

All links for download are dead, pleas fix this issue ASAP. Would be greatly appreciated, thanks.

Reply
wkthxtn 21:34 7 Nov 2018

Good for quick reference Thank you

Reply
tejasshetty.1808 18:51 8 Jul 2017

I think the colour pdf link directs back to the original page

Reply
ramiissat 13:01 22 Mar 2017

Good job Dave, Thank you :)

Reply
d.falkovsky 13:15 16 Apr 2016

Thank you, Natalie!

Reply
GloObi 15:31 4 Apr 2016

thank you for this really useful sheet ! The download button seems to be broken though :(

Reply
NatalieMoore 05:13 10 Apr 2016

Hey GloObi, thanks for the heads up about the broken download button on this cheatsheet. We'll get it fixed and I'll let you know when its been done. Have a great day.

Reply
NatalieMoore 06:49 13 Apr 2016

Hi GloObi, This is now fixed. Please let me know if you have any more problems. Nat

Reply
d.falkovsky 19:54 7 Apr 2016

Can't download. Sad.

Reply
NatalieMoore 05:07 10 Apr 2016

Thanks d.falkovsky, I will let Dave know the download button on this cheat sheet needs to be fixed. I will let you know once he has fixed it :). Sorry for the inconvenience.

Reply
NatalieMoore 06:48 13 Apr 2016

Hi d.falkovsky, This is now fixed, you should now be able to download. Please let me know if you have any more problems. Nat

Reply
Felipe 19:22 3 Apr 2016

Could you add "passwd" to the file? :)

Reply
John Kershaw 16:04 28 Mar 2016

Love the colour, but could it be a slightly darker/stronger green? It comes out almost impossible to read on my colour printer. I tried outputting in greyscale, but the green-on green sections are still unreadable. Needs more contrast. Alternatively, change all the green texts to black and keep the backgrounds green?

Reply
DaveChild 16:05 28 Mar 2016

I agree, it's not a great colour. I've changed it.

Reply
Alex 15:34 28 Sep 2015

'echo $SHELL' actually prints the default shell, 'ps -p $$' will print the current shell

Reply
DF 08:31 25 Aug 2015

would be good to add Ctrl-left/right for jumping arguments, Ctrl-home/end for jumping whole line.

Reply
jt 12:38 22 Jul 2015

ls -h? human readable?

Reply
snakeroot 10:46 14 Jan 2015

head -n1 /etc/issue as a means to access distribution name isn't reliable, since the post-login screen could have been customized. A more reliable version would be sed -nr 's/^PRETTY_NAME=(.*)/\1/p' /etc/os-release . This should be true even for distros using legacy init (i.e., current Debian, Gentoo and even Slackware).

Reply
Damien 10:43 23 Jul 2014

I've always found `mkdir -p path/to/directory` to be useful.

Reply
Aaron Tani 08:27 1 May 2014

theres also a good one here: http://www.techietek.com/2014/04/29/linux-cli-cheat-sheet-wallpaper/

Reply
Isabel Ambriz 13:08 30 Apr 2014

Command that might be used to test connectivity of Linux box to the Internet, get logged on user info, and get TCP/IP configuration info. Can anyone help me?

Reply
Kabir 22:03 10 Mar 2014

add task manage comman: gnome-system-monitor

Reply
Mads 08:55 26 Feb 2014

Great resource - thanks a lot Dave!

Reply
Henning 09:57 19 Feb 2014

Great reference! The section on Screen is missing "Ctrl-A d" for detaching.

Reply
No4711 09:56 19 Feb 2014

I would suggest to put in screen <tty.device> <baudrate> – just in case anybody needs to connect to some serial console…

Reply
Edser 17:35 17 Feb 2014

grep -B# This shows what you are searching plus additional lines where number is added. Great for DHCP lease searching.

Reply
Bill 17:30 17 Feb 2014

Hi, handy sheet. Just one thing. Find will do a recursive search by default. In the find /dir -name name* should be in double quotes if you want it to recursively find all files starting with name: find /dir/ -name "name*" That's because, without the quotes, the shell will expand the wildcard before handing the parameters to find. To unexpected things might happen if you don't have the quotes. Please see the examples below: $ find . . ./name1 ./name2 ./dir1 ./dir1/name3 ./dir1/name1 ./dir1/test3 ./test1 $ find . -name name* find: paths must precede expression: name2 Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] $ find . -name "name*" ./name1 ./name2 ./dir1/name3 ./dir1/name1 $ touch dir1/fred1 $ find . . ./name1 ./name2 ./dir1 ./dir1/name3 ./dir1/name1 ./dir1/test3 ./dir1/fred1 ./test1 $ find . -name name* find: paths must precede expression: name2 Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] $ find . -name "name*" ./name1 ./name2 ./dir1/name3 ./dir1/name1 $ find . -name fred* ./dir1/fred1 $ find . -name "fred*" ./dir1/fred1 $

Reply
RobertAttfieldDotCom 11:37 14 Feb 2014

Good job on the cheatsheet - this will definitely come in handy for my Linux exam next week. Some commands on umask would be a good addition to this cheatsheet :).

Reply
Pradeep 15:12 13 Feb 2014

There is no commands for shutdown or reboot..

Reply
kimcy929 11:09 9 Aug 2013

thank you very much, it is great

Reply
PastExpiryDotCom 18:08 11 Jul 2013

This is bash-tastic!

Reply
Darr247 16:31 5 Apr 2013

Or if the PDF at least split into 2 pages (so it could be a laminated 2-sided sheet) without cutting commands in half.

Reply
Jared 10:33 26 Feb 2013

Nice work, but it would be best as a single page PDF.

Reply
gymka 08:44 16 Feb 2013

Missing: sed find -exec

Reply
daveydave400 08:43 16 Feb 2013

What about CTRL+y to paste the stuff you cut back in? How can you leave that out? CTRL+a/e and CTRL+u/y are the pairs I remember.

Reply
John 08:43 16 Feb 2013

Great resource - thanks for taking the time and trouble to put this out there. My favorite ls options are '-ltr' . The t sorts files by time, and r reverses that, so newest files show up right above the prompt, no matter how long the listing is.

Reply
Sandeep 08:43 16 Feb 2013

Nice one...really helpful

Reply
Stylius 09:17 15 Feb 2013

I would also add the tar command. No sysadmin would survive without it. To extract tar.gz archive tar xvzf archive.tar.gz To extract tar.bz2 archive tar xvjf archive.tar.bz2 To extract tar archive tar xvf archive.tar To create archive tar cvzf archive.tar.gz /file_or_folder/to/archive

Reply
PierreBdR 11:35 9 Feb 2013

This cheat-sheet is very good! Thanks for that. However, I don't like the "chmod" commands you are using. I don't think anybody should use the numeric version of chmod anymore. Your example "chmod -R 600 folder", is the best way to lock yourself out of your own folder and loose any executable bits on the scripts. I would rather use the symbolic version: chmod -R u+rw folder # Add read-write for user on all files in folder chmod -R og-rwx # Remove read write and execute bits for "other" and "group" on all files in folder And my all-time favorite: chmod -R og=u-w folder # Give other and group the same rights as user, but removing writing rights. Of course, this also handles t and s bits: chmod u+s file chmod o+t folder

Reply
chiahsun 11:14 2 Jan 2013

Show human readable format (kb, mb...) ls -lh

Reply
russ 16:18 22 Oct 2012

CTRL-Z sleeps (stops) the running process. fg [#] brings it back to foreground. top CTRL-Z ps aux | grep top fg

Reply
Niloufar 21:43 11 Oct 2012

hi!.these are useful cheat sheet .

Reply
JImmy 21:43 11 Oct 2012

you need to figure out how to split your command sheet as a pdf

Reply
Shrinath 13:08 4 Oct 2012

Excellent Stuff man.. I think these are the most commonly used commands.. Good Effort.

Reply
Mark 08:53 29 Aug 2012

I just wanted to take a moment to thank you for putting this together. This is a big help to me I am new to OpenFiler witch I believe uses bash at the core so I am of course new to Linux. I didn't really think it would be quite so difficult to find resources that one can use to navigate the command line but I guess most folks use the GUI. But, I'm not most folks when I bought my first IBM 8088 I started with DOS.Anyway, thanks for the time and effort you put into this, sorry about digressing there.

Reply
Eric 08:59 7 Aug 2012

I'd just like to point out a trick I use with the head and tail commands: First, you can designate the number of lines to return, like so: head -100 filename I often use both head and tail together to get a section of a file by piping the output of one into the other. The following command gets 100 lines, starting 1000 lines before the end of the file: tail -1000 filename | head -100 You could, of course, reverse the commands to get a section near the top of the file. To get lines 91-100: head -100 filename | tail -10

Reply
Donald J. Tambeau 15:23 6 Aug 2012

Love your work....it is so ....so helpful! I would like to format a MicroDisk using Linux Centros. When I look at the Partition on the MicroDisk, I see the following comment....(non-Linux). This makes sense, since I formatted with a computer running Win 7! I want to use it on my Linux system but do not know how to do it. I tried format /dev/scd1 but no joy! Thank you Don

Reply
Chetan Morajkar 14:35 6 Aug 2012

Hi, Fantastic good job.. Thanks

Reply
Arpit 10:51 29 Jun 2012

Good work. Thanks, its helpful.

Reply
wolvverine 11:29 6 Jun 2012

download PDF is broken

Reply
gamiclea 00:05 2 Jun 2012

Awesome job! This will definitely come in handy

Reply
Davis Peng 13:57 22 Mar 2012

Thanks a lot for your sheet, I just need such a linux command summary such as this sheet.

Reply
Wane 07:28 21 Mar 2012

I think the "Bash Shortcuts" part is a little misleading. The "ctrl-a", "ctrl-e", "ctrl-k" is in emacs mode. But there should be many people preferring vim-mode or some thing like that.

Reply
Tanner 10:30 7 Mar 2012

ls -h is handy - changes sizes to human readable formats. Goes along good with -S. If I'm using it it is generally a ls -alhS

Reply
jim 23:12 30 Nov 2011

On the redirects, the one I most commonly use is ignoring errors (2>/dev/null, or more succinctly 2>&- ). For example, if I'm looking for files and I don't care that I haven't access to parts of the filesystem, we might do something like: find / -name "*.html" 2>&-

Reply
wattslevi 19:51 29 Nov 2011

How are the indented lines added several of the cells like Screen Shortcuts? RE: http://getsatisfaction.com/cheatography/topics/adding_a_two_line_entry_in_a_list

Reply
DaveChild 08:35 30 Nov 2011

Those indented bits are a "question and answer" format box.

Reply
wattslevi 10:30 30 Nov 2011

Ah, Q&A means I would be able to cheat with it and use it for two column with an extra line. Thanks for the info. (Replying to my original post seems unintuitive for trying to reply under your post, but not to the overall thread... assuming this post as I'm thinking it might.)

Reply
a_statham 10:02 28 Nov 2011

The I/O redirection section could use "2>" and "&>" examples, I always forget how to redirect stderr

Reply
DaveChild 10:02 28 Nov 2011

Good idea - I'll add that (once I remember how they work myself ... :) )

Reply
DaveChild 10:02 28 Nov 2011

I've updated that section to include stderr redirection. :)

Reply
[deleted] 10:02 28 Nov 2011

Thanks for creating this cheat-sheet Dave. The one thing I missed was "grep -o"; Show only the part of a matching line that matches PATTERN

Reply
DaveChild 10:02 28 Nov 2011

I've added "grep -o" to the cheat sheet :)

Reply

Cheatography n. The art of mapping complex subjects into clear, instantly navigable reference guides.