Your SlideShare is downloading. ×
0
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Shell Revolution
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Shell Revolution

124

Published on

Using the command line is becoming a lost art, but should be one of the most powerful skills in your development arsenal. It is your friend, embrace it. Don't get me wrong, a GUI is great, but it has …

Using the command line is becoming a lost art, but should be one of the most powerful skills in your development arsenal. It is your friend, embrace it. Don't get me wrong, a GUI is great, but it has it's limitations and might not be as robust. You can't automate clicks as easily as you can commands and more times than not, you can just get things done quicker and more efficient. PHP has a great CLI. Use it! This talk will cover common command line tools (screen, grep, awk, cut, mysql, mosh, etc), shortcuts you can take advantage of now, and what you can do to step up your development game.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
124
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 1 SHELL REVOLUTION https://joind.in/10644
  • 2. 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 ! chris@emoxie.com Twitter: @cmstone
  • 3. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 3
  • 4. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 4 LOST ART
  • 5. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 5 COULDN’T LIVE WITHOUT ls mv cp ps echo ! ! ! !
  • 6. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 6 INDISPENSABLE TOOLS Fish Screen Mosh Vagrant
  • 7. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 7 Fish
  • 8. 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
  • 9. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 9 SCREEN
  • 10. 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
  • 11. 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)
  • 12. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 12 MOSH - The MObile SHell
  • 13. 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)
  • 14. 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
  • 15. 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
  • 16. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 16
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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....
  • 21. 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. InstallVirtualBox 4. InstallVagrant 5. Clone git repository 6. Run ‘vagrant up’ 7. Make things
  • 22. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 23 MY PROCESS 1. New person shows 2. InstallVirtualBox 3. InstallVagrant 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
  • 23. 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 inVM 3. *.dev.emoxie.com points to 192.168.1.50 4. Apache maps the * to /var/www/<*>
  • 24. 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
  • 25. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 26 PHP • Not just for the web • $argv[] • get_options()
  • 26. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 27 PHP <?php var_dump($argv); ?> 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"! }
  • 27. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 28 Additional Tools
  • 28. 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
  • 29. 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
  • 30. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 31 NANO
  • 31. 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
  • 32. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 33 QUESTIONS?
  • 33. Chris Stone | E-Moxie | @cmstone | php[tek] 2014 | Shell Revolution | https://joind.in/10644 34 THANKS! Please reach out to me @cmstone or chris@emoxie.com Please rate and give feedback!! https://joind.in/10644

×