linux básico
     Adriano Melo
<adriano@cinlug-br.org>
introdução
   instalação
uso no dia-a-dia
   comandos
introdução
soft ware livre
o soft ware é livre quando possui as seguintes
                  liberdades...




                                         http://www.gnu.org/philosophy/free-sw.html
liberdade #0
A liberdade para executar o programa para qualquer
                     propósito;
liberdade #1
A liberdade de estudar como o programa funciona e
       adaptá-lo para as suas necessidades.

(Acesso ao código-fonte é um pré-requisito para esta
                     liberdade.)
liberdade #2
A liberdade de redistribuir, inclusive vender, cópias de
     modo que você possa ajudar ao seu próximo;
liberdade #3
A liberdade de modificar o programa, e liberar estas
  modificações, de modo que toda a comunidade se
                     beneficie.

(Acesso ao código-fonte é um pré-requisito para esta
                     liberdade.)
soft ware livre
     - executar para qualquer propósito
- estudar e adaptar para as suas necessidades
        - redistribuir cópias do código
- modificar e disponibilizar para a comunidade
como assegurar que o
  soft ware é livre?
licença
artefato jurídico que impõe a forma de distribuição de
              uma produção intelectual
GPL
BSD
general public licence - GPL

 •   criada por Richard Stallman para o GNU
 •   trabalhos derivados precisam usar a mesma
     liçenca (copyleft)
 •   liçenca não-permissiva (trabalhos derivados
     precisam ser disponibilizadas ao público)
reflexo da gpl...
BSD

•   criada para o Berkeley Soft ware
    Distribution (BSD)
•   licença permissiva (pode ser usado em
    códigos proprietários)
reflexo da licença BSD...
GNU
GNU’s Not Unix
sistema operacional que só utiliza programas
desenvolvidos pela GNU e licenciados com a GPL.




                                        http://www.gnu.org/gnu/manifesto.html
http://groups.google.com/group/net.unix-wizards/msg/4dadd63a976019d7?pli=1
Richard Stallman




criador da GNU, Free Soft ware Foundation, GPL,
          emacs, gcc, gdb, coreutils...
3dldf a2ps acct acm adns aeneas aetherspace alive anubis archimedes aspell auctex autoconf autoconf-archive autogen
  automake avl ballandpaddle barcode  bash bayonne bazaar bc bfd binutils bison bool bpel2owfn ccaudio
  ccrtp ccscript cflow cgicc chess cim classpath classpathx clisp cobol combine commoncpp config coreutils
   cpio cppi cssc dap dc ddd ddrescue dejagnu denemo dia dico diction diffutils dionysus dismal djgpp dmd dominion
dotgnu-forum dotgnu-pnet dr-geo ed edma electric       emacs emacs-muse emms enscript eprints epsilon fdisk
  ferret findutils fontutils freedink freefont freeipmi freetalk fribidi gama garpd gawk gcal gcc gcl gcompris gdb
    gdbm gengen gengetopt gettext gforth ggradebook ghostscript gift gimp gleem glib global glpk glue gmediaserver
  gmorph gmp gnash gnat gnats gnatsweb       gnome       gnowsys gnu-arch gnu-c-manual gnu-crypto gnu-queue gnuae
   gnubatch gnubg gnubiff gnubik gnucap gnucash gnucomm gnue gnugo gnuit gnujdoc gnujump gnukart gnulib gnumach
  gnumed gnumeric gnump3d gnun gnunet gnupg gnupod gnuprologjava gnuradio gnurobots gnuschool gnushogi gnuskies
  gnusound gnuspeech gnuspool gnustandards gnustep gnutls gnutrition gnuzilla goldwater goodbye goptical gorm gpaint
gperf gprolog grabcomics greg grep gretl groff   grub          gsasl gsegrafix gsl gsrc gss gtick gtk+        gtypist guile guile-
 dbi guile-gnome guile-gtk guile-ncurses guile-rpc gurgle gv gvpe gxmessage gzip halifax hello help2man hp2xx httptunnel
   hurd hyperbole icecat idutils ignuit indent inetutils intlfonts jacal java-getopt jdresolve jel jwhois kawa kopi leg less
 libc libcdio libextractor libffcall libgcrypt libiconv libidn libmatheval libmicrohttpd libredwg librefm libsigsegv libtasn1
  libtool libunistring libxmi lightning lilypond liquidwar6 lispintro lrzsz lsh m4 macchanger mailman mailutils
make marst maverik mc mcron mcsim mdk melting metaexchange metahtml mifluz mig miscfiles mit-scheme moe motti
mpc mpfr mtools myserver nana     nano ncurses nettle network ocrad octave oleo orgadoc osip packaging
      panorama paperclips parallel parted pascal patch paxutils pcb pdf pem pexec pgccfd phantom_home
    phpgroupware pies pipo plotutils polyxmass powerguru proto proxyknife pspp psychosynth pth pythonwebkit qexo
 quickthreads r radius rcs readline recutils reftex rottlog rpge rush sather sauce scm screen sed serveez sharutils shishi
  shmm shtool sipwitch slib     smalltalk smarteiffel snakecharmer social solfege sourceinstall spacechart speex
  spell sqltutor src-highlite stalkerfs stow stump superopt swbis sxml sysutils talkfilters tar termcap termutils teseq
   teximpatient texinfo texmacs thales time tramp trans-coord trueprint units unrtf userv uucp vc-changelog vc-dwim
    vcdimager vera vmgen vmslib w3 wb wdiff websocket4j webstump           wget which womb xaos xboard xhippo
                                           xlogmaster xnee xorriso zile
Linux
http://groups.google.com/group/comp.os.minix/msg/b813d52cbc5a044b
Linux é um clone do sistema operacional Unix,
foi escrito a partir do zero por Linux Tor valds
     com a ajuda de uma equipe de hackers
              através da internet.




                                                   http://www.kernel.org/
arquitetura
instalação
qual distribuição usar?
distribuição GNU/linux
 sistema operacional mantido pela comunidade ou uma
empresa, que usa o linux kernel e as ferramentas da GNU
               como soft wares básicos.
debian
“the universal operating system”
debian
família:GNU
interface: gnome, KDE, XFCE
método de atualização: apt
gerenciador de pacotes: dpkg
kernel: linux, FreeBSD, Hurd
origem: Estados Unidos
site: www.debian.org
fedora
“freedom . friends . features . first”
fedora
família:Red Hat Linux
interface: gnome, KDE, XFCE
método de atualização: yum
gerenciador de pacotes: rpm
kernel: linux
origem: Estados Unidos
site: www.fedoraproject.org
librix / tutoo
librix / tutoo
 família:gentoo linux
 interface: KDE
 método de atualização: emerge
 gerenciador de pacotes: portage
 kernel: linux
 origem: Brasil
 site: www.tutoo.org.br
ubuntu
“linux for human beings”
ubuntu
família:debian
interface: gnome -> unity
método de atualização: apt
gerenciador de pacotes: dpkg
kernel: linux
origem: ?
site: www.ubuntu.com
navegação pela internet
office
instalação de aplicativos
clientes de email e chat
clientes para redes sociais
player de música
organizador de fotos
compra de músicas
player e editor de vídeo
jogos
estrutura de diretórios
/
diretório raiz do sistema de arquivos
/home
diretório que contém as pastas iniciais dos usuários
/etc
diretório com os arquivos de configuração dos programas
/usr
contém diretórios com comandos, bibliotecas, manuais,
             jogos, headers de programas
/boot
arquivos usados pelo boot loader
/dev
dispositivos de disco, portas seriais, cdrom, webcam, ...
/var
contém arquivos que mudam constantemente. por
          exemplo, os logs do sistema.
sistema de arquivos
    meio de armazenamento de arquivos no disco. é
composto por nomes de arquivos, meta-dados, estrutura
           hierárquica e controle de acesso.
ext3
•   sistema de arquivos mais usado no linux
•   suporta arquivos entre 2 GiB e 2 TiB (a
    depender do tamanho do bloco)
•   até 32.000 diretórios
•   suporta estampas de tempo até 2038
•   precisão em segundos
ext4

•   suporta arquivos de até 16 TiB
•   ilimitado número de diretórios
•   suporta estampas de tempo até o ano 2514
•   precisão em nanosegundos
swap
memória virtual usada para fazer paginação
instalação do ubuntu
instalação do fedora
como criar uma
máquina virtual?
instalando o ubuntu na
   máquina virtual
instalação do fedora na
    máquina virtual
uso no dia-a-dia
configurar rede
no gnome...
#1 - botão direito
 no ícone de rede



   #2 - editar
o tipo de conexão
     desejado
no ubuntu server...
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.0.17
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        # dns-* options are implemented by the resolvconf package, if
installed
        dns-nameservers 192.168.1.1
        dns-search cin.ufpe.br

~

arquivo /etc/network/interfaces
instalar programas
gerenciador de pacotes
ferramenta para automatizar a instalação, atualização,
        configuração e remoção de programas.
método de atualização
interface mais amigável para o gerenciador de pacotes.
     automatiza o download de pacotes através de
                    repositórios.
central de programas
       ubuntu
synaptic
aptitude
apt-get
dpkg
AÇÕES
        -i, --install package_file...

        --unpack package_file...

        --configure package...|-a|--pending

        -r, --remove, -P, --purge package...
aplicativos comuns
players de música
amarok
rhythmbox
players de vídeo
vlc
MPlayer
chat
pidgin
aMSN
office (produtividade)
editor de texto
OpenOffice.org Writer
planilhas
OpenOffice.org Calc
apresentações
OpenOffice.org Impress
editores de texto
gedit
kate
vim
navegadores
firefox / iceweasel
google chrome
gerenciar usuários
usuário no unix/linux

 1. username: usado para logar no computador
2. senha: o x indica que a senha está encriptada
                 em /etc/shadow
  3. id do usuário: número entre 1000 e 65535
 4. id do grupo principal: número indexado pelo
               arquivo /etc/group
         5. nome: nome completo do usuário
          6. home: pasta padrão do usuário
            7 shell: shell padrão do usuário
             .
grupo no unix/linux

         1. nome do grupo
         2. senha do grupo
            3. id do grupo
  4. lista de membros do grupo
comandos
http://files.fosswire.com/2007/08/fwunixref.pdf
http://files.fosswire.com/2007/08/fwunixref.pdf
http://files.fosswire.com/2007/08/fwunixref.pdf
http://files.fosswire.com/2007/08/fwunixref.pdf
http://files.fosswire.com/2007/08/fwunixref.pdf
http://files.fosswire.com/2007/08/fwunixref.pdf
http://files.fosswire.com/2007/08/fwunixref.pdf
http://files.fosswire.com/2007/08/fwunixref.pdf
pipes
jogar a saída de um programa para a entrada de outro.
         usa-se o pipe com a barra vertical “|”.
redirecionamentos
jogar a saída de um comando para um arquivo ou o
    conteúdo de um arquivo para o programa.
função de redirecionamento      sintaxe para o bash

enviar o stdout para         $ cmd > arquivo
arquivo                      $ cmd 1> arquivo
enviar o stderr para o
                             $ cmd 2> arquivo
arquivo
enviar o stdout e o stderr
                             $ cmd > arquivo 2>&1
para o arquivo

receber o stdin do arquivo   $ cmd1 < arquivo

anexar o stdout no arquivo $ cmd >> arquivo
crontab
o cron é o agendador de tarefas do GNU/Linux
arquivo /etc/crontab




*    *    *    *    *   *    comando a ser executado
-    -    -    -    -   -
|    |    |    |    |   |
|    |    |    |    |   +-   ano (opcional)
|    |    |    |    +-----   dia da semana (0 - 6) (domingo=0)
|    |    |    +----------   mês (1 - 12)
|    |    +---------------   dia do mês (1 - 31)
|    +--------------------   hora (0 - 23)
+-------------------------   minuto (0 - 59)
segurança
firewall

•   aplica políticas de segurança à rede ou ao
    computador
•   exemplos: não permitir conexões via SSH,
    bloquear torrent, limitar o uso da rede...
navegação - tor

•   garante a privacidade ao navegar na web
•   na prática:
    •   localização geográfica aleatória
    •   unicidade do browser perdida
selinux


•   controle de inicialização e criação de
    processos filhos
•   controle da comunicação via sockets
dicas...

•   trave a tela ao sair
•   escolha uma senha forte
•   coloque uma senha na BIOS
•   sempre atualize os pacotes
•   desligue os serviços desnecessários
truecrypt


•   encriptação de partições, arquivos e pastas
•   funciona no windows, linux e mac os
•   criação de partições ocultas
CInLUG


•   t witter: @cinlug
•   site: cinlug-br.org
•   grupo: groups.google.com/group/cinlug

Mini-curso de linux básico