Slide 1

Slide 1 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 1 SHELL REVOLUTION https://joind.in/10644

Slide 2

Slide 2 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 2 WHO AM I? •President and Co-Founder of E-Moxie - www.emoxie.com •Baltimore, MD •PHP Developer, System Administrator, Tinkerer •Meetup Organizer - Baltimore PHP/Mobile/API •Trainer •Maximize efficiencies and make life easier (mainly mine) •I’ve seen things, and learned a bit on the way ! [email protected] Twitter: @cmstone

Slide 3

Slide 3 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 3

Slide 4

Slide 4 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 4 LOST ART

Slide 5

Slide 5 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 5 COULDN’T LIVE WITHOUT ls mv cp ps echo ! ! ! !

Slide 6

Slide 6 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 6 INDISPENSABLE TOOLS Fish Screen Mosh Vagrant

Slide 7

Slide 7 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 7 Fish

Slide 8

Slide 8 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 8 FISH “Finally, a command line shell for the 90s” • Color • Web based Config • Auto suggest

Slide 9

Slide 9 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 9 SCREEN

Slide 10

Slide 10 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 10 SCREEN •Terminal multiplexer •Window manager for the terminal •Has been around since the beginning of time •Ability to create additional “windows” or terminals within one terminal window and switch between them

Slide 11

Slide 11 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 11 QUICK START •screen -R (Reattach a detached session if not already attached) •screen -ls (List current screen sockets and their state) •Ctrl+a D (Detach current screen session) •Ctrl+a C (Create a new window) •Ctrl+a # (Switch to window) •Ctrl+a * (List windows)

Slide 12

Slide 12 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 12 MOSH - The MObile SHell

Slide 13

Slide 13 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 13 QUICK START •MIT Computer Science •Fairly new •Supports roaming •Intermittent Connectivity •Local Echo •SSH Replacement •Available for pretty much anything (even iOS and Android)

Slide 14

Slide 14 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 14 HOW DO I GET IT Mac: brew install mobile-shell Linux: apt-get install mosh or yum install mosh Windows: Cygwin is experimental

Slide 15

Slide 15 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 15 DOWNFALLS OF MOSH •Not installed by default in most installations •No terminal scrollback (use screen!) •Local echo

Slide 16

Slide 16 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 16

Slide 17

Slide 17 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 17 WHAT IS IT? •Awesome •Life changing •New kid on the block •The #1 tool you should have in your development arsenal •Development tool that every developer and project should be using •Manager for a virtualization provider (VirtualBox, VMWare, etc) •Automates your [development] environment (Puppet or Chef) •Support for Docker containers

Slide 18

Slide 18 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 18 WHY? •Gets rid of the “it works for me” •EASY and FAST •Everyone on the same page •Closely resembles a production environment •Keeps your computer clean •Low barrier to entry

Slide 19

Slide 19 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 19 THE HARD WAY 1. Someone new joins your company or team 2. They need to get their development environment setup 3. It takes two days to one week to get up and running 4. Install an IDE 5. Install MAMP or XAMP or something else that can serve pages 6. Make sure the PHP version is the same 7. Make sure the PHP config is the same

Slide 20

Slide 20 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 20 THE HARD WAY 1. Install additional extensions 2. Configure MAMP 3. Always tackle “it works for me” problems in the environment 4. Environment relies on the local machine. Screwed it up? Do it again. 5. Production environment got updated? Let’s make sure everyone updates to the right version, do it again. Sounds fun....

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 22 THE EASY WAY 1. Someone new joins your company or team and they need to get their development environment setup 2. Install IDE 3. Install VirtualBox 4. Install Vagrant 5. Clone git repository 6. Run ‘vagrant up’ 7. Make things

Slide 23

Slide 23 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 23 MY PROCESS 1. New person shows 2. Install VirtualBox 3. Install Vagrant 4. Clone git repository 5. Run ‘vagrant up’ 6. Vagrant uses puppet to boostrap the system using a very similar config to production systems 7. Use IDE of choice

Slide 24

Slide 24 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 24 MY PROCESS Zero Config for User 1. Apache is using dynamic virtual hosting 2. Local ~/development folder is mapped to /var/www in VM 3. *.dev.emoxie.com points to 192.168.1.50 4. Apache maps the * to /var/www/<*>

Slide 25

Slide 25 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 25 WHAT DO I NEED 1. Vagrant - vagrantup.com 2. VirtualBox - virtualbox.org 3. PuPHPet - puphpet.com - GREAT Kickstarter to get you going 4. Not a PHP User? http://www.vagrantbox.es

Slide 26

Slide 26 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 26 PHP • Not just for the web • $argv[] • get_options()

Slide 27

Slide 27 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 27 PHP php script.php arg1 arg2 arg3 array(4) {! [0]=>! string(10) "script.php"! [1]=>! string(4) "arg1"! [2]=>! string(4) "arg2"! [3]=>! string(4) "arg3"! }

Slide 28

Slide 28 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 28 Additional Tools

Slide 29

Slide 29 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 29 SED Parses and transforms text ! sed 's/regexp/replacement/g' inputFile > outputFile sed 's/cat/dog/g' inputFile > outputFile macbook:~ chris$ cat file cat macbook:~ chris$ sed 's/cat/dog/g' file > dog macbook:~ chris$ cat dog dog

Slide 30

Slide 30 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 30 AWK • Interpreted programming language used for text processing • Great for ! • length($0) > 80 macbook:~ chris$ ps ax | grep Dropbox | awk '{print $1}' 29835

Slide 31

Slide 31 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 31 NANO

Slide 32

Slide 32 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 32 ADDITIONAL RESOURCES 1. edx.org - Linux Foundations - Courses Start - Aug 1 2. Local LUG 3. User Groups

Slide 33

Slide 33 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 33 QUESTIONS?

Slide 34

Slide 34 text

Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 34 THANKS! Please reach out to me @cmstone or [email protected] Please rate and give feedback!! https://joind.in/10644