Introdução ao Linux
GUILHERME OKI
Sistema de Arquivos
 Sistemas de arquivos convencionais
 Ext2, Ext3 ,Ext4
 NTFS, FAT , FAT 16, FAT 32
 XFS, JFS
 ReiserFS
 procfs,sysfs,tmpfs,debugfs
 nfs
 Journaling
 Mantém o registro de mudança dos dados
 Ajuda a recuperar possíveis falhas em disco
Hierarquia Padrão
Cont..
Diretórios
 bin
 boot
 dev
 etc
 lib
 media
 mnt
 opt
 sbin
 srv
 tmp
 usr
 var
Descrição
 Principais Binários
 Arquivos estáticos do boot loader
 Arquivos de devices
 Configuração do sistema
 Principais libs share. e mod. kernel
 Mount Point for removeable media
 Mount Point para s.a temporário
 Pacotes de software adicionais
 Principais binários do sistema
 Local para serviços providos pelo sistema
 Arquivos temporários
 Segunda Hierarquia
 Dados Variáveis
Processo de Boot
 Boot Loaders
 Grub
 Lilo
 Burg
 BIOS vs UEFI
 MBR vs GPT
 Muita dor de cabeça
Cont..
 Boot Loader
 Carrega o Kernel na memória
 Carrega o Initramfs na memória
 Kernel
 Configura a memória do
computador
 Configura o hardware do
computador
 Controla
 Processos
 I/O
 Discos
Cont..
 Initramfs
 Programas / Binários
 Proporciona ao kernel o mount do
/
 Udev
 Localiza os dispositivos
 Localiza os drivers
 Checa erros nos sistemas de
arquivo
Distribuições Linux
 Debian
 Centos
 Arch Linux
 Gentoo
 Slackware
 Ubuntu
 Mint
 Fedora
Cont..
Comandos Principais
 man ( manual do linux ) -> O mais importante !
 tty ( ctrl + alt + f n ) -> terminal
 mkdir ( criar um diretório )
 rm ( exclui um arquivo ou diretório )
 cp ( copia um arquivo ou diretório)
 mv ( move ou renomeia um arquivo ou diretório )
 cd ( mudar de diretório )
 ls ( mostrar os arquivos no diretório )
 pwd ( mostra o diretório atual )
 du( lista o tamanho dos arquivos e diretórios)
Cont..
 cat ( concatena e imprime o conteúdo de arquivos)
 head ( mostra as 10 primeiras linhas de um arquivo)
 tail ( mostra as 10 últimas linhas de um arquivo)
 echo ( imprime uma string no terminal )
 clear ( limpa o terminal )
 vim ( editor de texto )
 su ( troca de usuário )
 sudo ( realiza funções de super user )
 whoami ( verifica o usuário que está logado no momento)
 w ( verifca os usuários logados e o que estão executando )
Cont..
 hostname ( mostra o nome do computador )
 uname ( mostra informação sobre o s.o )
 whereis ( localização do binário )
 date ( data no sistema )
 ps ( lista os processos do sistema )
 top ( lista os processos do sistema e o uso de memória )
 kill ( mata um processo )
 mount ( monta uma partição )
 umount ( desmonta uma partição )
 chmod ( muda a permissão )
Cont..
 chown ( muda o dono do arquivo )
 ifconfig ( mostra as interfaces de rede )
 grep ( Expressão Regular )
 find ( procura arquivos e diretórios )
 Ex: find . -name hello
 cut ( pega seções da saída de um programa )
 Ótimo em conjunto com delimitadores
 Ex: cut -d ':' -f 1
 ln ( cria um link )
 diff ( usado para ver a diferença entre dois arquivos)
Tratamentos de entrada / saída
 Uso do " | " ( pipe )
 Passa a saída do comando anterior para o próximo comando
 Ex: cat texto | grep "senha"
 Uso das setas
 Insere ou escreve o conteúdo de um arquivo.
 > ( escreve/sobrescreve a saída de um comando no arquivo)
 >> ( escreve a saída de um comando no fim do arquivo)
 < ( passa para o programa a entrada de um arquivo )
 << ( passa para o programa o fim do arquivo )
Agendamento de programas
 Ferramenta Cron
 Crontab -e ( Edita o agendamento do super user )
 Formato [minuto] [hora] [dia] [semana] [usuário] [comando]
 * é usado como qualquer
 Para utilizar outro usuário criar o cron no
/var/spool/cron/crontabs/$USER
Execução de Programas
 &
 Colocado no fim do programa para indicar que vai rodar em
background
 Ex: ls -lah -R / &
 bg
 Temos que parar a execução do programa com ctrl + z primeiramente
 Executa o programa em segundo plano
 bg [número] número:=número obtido pelo ctrl+z
 fg
 Retornamos o processo para o primeiro plano
 fg [número] número do processo
Daemon
 São programas que rodam em background
 Normalmente esperam um evento ocorrer ou oferecem um
determinado serviço
 Gerenciadores de daemons comuns do linux
 rc.d
 init.d
 systemd
 Colocando programas e scripts como daemons no debian
 Ex: update-rc.d programa defaults
Criando Daemons em PERL
 Proc::Daemon é um módulo do perl
 Código:
use strict;
use Proc::Daemon;
Proc::Daemon::Init
my $continue=1;
$SIG{TERM} = sub { $continue = 0 };
while($continue){
}
Interface Gráfica
 Desktop Environment
 GNOME
 KDE
 XFCE
 MATE
 Display/Login Manager
 GDM
 KDM
 XDM
 MDM
Cont..
 Xorg
 X window system
 Prerequisito p/ qualquer aplicação gráfica
 Window Manage
 Compiz
 Dwm
 Xfwm4
 Mutter
Ferramentas
 Rede
 ping
 traceroute
 nslookup
 nmap
 iptables
 tcpdump
 Disco
 fdisk , cfdisk
 Hardware
 dmesg
 lspci
Cont.
 Editores
 vi/vim
 nano
 Web Browsers
 links,elinks
 Compressão
 tar
 zip/unzip
Shell Script
 Temos diversos shells
 ZSH, KSH , SH, BASH
 cat /etc/shells (mostra os shells disponíveis)
 Executando um bash script
 chmod +x script.sh
 ./script.sh ou bash script.sh
 Simples script
#!/bin/sh
echo "hello world"
Cont.
 Shell script não tem declaração de tipo ( int, float, double ....)
 Shell script não é orientado a objetos
 Funções
 #!/bin/bash
main(){
//conteúdo
}
main
 Retorno
 return [inteiro] ( 0 - 255 )
 Pegamos o valor do retorno usando $?
Cont.
 Variáveis
 Declaração
 nome_variavel="lfulano", numero_var=10
 Chamando
 echo $nome_variavel , echo $numero_var
 Saida
 saida_ls=$(ls -lah | grep arquivo)
 Entrada do teclado
 comando read
 #!/bin/bash
read file
echo $file
 Operadores aritméticos e lógicos
 + , - , / , * , % , || ,&& ,
Cont.
 Parâmetro
 $0 ( Nome do script )
 $1 ( Primeiro parâmetro )
 $* ( Todos os parâmetros )
 $# ( Número de argumentos )
 IF
 Sintaxe
if [ CONDITION ] ; then
//faz algo
fi
Cont.
 IF (cont.)
 Else e Elif
 Condições para arquivos
 -e ( se o arquivo existe )
 -d ( se o diretório existe )
 -s ( se o arquivo tem tamanho diferente de zero )
 -r ( se o arquivo pode ser lido )
 -w ( se o arquivo pode ser gravado )
 -x ( se o arquivo pode ser executado )
Cont.
 IF (cont.)
 Condições de String
 string1 == string2
 Condição númerica
 -eq ( igual a )
 -ne ( não igual )
 -gt ( maior que )
 -lt ( menor que )
 -ge ( maior ou igual )
 -le ( menor ou igual )
Cont.
 FOR
 Sintaxe
 for contador in limite_contador;
do
//algo
done
 WHILE/ UNTIL
 Sintaxe
while [ CONDICAO ]
do
//algo
done
Cont..
Cont.
 Case
 Sintax
case expression in
pattern1) execute commands;;
pattern2) execute commands;;
pattern3) execute commands;;
pattern4) execute commands;;
* ) execute some default commands or nothing ;;
esac
 Exemplo
Cont..
Cont..
 Manipulação de String
 Tamanho da String
 tamanho = ${#string1}
 Substring
 ${string:offset:tamanho}
 ${string#substring} //deleta até encontrar a substring partindo do inicio
 ${string%substring} // deleta até encontrar a substring partindo do final
 ${string##substring}
 ${string%%substring}
 Replace
 ${string/pattern/replacement}
Debug
 Poderoso print
 echo
 STDERR
 ./programa 2>> error.log
 SET
 set -x ( ativa debug )
 set +x ( desativa debug )

Introduction to linux

  • 1.
  • 2.
    Sistema de Arquivos Sistemas de arquivos convencionais  Ext2, Ext3 ,Ext4  NTFS, FAT , FAT 16, FAT 32  XFS, JFS  ReiserFS  procfs,sysfs,tmpfs,debugfs  nfs  Journaling  Mantém o registro de mudança dos dados  Ajuda a recuperar possíveis falhas em disco
  • 3.
  • 4.
    Cont.. Diretórios  bin  boot dev  etc  lib  media  mnt  opt  sbin  srv  tmp  usr  var Descrição  Principais Binários  Arquivos estáticos do boot loader  Arquivos de devices  Configuração do sistema  Principais libs share. e mod. kernel  Mount Point for removeable media  Mount Point para s.a temporário  Pacotes de software adicionais  Principais binários do sistema  Local para serviços providos pelo sistema  Arquivos temporários  Segunda Hierarquia  Dados Variáveis
  • 5.
    Processo de Boot Boot Loaders  Grub  Lilo  Burg  BIOS vs UEFI  MBR vs GPT  Muita dor de cabeça
  • 6.
    Cont..  Boot Loader Carrega o Kernel na memória  Carrega o Initramfs na memória  Kernel  Configura a memória do computador  Configura o hardware do computador  Controla  Processos  I/O  Discos
  • 7.
    Cont..  Initramfs  Programas/ Binários  Proporciona ao kernel o mount do /  Udev  Localiza os dispositivos  Localiza os drivers  Checa erros nos sistemas de arquivo
  • 8.
    Distribuições Linux  Debian Centos  Arch Linux  Gentoo  Slackware  Ubuntu  Mint  Fedora
  • 9.
  • 10.
    Comandos Principais  man( manual do linux ) -> O mais importante !  tty ( ctrl + alt + f n ) -> terminal  mkdir ( criar um diretório )  rm ( exclui um arquivo ou diretório )  cp ( copia um arquivo ou diretório)  mv ( move ou renomeia um arquivo ou diretório )  cd ( mudar de diretório )  ls ( mostrar os arquivos no diretório )  pwd ( mostra o diretório atual )  du( lista o tamanho dos arquivos e diretórios)
  • 11.
    Cont..  cat (concatena e imprime o conteúdo de arquivos)  head ( mostra as 10 primeiras linhas de um arquivo)  tail ( mostra as 10 últimas linhas de um arquivo)  echo ( imprime uma string no terminal )  clear ( limpa o terminal )  vim ( editor de texto )  su ( troca de usuário )  sudo ( realiza funções de super user )  whoami ( verifica o usuário que está logado no momento)  w ( verifca os usuários logados e o que estão executando )
  • 12.
    Cont..  hostname (mostra o nome do computador )  uname ( mostra informação sobre o s.o )  whereis ( localização do binário )  date ( data no sistema )  ps ( lista os processos do sistema )  top ( lista os processos do sistema e o uso de memória )  kill ( mata um processo )  mount ( monta uma partição )  umount ( desmonta uma partição )  chmod ( muda a permissão )
  • 13.
    Cont..  chown (muda o dono do arquivo )  ifconfig ( mostra as interfaces de rede )  grep ( Expressão Regular )  find ( procura arquivos e diretórios )  Ex: find . -name hello  cut ( pega seções da saída de um programa )  Ótimo em conjunto com delimitadores  Ex: cut -d ':' -f 1  ln ( cria um link )  diff ( usado para ver a diferença entre dois arquivos)
  • 14.
    Tratamentos de entrada/ saída  Uso do " | " ( pipe )  Passa a saída do comando anterior para o próximo comando  Ex: cat texto | grep "senha"  Uso das setas  Insere ou escreve o conteúdo de um arquivo.  > ( escreve/sobrescreve a saída de um comando no arquivo)  >> ( escreve a saída de um comando no fim do arquivo)  < ( passa para o programa a entrada de um arquivo )  << ( passa para o programa o fim do arquivo )
  • 15.
    Agendamento de programas Ferramenta Cron  Crontab -e ( Edita o agendamento do super user )  Formato [minuto] [hora] [dia] [semana] [usuário] [comando]  * é usado como qualquer  Para utilizar outro usuário criar o cron no /var/spool/cron/crontabs/$USER
  • 16.
    Execução de Programas &  Colocado no fim do programa para indicar que vai rodar em background  Ex: ls -lah -R / &  bg  Temos que parar a execução do programa com ctrl + z primeiramente  Executa o programa em segundo plano  bg [número] número:=número obtido pelo ctrl+z  fg  Retornamos o processo para o primeiro plano  fg [número] número do processo
  • 17.
    Daemon  São programasque rodam em background  Normalmente esperam um evento ocorrer ou oferecem um determinado serviço  Gerenciadores de daemons comuns do linux  rc.d  init.d  systemd  Colocando programas e scripts como daemons no debian  Ex: update-rc.d programa defaults
  • 18.
    Criando Daemons emPERL  Proc::Daemon é um módulo do perl  Código: use strict; use Proc::Daemon; Proc::Daemon::Init my $continue=1; $SIG{TERM} = sub { $continue = 0 }; while($continue){ }
  • 19.
    Interface Gráfica  DesktopEnvironment  GNOME  KDE  XFCE  MATE  Display/Login Manager  GDM  KDM  XDM  MDM
  • 20.
    Cont..  Xorg  Xwindow system  Prerequisito p/ qualquer aplicação gráfica  Window Manage  Compiz  Dwm  Xfwm4  Mutter
  • 21.
    Ferramentas  Rede  ping traceroute  nslookup  nmap  iptables  tcpdump  Disco  fdisk , cfdisk  Hardware  dmesg  lspci
  • 22.
    Cont.  Editores  vi/vim nano  Web Browsers  links,elinks  Compressão  tar  zip/unzip
  • 23.
    Shell Script  Temosdiversos shells  ZSH, KSH , SH, BASH  cat /etc/shells (mostra os shells disponíveis)  Executando um bash script  chmod +x script.sh  ./script.sh ou bash script.sh  Simples script #!/bin/sh echo "hello world"
  • 24.
    Cont.  Shell scriptnão tem declaração de tipo ( int, float, double ....)  Shell script não é orientado a objetos  Funções  #!/bin/bash main(){ //conteúdo } main  Retorno  return [inteiro] ( 0 - 255 )  Pegamos o valor do retorno usando $?
  • 25.
    Cont.  Variáveis  Declaração nome_variavel="lfulano", numero_var=10  Chamando  echo $nome_variavel , echo $numero_var  Saida  saida_ls=$(ls -lah | grep arquivo)  Entrada do teclado  comando read  #!/bin/bash read file echo $file  Operadores aritméticos e lógicos  + , - , / , * , % , || ,&& ,
  • 26.
    Cont.  Parâmetro  $0( Nome do script )  $1 ( Primeiro parâmetro )  $* ( Todos os parâmetros )  $# ( Número de argumentos )  IF  Sintaxe if [ CONDITION ] ; then //faz algo fi
  • 27.
    Cont.  IF (cont.) Else e Elif  Condições para arquivos  -e ( se o arquivo existe )  -d ( se o diretório existe )  -s ( se o arquivo tem tamanho diferente de zero )  -r ( se o arquivo pode ser lido )  -w ( se o arquivo pode ser gravado )  -x ( se o arquivo pode ser executado )
  • 28.
    Cont.  IF (cont.) Condições de String  string1 == string2  Condição númerica  -eq ( igual a )  -ne ( não igual )  -gt ( maior que )  -lt ( menor que )  -ge ( maior ou igual )  -le ( menor ou igual )
  • 29.
    Cont.  FOR  Sintaxe for contador in limite_contador; do //algo done  WHILE/ UNTIL  Sintaxe while [ CONDICAO ] do //algo done
  • 30.
  • 31.
    Cont.  Case  Sintax caseexpression in pattern1) execute commands;; pattern2) execute commands;; pattern3) execute commands;; pattern4) execute commands;; * ) execute some default commands or nothing ;; esac  Exemplo
  • 32.
  • 33.
    Cont..  Manipulação deString  Tamanho da String  tamanho = ${#string1}  Substring  ${string:offset:tamanho}  ${string#substring} //deleta até encontrar a substring partindo do inicio  ${string%substring} // deleta até encontrar a substring partindo do final  ${string##substring}  ${string%%substring}  Replace  ${string/pattern/replacement}
  • 34.
    Debug  Poderoso print echo  STDERR  ./programa 2>> error.log  SET  set -x ( ativa debug )  set +x ( desativa debug )