SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Linux Survival Kit para
PHPeiros
By /Leonardo Tumadjian @tumadjian
Sobre mim:
Formado em Análise e Desenvolvimento de Sistemas
Programador PHP desde 2009
Instrutor desde 2012
Nas horas vagas: Gamer, Biker, Shooter, Guitarrista
Evangelista da comunidade PHPSP
Víciado em séries estranhas!
Antes de começarmos:
Contribua com sua comunidade mais próxima, se tiver um tempo ;)
Como contribuir?
Aviso!
Não sou um sysadmin em Linux, sou um simples sobrevivente que
decidiu colocar aqui alguns dos comandos que salvaram minha vida
quando estive em perigo na selva digital!
Todos Prontos?
Como testar?
O que é Bash?
O bash é um interpretador de comandos, uma espécie de tradutor
entre o sistema operacional e o usuário, normalmente conhecido
como shell. Permite a execução de sequências de comandos direto
no prompt do sistema ou escritas em arquivos de texto, conhecidos
como shell scripts. Foi liberado em 1989 e é mantido pelo projeto
GNU.
Wikipedia: https://pt.wikipedia.org/wiki/Bash
Atalhos
Limpar o terminal rapidamente
ctrl + l(L)
Abortar um processo ativo no terminal
ctrl + c
Logout de um SSH ou programa logado no terminal
ctrl + d
Comandos básicos
Executar como super user / root
$ sudo [ação]
para se logar como super user / root
$ sudo su
Como consultar um comando?
$ man [comando]
Syntax
      man [­acdfFhkKtwW] [­­path] [­m system] [­p string] [­C co
             [­M pathlist] [­P pager] [­B browser] [­H htmlpager
                [section] name ... 
Key:
   ­C config_file  The configuration file to use; the default is
   ­M path         The list of directories to search for man pag
                   An empty list is the same as not specifying ­
Comandos básicos
Executar como super user / root
$ cd [diretorio]
Exemplo / acessa os diretórios iniciais do linux
$ cd /home/leonardo
Voltar um diretório
$ cd ../
 ou mais
$cd ../../
Voltar ao ultimo do ultimo diretório que veio
$ cd ­
Acesso o diretorio do 
usuário logado(ou root): /home/seunome
$ cd ~
Comandos básicos
Listagem de diretórios e arquivos
$ ls [diretório / atual se não informado]
listar organizado(com detalhes)
$ ls ­l
listar inclusive arquivos ocultos 
$ ls ­la
listar arquivo e seu tamanho simples de ler
$ ls ­lh
Consulta diretorio atual
$ pwd
Comandos básicos
Exclui arquivos que seu usuário tem permissão
$ rm [caminho/arq] ...
exclui diretorio recursivamente 
sem perguntar (cuidado!)
$ rm ­rf [diretório]
Exemplo: 
$ rm ­rf /var/wrong­project
remover um tipo específico de arquivo, mostrando­os ex:
$ rm ­rfv *.php
removed 'teste1.php'
removed 'teste2.php'
removed 'teste3.php'
removed 'teste4.php'
Comandos básicos
Move o arquivo para um local especificado
e renomeia se informado
$ mv [arquivo] [para]
Exemplo:
$ mv /caminho/para/arquivo.php /novo/diretorio/arquivo.php
Renomeando: 'arquivo.php' para 'novonome.php'
$ mv arquivo.php novonome.php
Movendo com verboso(informa a mudança)
$ mv ­v arquivo diretorio/
'arquivo' ­> 'diretorio/arquivo'
Comandos básicos
Copia um arquivo para um local informado
$ cp ­v [arquivo] [destino]
Exemplo:
$ cp /caminho/para/arquivo.php ./diretorio/
Copiando diretório, se não existir o destino ele cria
$ cp ­rf [dir] [destino]
Exemplo copia pasta 'carros' para 'dismanche/carros'
$ cp ­rf carros/ dismanche/carros
Comandos básicos
Criando diretório
$ mkdir [caminho]/[nomedodir]
Criando dir local
$ mkdir [nomedir]
Criando arvores
$ mkdir ­pv projeto/{css/,public/,src/{app/,entities/}}
mkdir: created directory 'projeto'
mkdir: created directory 'projeto/css/'
mkdir: created directory 'projeto/public/'
mkdir: created directory 'projeto/src'
mkdir: created directory 'projeto/src/app/'
mkdir: created directory 'projeto/src/entities/'
Comandos básicos
Muda data de última alteração do arquivo para horario atual
$ touch [arquivo] ...
Se não existir cria o arquivo vazio
$ touch index.php
Cria mais de um arquivo
$ touch index.php test.php form.php
Comandos básicos
Detalha todas informações da rede e seu IP
$ ifconfig
Detalha a rede primária(eth0)
$ ifconfig eth0
Resultado: 
eth0      Link encap:Ethernet  HWaddr 02:8c:0a:1s:65:4e
          inet addr:122.21.21.223  Bcast:122.11.11.255  Mask:255
          inet6 addr: fe80::8a:dff:fe1e:654a/64 Scope:Link
Comandos básicos
Altera a permissão de um arquivo ou diretório
$ chmod [parametros] [modo] [arquivo/dir]
Exemplo altera todos arquivos e diretórios
rwxr­xr­x
$ chmod ­R 755 myproject/
ou
Permissão de ler, escrever e executar só para grupo(g)
$ chmod ­R g+rwx myproject/
Comandos básicos
Entendendo permissões
rwxr­x­­x
rwx = o dono do arquivo (read, right, execute)
r­x = o grupo do arquivo pode (ler e executar)
­­x = outros podem (executar)
pode ser representado por números octais: 751
onde: 7 = rwx, 5 = r­x, 1 = ­­x
mais comum
$ chmod ­R 755 projeto/
Comandos básicos
Mudando dono de arquivos
ls ­l
d­­x­­x­­x 2 ubuntu www­data 4096 Dec  2 07:11 carros
O comando chown
$ chown [pars] [user]:[group] [diretório]
mudando o dono e seu grupo
$ chown ­R root:root carros
Comandos básicos
Como editar arquivos? mais comum é o vim/vi
"vi" editor de terminal mais antigo
vi [arquivo].[ext]
"vim" vi improved um editor melhorado
vim [arquivo].[ext]
Dicas simples:
Iniciar edição: digite "i"
Sair de edição: digite "Esc"
buscar: fora do modo edição digite "/[exp/busca]" + n (next)
excluir linhas: digite "dd" ou "3dd" apaga 3 linhas
salvar: em modo "Esc" digite ":wq" grava sai ou ":w" só salva
Comandos básicos
como deszipar isso? *.tar.gz
$ tar ­xzvf file1.tar.gz file1.tar.gz [...]
E isso? *.zip
$ unzip meuprojeto.zip meuprojeto2.zip [...]
Haa!! glu glu!
Agora que estamos aquecidos
=)
Acesso SSH
Se não tiver na sua distro rode:
$ sudo apt­get install ssh
Uso ssh
$ ssh [usuario]@[ip/dns]:[dir]
Acesso SSH
chmod na sua chave uma vez só
$ chmod 400 /path/to/minhachave.pem
$ssh ­i /path/to/minhachave.pem ubuntu@meuserver:/home/ubuntu
Acesso SSH
Automatizar
acesse no diretorio do seu user ex:
cd /home/leonardo/.ssh/
crie o arquivo "config" e adicione esses detalhes:
Host [um apelido para seu host]
Hostname [o host destino]
User [usuario do sistema]
IdentityFile [caminho do seu arquivo *.pem]
Exemplo:
Host meu­server
Hostname www.meu­server.com
User ubuntu
IdentityFile /home/leonardo/keys/mesherkey.pem
Acesso SSH
$ ssh meu­server
Instalar pacotes comuns
$ apt­get install [nome do pacote]
ou se tiver
$ aptitude install [nome do pacote]
Download de arquivo externo
baixar aquivo via terminal
wget https://uma­url.com/debian­7.2.0.box
12% [=================>
Link simbólico
Para criar link simbólico
$ ln ­s [caminho/arquivo] [arquivo/link]
Informações do Servidor
Qual minha distro? debian based
$ cat /etc/lsb­release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"
Detalhes mais técnicos, proc, kernal etc..
$ uname ­a
Informações do Servidor
$ free ­h
      total  usado livre compart. buffers em cache
Mem:  3,7G   2,6G  1,1G  177M     72M     944M
$ df ­h
Sist. Arq.      Tam. Usado Disp. Uso% Montado em
/dev/sda1        26G   15G  9,2G  63% /
none            4,0K     0  4,0K   0% /sys/fs/cgroup
udev            1,9G  4,0K  1,9G   1% /dev
tmpfs           382M  1,2M  381M   1% /run
Informações do Servidor
Monitorar processos em execução
$ top
 3015 leonardo  20   0 1330288 433024  51896 S   7,6 11,1  12:34
 2366 leonardo  20   0  716856  22516  14296 S   4,0  0,6   0:14
 1102 root      20   0  310220  43440  29064 S   3,6  1,1   2:34
Informações do Servidor
Procurar processos rodando
$ ps ­aux | grep php
Informações do Servidor
Comando find
$ find [dir] [param] [arquivo]
$ find /var/meuprojeto ­name index.php
ou então:
$ find /var/meuprojeto ­name "*.php"
Informações do Servidor
Comando file saber o Mime­type do arquivo
$ file ­i granade
granade: image/gif; charset=binary
$ file ­­mime­type granade
granade: image/gif
Envio de requisiçoes
Envio de requisição http para um servidor
curl [param] [values] [endereço/end­point]
Envia GET para google
curl www.google.com.br
Definindo o Method
curl ­­request POST http://my.api.teste.com
Post com valores
curl ­­data "var1=teste1&var2=teste2" http://meu.site
O que esta instalado?
Versão do PHP em cli
php ­v
Versão do Mysql
mysql ­v
As versões de todo set web instalado DEBIAN BASED!
dpkg ­l | grep '(php|mysql|apache|nginx)'
Bom, chega neh!?
Arquivos de configuração do servidor
Onde está o php.ini?
find / ­name php.ini
por padrão nginx: /etc/php5/fpm/php.ini
por padrão apache: /etc/php5/apache2/php.ini
config nginx: /etc/nginx/nginx.conf
config apache: /etc/apache/httpd.conf
Seguir arquivos em tempo real
Retorna as ultimas linhas de um arquivo
tail ­f [caminho/arquivo]
Arquivo de log apache:
/var/log/apache2/access.log
/var/log/apache2/error.log
Arquivo de log nginx:
/var/log/nginx/access.log
/var/log/nginx/error.log
Atenção: pode mudar depende de distro e versão instalada
LIVE CODE SE TIVER REDE :P
Duvidas??!
Meus contatos
About me: https://about.me/leonardotumadjian
Email me: tumadjian@gmail.com
Twitter: @tumadjian
Slides no Github: leoqbc

Mais conteúdo relacionado

Mais procurados

Vale a pena usar o Linux!?
Vale a pena usar o Linux!?Vale a pena usar o Linux!?
Vale a pena usar o Linux!?bardo
 
Manual linux de_uma_pagina
Manual linux de_uma_paginaManual linux de_uma_pagina
Manual linux de_uma_paginaMarcos Oliveira
 
Introdução ao Linux
Introdução ao LinuxIntrodução ao Linux
Introdução ao Linuxguest82cc1d
 
Gentoo - Sistema Operacional
Gentoo - Sistema OperacionalGentoo - Sistema Operacional
Gentoo - Sistema OperacionalAnderson Favaro
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linuxRogério Cardoso
 
Workshop Ubuntu Linux: O desktop perfeito - Arlei Silveira Silva
Workshop Ubuntu Linux: O desktop perfeito - Arlei Silveira SilvaWorkshop Ubuntu Linux: O desktop perfeito - Arlei Silveira Silva
Workshop Ubuntu Linux: O desktop perfeito - Arlei Silveira SilvaTchelinux
 
Linux para-iniciantes-explorando
Linux para-iniciantes-explorandoLinux para-iniciantes-explorando
Linux para-iniciantes-explorandogastaovalle
 
Semana da computacao - Linux Day
Semana da computacao - Linux DaySemana da computacao - Linux Day
Semana da computacao - Linux DayFábio Albuquerque
 
Tradução de Aplicativos Livres
Tradução de Aplicativos LivresTradução de Aplicativos Livres
Tradução de Aplicativos LivresÁtila Camurça
 
Curso de Linux Básico com o Linux Educacional
Curso de Linux Básico com o Linux EducacionalCurso de Linux Básico com o Linux Educacional
Curso de Linux Básico com o Linux EducacionalFelipe Queiroz
 
A Experiência (e a falta dela) em Linux como usuário comum
A Experiência (e a falta dela) em Linux como usuário comumA Experiência (e a falta dela) em Linux como usuário comum
A Experiência (e a falta dela) em Linux como usuário comumLuiz Henrique Rauber Rodrigues
 
Sistema Operativo Linux
Sistema Operativo LinuxSistema Operativo Linux
Sistema Operativo Linuxfilipereira
 
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry piImpressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry piMarcos Aurelio Barranco
 
A Experiência (e a falta dela) em Linux como usuário comum
A Experiência (e a falta dela) em Linux como usuário comumA Experiência (e a falta dela) em Linux como usuário comum
A Experiência (e a falta dela) em Linux como usuário comumLuiz Henrique Rauber Rodrigues
 

Mais procurados (19)

Vale a pena usar o Linux!?
Vale a pena usar o Linux!?Vale a pena usar o Linux!?
Vale a pena usar o Linux!?
 
Gentoo
GentooGentoo
Gentoo
 
Manual linux de_uma_pagina
Manual linux de_uma_paginaManual linux de_uma_pagina
Manual linux de_uma_pagina
 
Introdução ao Linux
Introdução ao LinuxIntrodução ao Linux
Introdução ao Linux
 
Gentoo - Sistema Operacional
Gentoo - Sistema OperacionalGentoo - Sistema Operacional
Gentoo - Sistema Operacional
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linux
 
1 - Introdução ao linux
1 - Introdução ao linux1 - Introdução ao linux
1 - Introdução ao linux
 
Workshop Ubuntu Linux: O desktop perfeito - Arlei Silveira Silva
Workshop Ubuntu Linux: O desktop perfeito - Arlei Silveira SilvaWorkshop Ubuntu Linux: O desktop perfeito - Arlei Silveira Silva
Workshop Ubuntu Linux: O desktop perfeito - Arlei Silveira Silva
 
Linux para-iniciantes-explorando
Linux para-iniciantes-explorandoLinux para-iniciantes-explorando
Linux para-iniciantes-explorando
 
Intro linux
Intro linuxIntro linux
Intro linux
 
Semana da computacao - Linux Day
Semana da computacao - Linux DaySemana da computacao - Linux Day
Semana da computacao - Linux Day
 
Tradução de Aplicativos Livres
Tradução de Aplicativos LivresTradução de Aplicativos Livres
Tradução de Aplicativos Livres
 
Curso de Linux Básico com o Linux Educacional
Curso de Linux Básico com o Linux EducacionalCurso de Linux Básico com o Linux Educacional
Curso de Linux Básico com o Linux Educacional
 
A Experiência (e a falta dela) em Linux como usuário comum
A Experiência (e a falta dela) em Linux como usuário comumA Experiência (e a falta dela) em Linux como usuário comum
A Experiência (e a falta dela) em Linux como usuário comum
 
Conhecendo Melhor O Linux
Conhecendo Melhor O LinuxConhecendo Melhor O Linux
Conhecendo Melhor O Linux
 
Sistema Operativo Linux
Sistema Operativo LinuxSistema Operativo Linux
Sistema Operativo Linux
 
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry piImpressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
 
Ubuntu
UbuntuUbuntu
Ubuntu
 
A Experiência (e a falta dela) em Linux como usuário comum
A Experiência (e a falta dela) em Linux como usuário comumA Experiência (e a falta dela) em Linux como usuário comum
A Experiência (e a falta dela) em Linux como usuário comum
 

Semelhante a Palestra Linux Survival Kit para PHPeiros

Slide minicursocalourosufpa2010
Slide minicursocalourosufpa2010Slide minicursocalourosufpa2010
Slide minicursocalourosufpa2010Diego Damasceno
 
Introdução ao Linux
Introdução ao LinuxIntrodução ao Linux
Introdução ao LinuxLeandro Lemos
 
Mini-curso de Linux na CPRecife2
Mini-curso de Linux na CPRecife2Mini-curso de Linux na CPRecife2
Mini-curso de Linux na CPRecife2Adriano Melo
 
Complemento rodrigo f ormatado
Complemento rodrigo f ormatadoComplemento rodrigo f ormatado
Complemento rodrigo f ormatadoNeon Online
 
Software livre, simples assim.
Software livre, simples assim.Software livre, simples assim.
Software livre, simples assim.guilhermemar
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema OperacionalCláudia Costa
 
Mini-Curso "Introdução ao Linux Educacional"
Mini-Curso "Introdução ao Linux Educacional"Mini-Curso "Introdução ao Linux Educacional"
Mini-Curso "Introdução ao Linux Educacional"Morgana Lacerda
 
Hacking Linux: Princípios Básicos de Segurança - Bruna Griebeler
Hacking Linux: Princípios Básicos de Segurança - Bruna GriebelerHacking Linux: Princípios Básicos de Segurança - Bruna Griebeler
Hacking Linux: Princípios Básicos de Segurança - Bruna GriebelerTchelinux
 
Guia com mais de 500 comandos do linux
Guia com mais de 500 comandos do linuxGuia com mais de 500 comandos do linux
Guia com mais de 500 comandos do linuxKalanzans
 
AdministraçãO Gnu Linux
AdministraçãO Gnu LinuxAdministraçãO Gnu Linux
AdministraçãO Gnu Linuxpeter_lucas
 
GNU/Linux - uma alternativa (nova versão)
GNU/Linux - uma alternativa (nova versão)GNU/Linux - uma alternativa (nova versão)
GNU/Linux - uma alternativa (nova versão)Fábio Emilio Costa
 

Semelhante a Palestra Linux Survival Kit para PHPeiros (20)

Slide minicursocalourosufpa2010
Slide minicursocalourosufpa2010Slide minicursocalourosufpa2010
Slide minicursocalourosufpa2010
 
Linux básico
Linux básicoLinux básico
Linux básico
 
Introdução ao Linux
Introdução ao LinuxIntrodução ao Linux
Introdução ao Linux
 
Mini-curso de Linux na CPRecife2
Mini-curso de Linux na CPRecife2Mini-curso de Linux na CPRecife2
Mini-curso de Linux na CPRecife2
 
Impress
ImpressImpress
Impress
 
Fedora 11 Release Party
Fedora 11 Release PartyFedora 11 Release Party
Fedora 11 Release Party
 
Linux X Windows
Linux X WindowsLinux X Windows
Linux X Windows
 
Soa cap1 introducao a linux
Soa cap1 introducao a linuxSoa cap1 introducao a linux
Soa cap1 introducao a linux
 
Complemento rodrigo f ormatado
Complemento rodrigo f ormatadoComplemento rodrigo f ormatado
Complemento rodrigo f ormatado
 
Software livre, simples assim.
Software livre, simples assim.Software livre, simples assim.
Software livre, simples assim.
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema Operacional
 
Mini-Curso "Introdução ao Linux Educacional"
Mini-Curso "Introdução ao Linux Educacional"Mini-Curso "Introdução ao Linux Educacional"
Mini-Curso "Introdução ao Linux Educacional"
 
Introdução à linguagem python
Introdução à linguagem pythonIntrodução à linguagem python
Introdução à linguagem python
 
Hacking Linux: Princípios Básicos de Segurança - Bruna Griebeler
Hacking Linux: Princípios Básicos de Segurança - Bruna GriebelerHacking Linux: Princípios Básicos de Segurança - Bruna Griebeler
Hacking Linux: Princípios Básicos de Segurança - Bruna Griebeler
 
Soa#cap4.1 gestor de pacotes
Soa#cap4.1   gestor de pacotesSoa#cap4.1   gestor de pacotes
Soa#cap4.1 gestor de pacotes
 
Soa#cap4.1 gestor de pacotes
Soa#cap4.1   gestor de pacotesSoa#cap4.1   gestor de pacotes
Soa#cap4.1 gestor de pacotes
 
Guia com mais de 500 comandos do linux
Guia com mais de 500 comandos do linuxGuia com mais de 500 comandos do linux
Guia com mais de 500 comandos do linux
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
AdministraçãO Gnu Linux
AdministraçãO Gnu LinuxAdministraçãO Gnu Linux
AdministraçãO Gnu Linux
 
GNU/Linux - uma alternativa (nova versão)
GNU/Linux - uma alternativa (nova versão)GNU/Linux - uma alternativa (nova versão)
GNU/Linux - uma alternativa (nova versão)
 

Mais de Leonardo Tumadjian

PHP de alta performance com RoadRunner
PHP de alta performance com RoadRunnerPHP de alta performance com RoadRunner
PHP de alta performance com RoadRunnerLeonardo Tumadjian
 
Zend Expressive de micro a fullstack
Zend Expressive de micro a fullstackZend Expressive de micro a fullstack
Zend Expressive de micro a fullstackLeonardo Tumadjian
 
Php 7 do início ao profissional
Php 7  do início ao profissionalPhp 7  do início ao profissional
Php 7 do início ao profissionalLeonardo Tumadjian
 
PHP freakshow 2 PHP Experience 2016
PHP freakshow 2 PHP Experience 2016PHP freakshow 2 PHP Experience 2016
PHP freakshow 2 PHP Experience 2016Leonardo Tumadjian
 
Escreva menos e entenda mais com DSLs desacopladas
Escreva menos e entenda mais com DSLs desacopladasEscreva menos e entenda mais com DSLs desacopladas
Escreva menos e entenda mais com DSLs desacopladasLeonardo Tumadjian
 
Php Freak Show por Leonardo Tumadjian
Php Freak Show por Leonardo TumadjianPhp Freak Show por Leonardo Tumadjian
Php Freak Show por Leonardo TumadjianLeonardo Tumadjian
 

Mais de Leonardo Tumadjian (6)

PHP de alta performance com RoadRunner
PHP de alta performance com RoadRunnerPHP de alta performance com RoadRunner
PHP de alta performance com RoadRunner
 
Zend Expressive de micro a fullstack
Zend Expressive de micro a fullstackZend Expressive de micro a fullstack
Zend Expressive de micro a fullstack
 
Php 7 do início ao profissional
Php 7  do início ao profissionalPhp 7  do início ao profissional
Php 7 do início ao profissional
 
PHP freakshow 2 PHP Experience 2016
PHP freakshow 2 PHP Experience 2016PHP freakshow 2 PHP Experience 2016
PHP freakshow 2 PHP Experience 2016
 
Escreva menos e entenda mais com DSLs desacopladas
Escreva menos e entenda mais com DSLs desacopladasEscreva menos e entenda mais com DSLs desacopladas
Escreva menos e entenda mais com DSLs desacopladas
 
Php Freak Show por Leonardo Tumadjian
Php Freak Show por Leonardo TumadjianPhp Freak Show por Leonardo Tumadjian
Php Freak Show por Leonardo Tumadjian
 

Palestra Linux Survival Kit para PHPeiros