Using the Command Line with Magento

@ma$hewhaworth
SSH@ma$hewhaworth
Make use of SSH
config
@ma$hewhaworth
SSH Config file
# ~/.ssh/config
Host myclient-dev
HostName dev.example.com
Port 2020
User myclientu
IdentityFile ~/.ssh/id_rsa
@ma$hewhaworth
SSH Config file
# ~/.ssh/config
Host myclient-dev
HostName dev.example.com
Port 2020
User myclientu
IdentityFile ~/.ssh/id_rsa
$ ssh myclient-dev
@ma$hewhaworth
Use screen
@ma$hewhaworth
screen
Start terminal sessions that you can
disconnect from and resume at any
3me.
@ma$hewhaworth
Screen Cheatsheet
# Create and name a new screen session
$ screen -S <name>
# Detach from screen (but keep it alive)
$ Ctrl+a d
# Resume a named session
$ screen -r <name>
# List active sessions
$ screen -ls
# Catch all (use existing, or create new)
$ screen -dRR
@ma$hewhaworth
Escape a dead
SSH connec-on
@ma$hewhaworth
Enter ~ .
Kills a dead SSH session and lets you
keep your terminal
@ma$hewhaworth
Files@ma$hewhaworth
Tricks to ge,ng
around
@ma$hewhaworth
This makes me want to kill you
$ cd app
$ cd code
$ cd MyVendor
$ cd MyModule
$ cd etc
$ cd ../../..
$ cd ..
$ cd ..
@ma$hewhaworth
This is much nicer
$ cd app/code/MyVendor/MyModule/etc
$ cd -
@ma$hewhaworth
Using tar for archiving and compression
@ma$hewhaworth
Tar
tar czf myarchive.tar.gz <files>
c - Create new archive
z - Zip
f - Filename
@ma$hewhaworth
@ma$hewhaworth
T-arghh!
$ tar czf magento_backup.tar.gz <files>
c - Create
z - Ze
f - Files
@ma$hewhaworth
T-arghh!
$ tar czf magento_backup.tar.gz <files>
c - Create
z - Ze
f - Files
$ tar xzf magento_backup.tar.gz
x - eXtract
z - Ze
f - Files
@ma$hewhaworth
A bit more on tar
# Extract to specific directory
$ tar xf magento_ce.tar.gz -C myDirectory
# Only extract a particular file
$ tar xf magento_ce.tar.gz magento
@ma$hewhaworth
mkdir magic
@ma$hewhaworth
mkdir magic
-p allows you to create children and parents at the
same 4me
# Verbose
$ mkdir app && mkdir app/code && mkdir app/code/MyModule
# Better
$ mkdir -p app/code/MyModule
@ma$hewhaworth
mkdir magic
Using {} allows you to create mul4ple directories at
once
$ mkdir -p app/code/MHCommerce/{ShippingMethods,Checkout}/{Block,Model,etc}
└── app
└── code
└── MHCommerce
├── Checkout
│   ├── Block
│   ├── Model
│   └── etc
└── ShippingMethods
├── Block
├── Model
└── etc
@ma$hewhaworth
tree
$ brew install tree
$ tree
└── app
└── code
└── MHCommerce
├── Checkout
│   ├── Block
│   ├── Model
│   └── etc
└── ShippingMethods
├── Block
├── Model
└── etc
@ma$hewhaworth
Keeping an eye on files
@ma$hewhaworth
less and Shift + F
Browse file and s-ck to the bo3om
$ less var/log/system.log
[Shift + F]
@ma$hewhaworth
tail -f
Print end of file to standard out
# Prints last ten lines to standard out
$ tail var/log/system.log
# Prints the end of the file continuously
$ tail -f var/log/system.log
# Print last x lines
$ tail -f -n20 var/log/system.log
@ma$hewhaworth
watch
Con$nuously execute a command
$ brew install watch
$ watch -n[update_interval] "[command]"
$ watch -n1 "cat var/log/system.log"
$ watch -n0.1 "ls -lsah"
@ma$hewhaworth
Other useful file based commands
- grep - Filter lines in a file
- sed - Find and replace on a file
- awk - More complex text manipulation
@ma$hewhaworth
Processes
@ma$hewhaworth
Keeping processes
quiet
@ma$hewhaworth
Background Processes with &
$ tar czf backup.tar.gz magento &
[1] 13281
$ jobs
[1] + running tar czf backup.tar.gz magento
# some time later ...
[1] + 13281 done tar czf backup.tar.gz magento
@ma$hewhaworth
Hal$ng Processes
$ tar czf backup.tar.gz magento
[Ctrl + z]
[1] + 13552 suspended tar czf backup.tar.gz magento
$ bg
[1] + 13552 continued tar czf backup.tar.gz magento
$ jobs
[1] + running tar czf backup.tar.gz magento
$ fg
[1] + 13613 running tar czf backup.tar.gz magento
@ma$hewhaworth
Hal$ng SSH
SSH is just another process, it can be halted and
resumed in the same way
$ ssh my-client-staging
my-client-staging $
Enter + ~ then [Ctrl + z]
[1] + 13702 suspended ssh my-client-staging
$ fg
[1] + 13702 continued ssh my-client-staging
my-client-staging $ ls #...
@ma$hewhaworth
Pipe viewer
View the progress of pipe'd input
$ brew install pv
$ pv db.sql | mysql -uroot my_client_db
178MiB 0:00:38 [17.9MiB/s] [==========> ] 60% ETA 0:00:28
@ma$hewhaworth
Other useful process based commands
- top - See a process list
- htop - See a colourful and more interactive process list
- ps - Print out processes to std out, use `ps aux`
- kill - Kill a process by id
- killall - Kill all processes with a certain name
@ma$hewhaworth
Shortcuts
@ma$hewhaworth
Forgot sudo? Lazy?
$ service mysql restart
Permission denied
$ sudo !!
MySQL restarted
# equivalent to...
$ sudo service mysql restart
MySQL restarted
@ma$hewhaworth
Already wri+en a file path once? Lazy?
$ ls -lash app/etc/env.php
$ vim !$
# equivalent to...
$ vim app/etc/env.php
@ma$hewhaworth
Want to pull in a command from history?
$ history
...
1028 ls -lash
1029 vim app/etc/local.xml
1030 rm app/etc/local.xml
# Re-run command 1028
$ !1028
OR
[Ctrl + r] allows you to search through previous commands
@ma$hewhaworth
Wri$en a command that's star1ng to
get too long?
[Ctrl + x] [Ctrl + e]
This will open a text editor containing the command
you currently have wri7en on the command line
@ma$hewhaworth
Further Reading
Mac users
---------
- https://brew.sh/ - Homebrew
- https://github.com/robbyrussell/oh-my-zsh
All Unix
--------
- http://www.commandlinefu.com/
- https://github.com/learnbyexample/
@ma$hewhaworth
Thank you!
Specifically those who suffered my prac5ce runs...
Sam Beckingham-Cook: @SamboBeckingham
Lee Frankland: @leefrankland
Lissie Cox: @LissieCox
Phil Turner: @FlipTurner
Vinai Kopp: @VinaiKopp
@ma$hewhaworth
1 von 43

Recomendados

Vim Hacks (OSSF) von
Vim Hacks (OSSF)Vim Hacks (OSSF)
Vim Hacks (OSSF)Lin Yo-An
2.2K views45 Folien
我在 Mac 上的常用开发工具 von
我在 Mac 上的常用开发工具我在 Mac 上的常用开发工具
我在 Mac 上的常用开发工具dennis zhuang
732 views13 Folien
serverstats von
serverstatsserverstats
serverstatsBen De Koster
246 views4 Folien
Asynchronous PHP and Real-time Messaging von
Asynchronous PHP and Real-time MessagingAsynchronous PHP and Real-time Messaging
Asynchronous PHP and Real-time MessagingSteve Rhoades
19.2K views45 Folien
App-o-Lockalypse now! von
App-o-Lockalypse now!App-o-Lockalypse now!
App-o-Lockalypse now!Oddvar Moe
811 views58 Folien
Puppet Camp 2012 von
Puppet Camp 2012Puppet Camp 2012
Puppet Camp 2012Server Density
843 views20 Folien

Más contenido relacionado

Was ist angesagt?

Web Apps in Perl - HTTP 101 von
Web Apps in Perl - HTTP 101Web Apps in Perl - HTTP 101
Web Apps in Perl - HTTP 101hendrikvb
2.9K views29 Folien
Ruby 1.9 von
Ruby 1.9Ruby 1.9
Ruby 1.9guestaef7ea
914 views32 Folien
Writing Modular Command-line Apps with App::Cmd von
Writing Modular Command-line Apps with App::CmdWriting Modular Command-line Apps with App::Cmd
Writing Modular Command-line Apps with App::CmdRicardo Signes
6.7K views155 Folien
Simple php backdoor_by_dk von
Simple php backdoor_by_dkSimple php backdoor_by_dk
Simple php backdoor_by_dkStan Adrian
797 views1 Folie
Cis 216 – shell scripting von
Cis 216 – shell scriptingCis 216 – shell scripting
Cis 216 – shell scriptingDan Morrill
500 views12 Folien
Bash Scripting Workshop von
Bash Scripting WorkshopBash Scripting Workshop
Bash Scripting WorkshopAhmed Magdy Ezzeldin, MSc.
2K views16 Folien

Was ist angesagt?(20)

Web Apps in Perl - HTTP 101 von hendrikvb
Web Apps in Perl - HTTP 101Web Apps in Perl - HTTP 101
Web Apps in Perl - HTTP 101
hendrikvb2.9K views
Writing Modular Command-line Apps with App::Cmd von Ricardo Signes
Writing Modular Command-line Apps with App::CmdWriting Modular Command-line Apps with App::Cmd
Writing Modular Command-line Apps with App::Cmd
Ricardo Signes6.7K views
Simple php backdoor_by_dk von Stan Adrian
Simple php backdoor_by_dkSimple php backdoor_by_dk
Simple php backdoor_by_dk
Stan Adrian797 views
Cis 216 – shell scripting von Dan Morrill
Cis 216 – shell scriptingCis 216 – shell scripting
Cis 216 – shell scripting
Dan Morrill500 views
Process monitoring in UNIX shell scripting von Dan Morrill
Process monitoring in UNIX shell scriptingProcess monitoring in UNIX shell scripting
Process monitoring in UNIX shell scripting
Dan Morrill5.3K views
Simple tricks to speed you up on the command line von Janos Gyerik
Simple tricks to speed you up on the command lineSimple tricks to speed you up on the command line
Simple tricks to speed you up on the command line
Janos Gyerik327 views
React PHP: the NodeJS challenger von vanphp
React PHP: the NodeJS challengerReact PHP: the NodeJS challenger
React PHP: the NodeJS challenger
vanphp6.7K views
The promise of asynchronous PHP von Wim Godden
The promise of asynchronous PHPThe promise of asynchronous PHP
The promise of asynchronous PHP
Wim Godden16.4K views
ZeroMQ Is The Answer von Ian Barber
ZeroMQ Is The AnswerZeroMQ Is The Answer
ZeroMQ Is The Answer
Ian Barber114K views
Module 03 Programming on Linux von Tushar B Kute
Module 03 Programming on LinuxModule 03 Programming on Linux
Module 03 Programming on Linux
Tushar B Kute1.1K views

Similar a Using the Command Line with Magento

Really useful linux commands von
Really useful linux commandsReally useful linux commands
Really useful linux commandsMichael J Geiser
1.6K views26 Folien
A journey through the years of UNIX and Linux service management von
A journey through the years of UNIX and Linux service managementA journey through the years of UNIX and Linux service management
A journey through the years of UNIX and Linux service managementLubomir Rintel
1.3K views23 Folien
NYPHP March 2009 Presentation von
NYPHP March 2009 PresentationNYPHP March 2009 Presentation
NYPHP March 2009 Presentationbrian_dailey
906 views48 Folien
Puppet @ Seat von
Puppet @ SeatPuppet @ Seat
Puppet @ SeatAlessandro Franceschi
5.9K views45 Folien
Session Server - Maintaing State between several Servers von
Session Server - Maintaing State between several ServersSession Server - Maintaing State between several Servers
Session Server - Maintaing State between several ServersStephan Schmidt
1.8K views34 Folien
Introduction to WP-CLI: Manage WordPress from the command line von
Introduction to WP-CLI: Manage WordPress from the command lineIntroduction to WP-CLI: Manage WordPress from the command line
Introduction to WP-CLI: Manage WordPress from the command lineBehzod Saidov
102 views30 Folien

Similar a Using the Command Line with Magento(20)

A journey through the years of UNIX and Linux service management von Lubomir Rintel
A journey through the years of UNIX and Linux service managementA journey through the years of UNIX and Linux service management
A journey through the years of UNIX and Linux service management
Lubomir Rintel1.3K views
NYPHP March 2009 Presentation von brian_dailey
NYPHP March 2009 PresentationNYPHP March 2009 Presentation
NYPHP March 2009 Presentation
brian_dailey906 views
Session Server - Maintaing State between several Servers von Stephan Schmidt
Session Server - Maintaing State between several ServersSession Server - Maintaing State between several Servers
Session Server - Maintaing State between several Servers
Stephan Schmidt1.8K views
Introduction to WP-CLI: Manage WordPress from the command line von Behzod Saidov
Introduction to WP-CLI: Manage WordPress from the command lineIntroduction to WP-CLI: Manage WordPress from the command line
Introduction to WP-CLI: Manage WordPress from the command line
Behzod Saidov102 views
How we used ruby to build locaweb's cloud (http://presentations.pothix.com/ru... von Willian Molinari
How we used ruby to build locaweb's cloud (http://presentations.pothix.com/ru...How we used ruby to build locaweb's cloud (http://presentations.pothix.com/ru...
How we used ruby to build locaweb's cloud (http://presentations.pothix.com/ru...
Willian Molinari789 views
Ultimate Unix Meetup Presentation von JacobMenke1
Ultimate Unix Meetup PresentationUltimate Unix Meetup Presentation
Ultimate Unix Meetup Presentation
JacobMenke11.8K views
Capital onehadoopclass von Doug Chang
Capital onehadoopclassCapital onehadoopclass
Capital onehadoopclass
Doug Chang388 views

Último

Redefining the book supply chain: A glimpse into the future - Tech Forum 2023 von
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023BookNet Canada
44 views19 Folien
GDSC GLAU Info Session.pptx von
GDSC GLAU Info Session.pptxGDSC GLAU Info Session.pptx
GDSC GLAU Info Session.pptxgauriverrma4
15 views28 Folien
Generative AI: Shifting the AI Landscape von
Generative AI: Shifting the AI LandscapeGenerative AI: Shifting the AI Landscape
Generative AI: Shifting the AI LandscapeDeakin University
67 views55 Folien
Netmera Presentation.pdf von
Netmera Presentation.pdfNetmera Presentation.pdf
Netmera Presentation.pdfMustafa Kuğu
22 views50 Folien
MVP and prioritization.pdf von
MVP and prioritization.pdfMVP and prioritization.pdf
MVP and prioritization.pdfrahuldharwal141
39 views8 Folien
Qualifying SaaS, IaaS.pptx von
Qualifying SaaS, IaaS.pptxQualifying SaaS, IaaS.pptx
Qualifying SaaS, IaaS.pptxSachin Bhandari
1.1K views8 Folien

Último(20)

Redefining the book supply chain: A glimpse into the future - Tech Forum 2023 von BookNet Canada
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
BookNet Canada44 views
GDSC GLAU Info Session.pptx von gauriverrma4
GDSC GLAU Info Session.pptxGDSC GLAU Info Session.pptx
GDSC GLAU Info Session.pptx
gauriverrma415 views
The Coming AI Tsunami.pptx von johnhandby
The Coming AI Tsunami.pptxThe Coming AI Tsunami.pptx
The Coming AI Tsunami.pptx
johnhandby13 views
Cocktail of Environments. How to Mix Test and Development Environments and St... von Aleksandr Tarasov
Cocktail of Environments. How to Mix Test and Development Environments and St...Cocktail of Environments. How to Mix Test and Development Environments and St...
Cocktail of Environments. How to Mix Test and Development Environments and St...
"Surviving highload with Node.js", Andrii Shumada von Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays58 views
NTGapps NTG LowCode Platform von Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu437 views
Adopting Karpenter for Cost and Simplicity at Grafana Labs.pdf von MichaelOLeary82
Adopting Karpenter for Cost and Simplicity at Grafana Labs.pdfAdopting Karpenter for Cost and Simplicity at Grafana Labs.pdf
Adopting Karpenter for Cost and Simplicity at Grafana Labs.pdf
MichaelOLeary8213 views
Bronack Skills - Risk Management and SRE v1.0 12-3-2023.pdf von ThomasBronack
Bronack Skills - Risk Management and SRE v1.0 12-3-2023.pdfBronack Skills - Risk Management and SRE v1.0 12-3-2023.pdf
Bronack Skills - Risk Management and SRE v1.0 12-3-2023.pdf
ThomasBronack31 views
Mobile Core Solutions & Successful Cases.pdf von IPLOOK Networks
Mobile Core Solutions & Successful Cases.pdfMobile Core Solutions & Successful Cases.pdf
Mobile Core Solutions & Successful Cases.pdf
IPLOOK Networks14 views
Digital Personal Data Protection (DPDP) Practical Approach For CISOs von Priyanka Aash
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Priyanka Aash162 views
LLMs in Production: Tooling, Process, and Team Structure von Aggregage
LLMs in Production: Tooling, Process, and Team StructureLLMs in Production: Tooling, Process, and Team Structure
LLMs in Production: Tooling, Process, and Team Structure
Aggregage57 views
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... von ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue199 views
The Power of Heat Decarbonisation Plans in the Built Environment von IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE84 views

Using the Command Line with Magento

  • 3. Make use of SSH config @ma$hewhaworth
  • 4. SSH Config file # ~/.ssh/config Host myclient-dev HostName dev.example.com Port 2020 User myclientu IdentityFile ~/.ssh/id_rsa @ma$hewhaworth
  • 5. SSH Config file # ~/.ssh/config Host myclient-dev HostName dev.example.com Port 2020 User myclientu IdentityFile ~/.ssh/id_rsa $ ssh myclient-dev @ma$hewhaworth
  • 7. screen Start terminal sessions that you can disconnect from and resume at any 3me. @ma$hewhaworth
  • 8. Screen Cheatsheet # Create and name a new screen session $ screen -S <name> # Detach from screen (but keep it alive) $ Ctrl+a d # Resume a named session $ screen -r <name> # List active sessions $ screen -ls # Catch all (use existing, or create new) $ screen -dRR @ma$hewhaworth
  • 9. Escape a dead SSH connec-on @ma$hewhaworth
  • 10. Enter ~ . Kills a dead SSH session and lets you keep your terminal @ma$hewhaworth
  • 13. This makes me want to kill you $ cd app $ cd code $ cd MyVendor $ cd MyModule $ cd etc $ cd ../../.. $ cd .. $ cd .. @ma$hewhaworth
  • 14. This is much nicer $ cd app/code/MyVendor/MyModule/etc $ cd - @ma$hewhaworth
  • 15. Using tar for archiving and compression @ma$hewhaworth
  • 16. Tar tar czf myarchive.tar.gz <files> c - Create new archive z - Zip f - Filename @ma$hewhaworth
  • 18. T-arghh! $ tar czf magento_backup.tar.gz <files> c - Create z - Ze f - Files @ma$hewhaworth
  • 19. T-arghh! $ tar czf magento_backup.tar.gz <files> c - Create z - Ze f - Files $ tar xzf magento_backup.tar.gz x - eXtract z - Ze f - Files @ma$hewhaworth
  • 20. A bit more on tar # Extract to specific directory $ tar xf magento_ce.tar.gz -C myDirectory # Only extract a particular file $ tar xf magento_ce.tar.gz magento @ma$hewhaworth
  • 22. mkdir magic -p allows you to create children and parents at the same 4me # Verbose $ mkdir app && mkdir app/code && mkdir app/code/MyModule # Better $ mkdir -p app/code/MyModule @ma$hewhaworth
  • 23. mkdir magic Using {} allows you to create mul4ple directories at once $ mkdir -p app/code/MHCommerce/{ShippingMethods,Checkout}/{Block,Model,etc} └── app └── code └── MHCommerce ├── Checkout │   ├── Block │   ├── Model │   └── etc └── ShippingMethods ├── Block ├── Model └── etc @ma$hewhaworth
  • 24. tree $ brew install tree $ tree └── app └── code └── MHCommerce ├── Checkout │   ├── Block │   ├── Model │   └── etc └── ShippingMethods ├── Block ├── Model └── etc @ma$hewhaworth
  • 25. Keeping an eye on files @ma$hewhaworth
  • 26. less and Shift + F Browse file and s-ck to the bo3om $ less var/log/system.log [Shift + F] @ma$hewhaworth
  • 27. tail -f Print end of file to standard out # Prints last ten lines to standard out $ tail var/log/system.log # Prints the end of the file continuously $ tail -f var/log/system.log # Print last x lines $ tail -f -n20 var/log/system.log @ma$hewhaworth
  • 28. watch Con$nuously execute a command $ brew install watch $ watch -n[update_interval] "[command]" $ watch -n1 "cat var/log/system.log" $ watch -n0.1 "ls -lsah" @ma$hewhaworth
  • 29. Other useful file based commands - grep - Filter lines in a file - sed - Find and replace on a file - awk - More complex text manipulation @ma$hewhaworth
  • 32. Background Processes with & $ tar czf backup.tar.gz magento & [1] 13281 $ jobs [1] + running tar czf backup.tar.gz magento # some time later ... [1] + 13281 done tar czf backup.tar.gz magento @ma$hewhaworth
  • 33. Hal$ng Processes $ tar czf backup.tar.gz magento [Ctrl + z] [1] + 13552 suspended tar czf backup.tar.gz magento $ bg [1] + 13552 continued tar czf backup.tar.gz magento $ jobs [1] + running tar czf backup.tar.gz magento $ fg [1] + 13613 running tar czf backup.tar.gz magento @ma$hewhaworth
  • 34. Hal$ng SSH SSH is just another process, it can be halted and resumed in the same way $ ssh my-client-staging my-client-staging $ Enter + ~ then [Ctrl + z] [1] + 13702 suspended ssh my-client-staging $ fg [1] + 13702 continued ssh my-client-staging my-client-staging $ ls #... @ma$hewhaworth
  • 35. Pipe viewer View the progress of pipe'd input $ brew install pv $ pv db.sql | mysql -uroot my_client_db 178MiB 0:00:38 [17.9MiB/s] [==========> ] 60% ETA 0:00:28 @ma$hewhaworth
  • 36. Other useful process based commands - top - See a process list - htop - See a colourful and more interactive process list - ps - Print out processes to std out, use `ps aux` - kill - Kill a process by id - killall - Kill all processes with a certain name @ma$hewhaworth
  • 38. Forgot sudo? Lazy? $ service mysql restart Permission denied $ sudo !! MySQL restarted # equivalent to... $ sudo service mysql restart MySQL restarted @ma$hewhaworth
  • 39. Already wri+en a file path once? Lazy? $ ls -lash app/etc/env.php $ vim !$ # equivalent to... $ vim app/etc/env.php @ma$hewhaworth
  • 40. Want to pull in a command from history? $ history ... 1028 ls -lash 1029 vim app/etc/local.xml 1030 rm app/etc/local.xml # Re-run command 1028 $ !1028 OR [Ctrl + r] allows you to search through previous commands @ma$hewhaworth
  • 41. Wri$en a command that's star1ng to get too long? [Ctrl + x] [Ctrl + e] This will open a text editor containing the command you currently have wri7en on the command line @ma$hewhaworth
  • 42. Further Reading Mac users --------- - https://brew.sh/ - Homebrew - https://github.com/robbyrussell/oh-my-zsh All Unix -------- - http://www.commandlinefu.com/ - https://github.com/learnbyexample/ @ma$hewhaworth
  • 43. Thank you! Specifically those who suffered my prac5ce runs... Sam Beckingham-Cook: @SamboBeckingham Lee Frankland: @leefrankland Lissie Cox: @LissieCox Phil Turner: @FlipTurner Vinai Kopp: @VinaiKopp @ma$hewhaworth