Top Banner
drupal.org/user/1773 @emmajanehw http://bit.ly/getting-a-clue GETTING A CLUE AT THE COMMAND LINE EMMA JANE HOGBIN WESTBY
51

Getting a CLUE at the Command Line

Dec 01, 2014

Download

Technology

Many of the new fangled front end development efficiency tools require you to drop into the Command Line. For those who are accustomed to using a Graphical User Interface, this can be a frustrating and demoralizing experience. The Command Line User Experience (CLUE) may be archaic, but it is also a very efficient way to work.
This session will uncover some of the mysteries of the command line, and unpack the psychology behind your frustrations with it. We'll dive into details necessary to enhance your appreciation of this simple tool by touching on the following topics:
why you're right to hate the command line (and how you can get over your hatred and get on with your job)
the features of a well-written command line utility (so you can distinguish between the good ones and the ones that ought to make you curl your toes in frustration)
the benefits of working at the command line when things are going wrong (and why things are more likely to go *right* when working from the command line for certain kinds of tasks)
and finally, some simple tips to make your time at the command line more bearable
By the end of this session you should be equipped to tackle command line tasks. Specifically, you will be able to:
create a mental model of the tasks you need to complete while at the command line
locate the command line on your computer
complete tasks using relevant commands
identify and apply troubleshooting techniques if things go wrong
safely exit the command line when your tasks are complete
Yes, this is an introductory session. This is for people who feel shame that they don't know how to "just see Dee into yer root durrr" and get mad when people say "just diff me a patch" as if it's as easy as playing with a kitten. No, you don't have to have Git, or Grunt, or Sass installed to attend (you don't even need to know what they all are--bonus marks if you do though). You don't even need to know where the command line is on your computer.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Getting a CLUE at the Command Line

drupal.org/user/1773 @emmajanehw

http://bit.ly/getting-a-clue

GETTING A CLUEAT THE COMMAND LINE

E M M A J A N E H O G B I N W E S T B Y

Page 2: Getting a CLUE at the Command Line

1. Start by understanding how you’ll benefit.

2. Group functionality and map it to things you already know.

3. Play the pre-game to learn the moves.

4. It’ll be okay. Don’t panic.

Page 3: Getting a CLUE at the Command Line

It’s because there are no pictures. You’ll need to learn to make your own.

tl;dltoo long; didn’t listen

Page 4: Getting a CLUE at the Command Line

How People Think

http://rebloggy.com/post/spoilers-mine-sherlock-bbc-sherlock-sherlock-spoilers-his-last-vow-lars-mikkelse/73135846244

30% visual/spatial

45% visual + words

25% words

http://en.wikipedia.org/wiki/Visual_thinking

Page 5: Getting a CLUE at the Command Line

http://www.mobygames.com/game/amiga/dune-ii-the-building-of-a-dynasty/screenshots/gameShotId,142587/

Page 6: Getting a CLUE at the Command Line

$ _

Page 7: Getting a CLUE at the Command Line

http://en.wikipedia.org/wiki/Palace

Page 8: Getting a CLUE at the Command Line

start by understanding how you’ll benefit

Page 9: Getting a CLUE at the Command Line

goal: consistency

Page 10: Getting a CLUE at the Command Line

copy-paste-able commands

so what?

Page 11: Getting a CLUE at the Command Line

it’s easilyconverted to a script

so what?

Page 12: Getting a CLUE at the Command Line

scripts can be automated

so what?

Page 13: Getting a CLUE at the Command Line

automation means fewer mistakes

so what?

Page 14: Getting a CLUE at the Command Line

group functionality and map it to things you

already know

Page 15: Getting a CLUE at the Command Line

1. task runners 2. scaffolding 3. package managers

Page 16: Getting a CLUE at the Command Line

task runnersTask runners are a set of tools to make build operations consistent, clean and well documented. They provide helpers to manage operations on the project file system via the command line.

Page 17: Getting a CLUE at the Command Line

http://en.wikipedia.org/wiki/Ball_boy

Page 18: Getting a CLUE at the Command Line

Examples of Task Runners• Front end: grunt, gulp, (npm), broccoli, brunch

• Linux: Make

Page 19: Getting a CLUE at the Command Line

scaffoldingDesign time scaffolding produces files of code that can later be modified by the programmer to customize the way the application database is used.

Page 20: Getting a CLUE at the Command Line

http://en.wikipedia.org/wiki/Lego_Star_Wars

Page 21: Getting a CLUE at the Command Line

Examples ofScaffolding

• Tangibles: Lego kit

• Front end dev: Yeoman

• Drupal: base theme (with starter theme)

• Linux: Make

Page 22: Getting a CLUE at the Command Line

ScaffoldingCommon Tasks

• create an empty shell site$ yo webapp

• create a new site$ compass create my_project

Page 23: Getting a CLUE at the Command Line

package managersA package management system, also called package manager, is a collection of software tools to automate the process of installing, upgrading, configuring, and removing software packages for a computer's operating system in a consistent manner.

Page 24: Getting a CLUE at the Command Line
Page 25: Getting a CLUE at the Command Line

Examples ofPackage Managers

• OSX: Mac App Store, MacPorts, brew

• Linux: dpkg, RPM

• Front End Dev: npm, Bower, RubyGems

Page 26: Getting a CLUE at the Command Line

Package ManagerCommon Tasks

• locate software $ brew search git

• install software $ brew install git

• check if updates are available$ brew update!

• install latest version$ brew upgrade git

Page 27: Getting a CLUE at the Command Line

Create Your Mental PalaceSport Package

Manager Scaffolding Task Runner

Generic download, install environment

create new instance automate tasks

Tennis builds a tennis stadium

Sets up the tennis net

Retrieves the ball during the

game.

Front end dev bower yeoman grunt

???

Page 28: Getting a CLUE at the Command Line

play the pre-game to learn the moves

Page 29: Getting a CLUE at the Command Line

Good command line utilities make you feel smart.

• The help sub-command includes a functional, not alphabetical, grouping of tasks.

• Always gives an output to the screen after running.

• Provides tips on customisation, and “next steps”.

Page 30: Getting a CLUE at the Command Line

Tips for Navigating• To navigate past commands, use the arrow keys.

• To list past commands, type: history.

• To repeat a previous command, use !history#

• To search for past commands, use CTRL-r.

Page 31: Getting a CLUE at the Command Line

Tips for Typing Commands• Auto-complete what you’re typing with the tab key.

• To delete a word in your command, use CTRL-w.

• To jump to the beginning of the line, use CTRL-a.

• To jump to the end of the line, use CTRL-e.

Page 32: Getting a CLUE at the Command Line

Pro Tip

remap your caps lock key on OSX

Page 33: Getting a CLUE at the Command Line

Finding the Command Line

Page 34: Getting a CLUE at the Command Line

Command Line Interface

http://en.wikipedia.org/wiki/Command_Prompt

Page 35: Getting a CLUE at the Command Line
Page 36: Getting a CLUE at the Command Line

$ _

Page 37: Getting a CLUE at the Command Line

Determining Input

Page 38: Getting a CLUE at the Command Line

define:prompt• a transitive verb meaning To move to action.

? forward 90

> open mailbox

Page 39: Getting a CLUE at the Command Line

define:commandverb!

• give an authoritative or peremptory order. "a gruff voice commanded us to enter”

noun!

1. an authoritative order. "he obeyed her commands without question"

2. the ability to use or control something.

Page 40: Getting a CLUE at the Command Line

CommandsOne-word actions:

• sing

• jump

• look

One-word commands:

• help

• exit

• history

Page 41: Getting a CLUE at the Command Line

Commands with ParametersAn action, and a direct object:!

• take book

• read pamphlet

• open window

Commands with parameters:!

• cd /var/www

• man <command_name>

• mv current_name.jpg new_name.jpg

Page 42: Getting a CLUE at the Command Line

Commands with Parameters and Modifiers

Refining the request:!

• go down stairs

• take blue pill

• open left door

Adding a flag/switch/modifier:!

• mkdir -p directory/sub-directory

• tar xvf file_to_extract.tar.gz

• ls -lh

Page 43: Getting a CLUE at the Command Line

Ten Commands

Page 44: Getting a CLUE at the Command Line

“all” commands

http://www.commandlinefu.com/commands/browse This site includes a “rating” function.

Page 45: Getting a CLUE at the Command Line

It’ll be okay.Don’t panic.

Page 46: Getting a CLUE at the Command Line

read outputs in both directions.

Page 47: Getting a CLUE at the Command Line

the reptile brain

Page 48: Getting a CLUE at the Command Line

The type of output can change depending on the commands you’re running.Read outputs in both directions.!

• Information from the program you just ran: read top to bottom

• Printed summary of actions taken: read bottom to top

Page 49: Getting a CLUE at the Command Line

http://en.wikipedia.org/wiki/Palace

Page 50: Getting a CLUE at the Command Line

1. Start by understanding how you’ll benefit.

2. Group functionality and map it to things you already know.

3. Play the pre-game to learn the moves.

4. It’ll be okay. Don’t panic.

Page 51: Getting a CLUE at the Command Line

WHAT DID YOU THINK?E V A U L A T E T H I S S E S S I O N - W R I T T E N F E E D B A C K F O R M S

FOR MORE INFORMATIONdrupal.org/user/1773

@emmajanehw http://bit.ly/getting-a-clue