Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Mac Terminal Cheat Sheet

SHORTCUTS

Key/Command Description
Tab Auto-complete files and folder names
Ctrl + A Go to the beginning of the line you are currently typing on
Ctrl + E Go to the end of the line you are currently typing on
Ctrl + U Clear the line before the cursor
Ctrl + K Clear the line after the cursor
Ctrl + W Delete the word before the cursor
Ctrl + T Swap the last two characters before the cursor
Esc + T Swap the last two words before the cursor
Ctrl + R Lets you search through previously used commands
Ctrl + L or Command + K Clears the Screen
Ctrl + C Kill whatever you are running
Ctrl + D Exit the current shell

CORE COMMANDS

cd Home directory
cd [folder] Change directory
cd ~ Home directory, e.g. ‘cd ~/folder/’
cd / Root of drive
ls Short listing
ls -l Long listing
ls -a Listing incl. hidden files
ls -lh Long listing with Human readable file sizes
ls -R Entire content of folder recursively
sudo [command] Run command with the security privileges of the superuser (Super User DO)
open [file] Opens a file
open . Opens the directory
top Displays active processes. Press q to quit
nano [file] Opens the Terminal it’s editor
pico [file] Opens the Terminal it’s editor
q Exit
clear Clear screen

COMMAND HISTORY

history n Shows the stuff typed – add a number to limit the last n items
ctrl-r Interactively search through previously typed commands
![value] Execute the last command typed that starts with ‘value’
!! Execute the last command typed

FILE MANAGEMENT

touch [file] Create new file
pwd Full path to working directory
.. Parent/enclosing directory, e.g.
ls -l .. Long listing of parent directory
cd ../../ Move 2 levels up
. Current folder
cat Concatenate to screen
rm [file] Remove a file, e.g. rm [file] [file]
rm -i [file] Remove with confirmation
rm -r [dir] Remove a directory and contents
rm -f [file] Force removal without confirmation
rm -i [file] Will display prompt before
cp [file] [newfile] Copy file to file
cp [file] [dir] Copy file to directory
mv [file] [new filename] Move/Rename, e.g. mv -v [file] [dir]

DIRECTORY MANAGEMENT

mkdir [dir] Create new directory
mkdir -p [dir]/[dir] Create nested directories
rmdir [dir] Remove directory ( only operates on empty directories )
rm -R [dir] Remove directory and contents

PIPES – Allows to combine multiple commands that generate output

more Output content delivered in screensize chunks
> [file] Push output to file, keep in mind it will get overwritten
>> [file] Append output to existing file
< Tell command to read content from a fi

HELP

[command] -h Offers help
[command] —help Offers help
[command] help Offers help
reset Resets the terminal display
man [command] Show the help for ‘command’
whatis [command] Gives a one-line description of ‘command’
@III-Student-III

This comment has been minimized.

@valmassoi

This comment has been minimized.

Copy link

@valmassoi valmassoi commented Nov 1, 2017

rm -i [file] is duplicated:

rm -i [file] | Remove with confirmation
...
rm -i [file] | Will display prompt before

@hepcat72

This comment has been minimized.

Copy link

@hepcat72 hepcat72 commented Feb 27, 2018

Are those shortcuts shell specific. ctrl-r doesn't do anything for me and I know ctrl-d is end of input, not exit current shell.

@yemper

This comment has been minimized.

Copy link

@yemper yemper commented May 20, 2018

this was truely a help, thank you. i appricate it.

@omridevk

This comment has been minimized.

Copy link

@omridevk omridevk commented Jul 9, 2018

ESC + backspace - will delete word, works better than ctrl + w in most cases.

@gyant

This comment has been minimized.

Copy link

@gyant gyant commented Jul 12, 2018

@omridevk

The downside to ESC + backspace is you have to disengage ESC after every word deleted or it starts deleting single characters as normal. If you're deleting multiple words, CTRL + w has the expected behavior without needing to disengage CTRL for every word.

@rahafajaj

This comment has been minimized.

Copy link

@rahafajaj rahafajaj commented Oct 31, 2018

Useful shortcuts! Thanks!

@MomoKaku

This comment has been minimized.

Copy link

@MomoKaku MomoKaku commented Jan 27, 2019

thanks buddy, appreciate it

@amarantesmind

This comment has been minimized.

Copy link

@amarantesmind amarantesmind commented Feb 4, 2019

Thanks!

@giowaza

This comment has been minimized.

Copy link

@giowaza giowaza commented Feb 7, 2019

very helpful for me as a newbie.

@DawitAbay

This comment has been minimized.

Copy link

@DawitAbay DawitAbay commented Feb 17, 2019

what does three dot mean ...

@Nesma-Mahmoud

This comment has been minimized.

Copy link

@Nesma-Mahmoud Nesma-Mahmoud commented Feb 21, 2019

Thanks!

@jzm0144

This comment has been minimized.

Copy link

@jzm0144 jzm0144 commented Mar 21, 2019

Thanks!

@abdullajytdfhgs4

This comment has been minimized.

Copy link

@abdullajytdfhgs4 abdullajytdfhgs4 commented Apr 8, 2019

ths

@abdullajytdfhgs4

This comment has been minimized.

Copy link

@abdullajytdfhgs4 abdullajytdfhgs4 commented Apr 8, 2019

ths

@gdwwl

This comment has been minimized.

Copy link

@gdwwl gdwwl commented Apr 11, 2019

谢谢

@NotaPhysicist

This comment has been minimized.

Copy link

@NotaPhysicist NotaPhysicist commented May 11, 2019

Thanks for your efforts. Very helpful for me as a newbie.

@jsanchez74

This comment has been minimized.

Copy link

@jsanchez74 jsanchez74 commented Jun 11, 2019

I am just starting with this. Thank you.

@elhamsalmanian

This comment has been minimized.

Copy link

@elhamsalmanian elhamsalmanian commented Sep 5, 2019

Thanks!

@iampettii

This comment has been minimized.

Copy link

@iampettii iampettii commented Oct 10, 2019

thanks

@this-is-batman

This comment has been minimized.

Copy link

@this-is-batman this-is-batman commented Nov 13, 2019

Please add less command to your shortcut list as it is more efficient than more as can be seen in this link
https://www.tecmint.com/linux-more-command-and-less-command-examples/

@marcusziade

This comment has been minimized.

Copy link

@marcusziade marcusziade commented Nov 27, 2019

Thanks 👌

@eddiejervis

This comment has been minimized.

Copy link

@eddiejervis eddiejervis commented Jan 17, 2020

Hi, can anyone help me? I'm new to this

I want to make a batch file that chooses each green labeled files within a certain folder and unzips the “Links.zip” and then creates folders (named: Edited, Buildings, Extra, Front Cover, Interior, Map, Properties (Properties has three sub Folder inside: CGI, Floor Plans and Properties 290x200px) and Town) it the organises each file within the folder into those categories based upon its name

It also creates another Folder within each green labeled file called “Optimised” with the same subfolders (named: Edited, Buildings, Extra, Front Cover, Interior, Map, Properties (Properties has three sub Folder inside: CGI, Floor Plans and Properties 290x200px)

Then uses photoshop to optimise the files within the “Links” folder, in each green tagged folder, to certain parameters e.g Quality 3, 1400px width and 1400px height and places them into the “Optimised” file within.

Then starts another photoshop optimisation with “Links” subfolder “Properties” and it’s sub folder “CGI” and then places them into the sub-sub-folder of “Optimised” - “Properties” - “Properties 290x200px) with the settings Quality 10, 290px width and 200px height

Then takes an InDesign File within the green tagged file and exports each page as a high quality .jpg, into a file named “jpg” and then optimise those pages using photoshop with a quality 10, px 1500 width and 1500 height into a subfolder within that folder called “Optimised”

I need it to loop with every green tagged file within a folder

I have so many files to go through exactly like this, I wanted to automate it as it’s rather over whelming, I have tried Automator on Mac, but I’m so lost. Can anyone help?

@Githubdhwani

This comment has been minimized.

Copy link

@Githubdhwani Githubdhwani commented Jan 24, 2020

Very helpful for new bee. Thank you so much

@elvinhuseynzade1

This comment has been minimized.

Copy link

@elvinhuseynzade1 elvinhuseynzade1 commented Jan 29, 2020

thanks

@denyin

This comment has been minimized.

Copy link

@denyin denyin commented Feb 2, 2020

very helpful! Thank you so much!

@leschiffres

This comment has been minimized.

Copy link

@leschiffres leschiffres commented Feb 7, 2020

Amazing! Thanks!

@jasper-the-whale

This comment has been minimized.

Copy link

@jasper-the-whale jasper-the-whale commented Apr 18, 2020

Very helpfuly! Thanks very much :)

@zengtianli

This comment has been minimized.

Copy link

@zengtianli zengtianli commented Apr 27, 2020

great work! thanks

@aadydas

This comment has been minimized.

Copy link

@aadydas aadydas commented May 3, 2020

thanks a lot!

@judylime

This comment has been minimized.

Copy link

@judylime judylime commented May 22, 2020

Thanks

@politaleon

This comment has been minimized.

Copy link

@politaleon politaleon commented Jul 26, 2020

Great! Thanks!

@harshakokel

This comment has been minimized.

Copy link

@harshakokel harshakokel commented Jul 29, 2020

cd - for going back to previous location

@ulilalbab

This comment has been minimized.

Copy link

@ulilalbab ulilalbab commented Aug 9, 2020

thanks

@bluebuddah

This comment has been minimized.

Copy link

@bluebuddah bluebuddah commented Aug 25, 2020

Keybase proof

I hereby claim:

  • I am bluebuddah on github.
  • I am ewh2085 (https://keybase.io/ewh2085) on keybase.
  • I have a public key ASCYXex4tlXNlSz-O4BMTgXAy3RKBtpi1j6XYvGS_QprSwo

To claim this, I am signing this object:

{
  "body": {
    "key": {
      "eldest_kid": "0120b43e34d2a86152f4e84e274652b68e3fd27d09c22f464dfb19dbee2f07c6bac30a",
      "host": "keybase.io",
      "kid": "0120985dec78b655cd952cfe3b804c4e05c0cb744a06da62d63e9762f192fd0a6b4b0a",
      "uid": "ccbe220ddee72953ca067a109f5ecd19",
      "username": "ewh2085"
    },
    "merkle_root": {
      "ctime": 1598319087,
      "hash": "87f6b7fff3063d701df671f85cca917d3fd541a21c59693eb02d8c248447ab7891b0cc857482a80b009065080c68f040f1a50389ea57785a9b2b9f7fc51be6d2",
      "hash_meta": "1684bced3fc76124f04d1348982178e001bb9d8d039a4d0aad243ab2bdff3d4a",
      "seqno": 17374172
    },
    "service": {
      "entropy": "55rlSr7A0Jvi5df2S0Xj/b9x",
      "name": "github",
      "username": "bluebuddah"
    },
    "type": "web_service_binding",
    "version": 2
  },
  "client": {
    "name": "keybase.io go client",
    "version": "5.5.0"
  },
  "ctime": 1598319109,
  "expire_in": 504576000,
  "prev": "0293e57488477cc8d5fc95d223bb686bee7020ded3df07e28a17badafda7a15b",
  "seqno": 69,
  "tag": "signature"
}

with the key ASCYXex4tlXNlSz-O4BMTgXAy3RKBtpi1j6XYvGS_QprSwo, yielding the signature:

hKRib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEgmF3seLZVzZUs/juATE4FwMt0SgbaYtY+l2Lxkv0Ka0sKp3BheWxvYWTESpcCRcQgApPldIhHfMjV/JXSI7toa+5wIN7T3wfiihe62v2noVvEIO1lzk66y2B0/4CRFlZPlyf18L/pYUyGC4Mj4qHm6EfTAgHCo3NpZ8RAjC11467UgZJpfabx9ox1KG6YiFoF31NkiNO1RyMN1rYsS4ozEudW1cYIbVyh55cCR8bkxdm6L7Jp+nCmcHq1B6hzaWdfdHlwZSCkaGFzaIKkdHlwZQildmFsdWXEIEsFrIckNOJ52ClMcJQIyXEq/ITzgigIgrxyJb3PlPlXo3RhZ80CAqd2ZXJzaW9uAQ==

And finally, I am proving ownership of the github account by posting this as a gist.

My publicly-auditable identity:

https://keybase.io/ewh2085

From the command line:

Consider the keybase command line program.

# look me up
keybase id ewh2085
@Techiefrankie

This comment has been minimized.

Copy link

@Techiefrankie Techiefrankie commented Aug 30, 2020

Serves the purpose.

@aficici

This comment has been minimized.

Copy link

@aficici aficici commented Sep 8, 2020

Thank you. Very simple and informative.

@rudrathegreat

This comment has been minimized.

Copy link

@rudrathegreat rudrathegreat commented Sep 27, 2020

I believe most of the commands mentioned on mac and the exact same for linux

@SynergyBest

This comment has been minimized.

Copy link

@SynergyBest SynergyBest commented Nov 5, 2020

Thanks very useful

@ghost

This comment has been minimized.

Copy link

@ghost ghost commented Nov 20, 2020

Screen Shot 2020-11-20 at 11 59 06 AM

I am getting this update message, only to be told file is corrupted when trying to update, then it reminds me the next day. I searched online and found a --ignore command for Terminal, but that doesn't seem to work in Big Sur? So I'm not sure how to remove this update as the application is nowhere to be found on my laptop.

@erikadva

This comment has been minimized.

Copy link

@erikadva erikadva commented Nov 23, 2020

Thank you!

@adminjsentu

This comment has been minimized.

Copy link

@adminjsentu adminjsentu commented Nov 29, 2020

Awesome and thank you! :neckbeard:

@thanhpl

This comment has been minimized.

Copy link

@thanhpl thanhpl commented Jan 9, 2021

Thank you <3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment