The Linux command line is a powerful tool. The majority of webservers run on Linux/Unix. Some hosting companies offer SSH access to their hosting environment. Via SSH you can login and use the Linux command line.
In this presentation, Peter will show you some time-saving command line commands that you can use for certain tasks on your Joomla websites:
some basic SSH command line commands
Analyzing & recovering a hacked website
Backup a website or move it to another server
Finding unused files
Setting up a test environment
8. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Linux
● Cross-platform operating system
● Open Source & Free
● Very stable
– Multi user
– Multi tasking
● Popular
– Majority of Internet servers
● Origin
– Minix (Unix-like operating system)
9. ● Debian .deb
– Debian
– Ubuntu
Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Distributions
● Red Hat .rpm
– Fedora
– CentOS
● Other
– Slackware
– Arch Linux
– Gentoo
10. ● Commercial
– BSD/OS
– Solaris
– Mac OS
Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Unix
● Free
– FreeBSD
– NetBSD
– OpenBSD
26. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Files
● Ownership
– Username
– Name of “process” (e.g. Apache = www-data)
● Group
– Users assigned to same group have same
permissions
● Permissions
– read (4), write (2), and execute (1)
27. read (4)
write (2)
execute (1)
Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
File
-rw-r--r-- 1 peter pc 1174 Nov 7 15:50 example_file.txt
owner
rw-r(
4)+w(2)
group
r--
r(4)
public
r--
r(4)
= 644
28. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Users
Users
– Regular users: username@computer:~$
– Root user: root@computer:~#
– “whoami”
Change user:
– su some_username
– su root, or just su
29. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Run command
Command + parameters
● Run sh script: somescript.sh
permissions executable OR ./somescript.sh
● Run under user as root
– Sudo [command]
30. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Basics
~ “tilde”
= default direcory (sort of “my documents”)
cd ~
> “greater-than sign”
= write output to new file
ls -al > file-with-list-of-directory.txt
>> “double greater-than”
= add output to existing file
ls -al ~ >> file-with-list-of-directory.txt
31. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Basics
| “pipe”
= to chain commands
ls | less
peter@example.com:/var/www/joomla-cms$
cat configuration.php | grep password
public $password = 'my-secret-db-password';
32. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Symbolic links
Create symbolic link: ln
ln -s [TARGET DIR/FILE] [SHORTCUT]
peter@example.com:~$
ln -s /var/www/joomla-cms joomla-test
peter@example.com:~$ ls -al
drwxr-xr-x 2 peter pc 4096 Oct 26 20:34 .
drwxr-xr-x 56 peter pc 4096 Oct 26 19:29 ..
-rw-r--r-- 1 peter pc 0 Nov 7 15:50 example_file.txt
lrwxrwxrwx 1 peter pc Nov 7 15:50 joomla-test ->
/var/www/joomla-cms
35. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Terminal
Windows
– Client program for SSH: PuTTY
Mac OSX
– Built in “Terminal”
Linux
– Built in Terminal Emulator
37. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
SSH
peter@computer:~$ ssh peter@example.com
The authenticity of host 'example.com (93.184.216.119)' can't
be established.
RSA key fingerprint is 10:51:ab:f5:d7:[..]:17:16:1f:22:33.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'example.com,93.184.216.119'
(RSA) to the list of known hosts.
peter@example.com's password:
peter@example.com ~ $
38. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Keyless login
Generate public/private rsa
authentication key pair:
$ ssh-keygen -t rsa
On computer:
private key: ~/.ssh/id_rsa
public key: ~/.ssh/id_rsa.pub
Install public key on the server:
ssh-copy-id username@remote-server.org
40. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Automation
● Automate repetitive tasks
– Automate a bunch of commands
– Use variables & input / output
● Automatic automation based on time?
Crontab (aka cronjob)
41. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Shell vs bash
Shell
The Bourne shell (sh)
command-line
interpreter
Scripts start with:
#!/bin/sh
Often symbolic link to
bash
Bash
“Bourne-again shell”,
free replacement for
Bourne shell (sh) with
more features and
better syntax
Scripts start with:
#!/bin/bash
42. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Dash?
On Ubuntu/Debian:
~$ ls -al /bin/sh
lrwxrwxrwx 1 root root 4 Mar 1 2012
/bin/sh -> dash
= Debian Almquist shell = default for /bin/sh
Bash is the default login shell
for interactive use
43. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Example
Example.sh
#!/bin/bash
# declare STRING variable
STRING="Hello Joomla World Conference!"
#print variable on a screen
echo $STRING
60. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
VirtualBox
“Computer within Computer”
● Download https://www.virtualbox.org/
● Start Virtualbox
● Install Operating system
– e.g. using .iso image
– Installing takes a lot of time
61. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Vagrant
Creating and configuring virtual development
environments
– “wrapper” around virtualization software
● Download http://www.vagrantup.com/
– Install on Debian Linux:
$ sudo dpkg –i vagrant_1.5.2_x86_64.deb
75. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Questions?
Peter Martin
e-mail: info at db8.nl
website: www.db8.nl
twitter: @pe7er
Presentation: http://www.db8.nl
76. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Used Photos
Title sheet:
● Magic Wand - Open Clip Art Library, 2011
http://commons.wikimedia.org/wiki/File:Magic_Wand.svg
● GNU Linux - "Wipes Windows in seconds!"
http://www.schnews.org.uk/images/560-linux-large.jpg
● Raspberry Pi – Switched On Tech Design
http://www.sotechdesign.com.au/raspberry-pi-has-arrived/
● Wikimedia Servers-0051 16, Helpameout, 2012
http://commons.wikimedia.org/wiki/File:Wikimedia_Servers-0051_16.jpg
1. Computer
● 1. General
● IBM Electronic Data Processing Machine - GPN-2000-001881, NASA, 1957
● http://upload.wikimedia.org/wikipedia/commons/2/20/IBM_Electronic_Data_Processing_Machine_-_GP
N-2000-001881.jpg
2. Basics
● Lego Color Bricks, Alan Chia, 2007
http://commons.wikimedia.org/wiki/File:Lego_Color_Bricks.jpg
77. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Used Photos
3. Commands
● US Navy 110913-N-DR144-348 Rig Captain Boatswain's Mate 2nd Class Christopher Cook gives orders as deck
department Sailors launch a rigid hull infl - James R. Evans, 2011
http://commons.wikimedia.org/wiki/File:US_Navy_110913-N-DR144-348_Rig_Captain_Boatswain
%27s_Mate_2nd_Class_Christopher_Cook_gives_orders_as_deck_department_Sailors_launch_a_rigid_hull_infl.jpg
● CPM-Manual - Hubert Berberich, 2011
http://commons.wikimedia.org/wiki/File:CPM-Manual.jpg
● Red Book Dec 1915 Contents Page - Red Book Corporation, 1915
http://commons.wikimedia.org/wiki/File:Red_Book_Dec_1915_Contents_Page_-_Unbaited_Trap.jpg
● Archive boxes 2 - Effeietsanders, 2009
http://commons.wikimedia.org/wiki/File:Archive_boxes_2.JPG
● Touch to exit - Tom Rolfe, 2007
http://commons.wikimedia.org/wiki/File:Touch_to_exit.jpg
● Neon sign, "CHANGE" - Felix Burton, 2005
http://commons.wikimedia.org/wiki/File:Neon_sign,_%22CHANGE%22.jpg
● Cat November 2010-1a - Alvesgaspar, 2010
http://commons.wikimedia.org/wiki/File:Cat_November_2010-1a.jpg
● CSIRO ScienceImage 1342 Nanotechnology - division, CSIRO, 2003
http://commons.wikimedia.org/wiki/File:CSIRO_ScienceImage_1342_Nanotechnology.jpg
● Xerox Phaser 4600 - JackPotte, 2012
http://commons.wikimedia.org/wiki/File:Xerox_Phaser_4600.png
78. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Used Photos
● Long Distance Movers - RoadWay Van Lines, 2014
http://commons.wikimedia.org/wiki/File:Long_Distance_Movers.jpg
● Vuilnisbak-Lebbeke - Volkov Vitaly, 2005
http://commons.wikimedia.org/wiki/File:Vuilnisbak-Lebbeke.JPG
● TRTC Taipei Main Station No-bicycle-access notice - Solomon203, 2013
http://commons.wikimedia.org/wiki/File:TRTC_Taipei_Main_Station_No-bicycle-access_notice_20130324.jpg
● Prva samopostrežna trgovina v Mariboru na Partizanski cesti 1960 - Jože Gal, 1960
http://commons.wikimedia.org/wiki/File:Prva_samopostre
%C5%BEna_trgovina_v_Mariboru_na_Partizanski_cesti_1960_(1).jpg
4. Connecting
● Switchboard Manual - Peel Conner, Geez-oz, 2012
http://commons.wikimedia.org/wiki/File:Switchboard_Manual_-_Peel_Conner.JPG
● Bundesarchiv Bild 183-2008-0516-500, Fernschreibmaschine mit Telefonanschluss - Illger, Willi, 1930
http://commons.wikimedia.org/wiki/File:Bundesarchiv_Bild_183-2008-0516-500,_Fernschreibmaschine_mit_Telefo
nanschluss.jpg
5. Scripts
● Binary Code, Cncplayer, 2013
http://commons.wikimedia.org/wiki/File:Binary_Code.jpg
79. Joomla WWoorrlldd CCoonnffeerreennccee 22001144 -- CCaannccuunn,, MMeexxiiccoo
Used Photos
6. Finding Files
● Postcards and magnifying glass, Anna, 2007
http://commons.wikimedia.org/wiki/File:Postcards_and_magnifying_glass.jpg
● Bundesarchiv Bild 183-M0125-421, Fundbüro in Berlin - Klaus Franke, 1973
http://commons.wikimedia.org/wiki/File:Bundesarchiv_Bild_183-M0125-421,_Fundb
%C3%BCro_in_Berlin.jpg
● DARPA Big Data - DARPA, 2013
http://commons.wikimedia.org/wiki/File:DARPA_Big_Data.jpg
● Magnifying glass - Faberge - shakko, 2011
http://commons.wikimedia.org/wiki/File:Magnifying_glass_-_Faberge.jpg
● Magnifying glass on antique table - Stéphane Magnenat, 2008
http://commons.wikimedia.org/wiki/File:Magnifying_glass_on_antique_table.jpg
● Unused Phonebooks - David Shankbone, 2013
http://commons.wikimedia.org/wiki/File:Unused_Phonebooks.JPG
7. Backup
● IBM 7330 on white background, Crisco 1492, 2013
http://commons.wikimedia.org/wiki/File:IBM_7330_on_white_background.jpg