Minicurso
de
Linux
para
XV
SEMEC utilizando o Ubuntu 12.04
Sumário
1. História 2. Comandos Básicos 3. Editando textos 4. Permissões de Acesso 5. Sistemas de Arquivos 6. Instalação de Programas 7. Acessando H.D., Pen drive, Windows 8. Open Office 9. Bibliografia1. Estória
Tudo começa em 1991, nesta época existiam poucas opções de sistemas operacionais. O DOS era o mais usado na época, além disso, existiam os Macs que tinham preços exorbitantes, o Unix que era adotado quase que exclusivamente por grandes empresas. Nesta época, o código do Unix, já se encontrava proprietário e não mais para conhecimento público apesar de ter sido usado como material de estudo em grandes universidades. Um professor chamado Andrew S. Tanenbaum criou um sistema operacional baseado no Unix chamado Minix projetado para funcionar em processadores Intel 8086. O Minix tinha objetivos acadêmicos e não servia para atender as necessidades de um usuário final, porém seu código fonte era disponível para a comunidade, isso significava que qualquer programador experiente poderia fazer alterações nele.
Ao observar as dificuldades deste sistema, Linus Torvalds, um estudante de Ciência da Computação da Universidade de Helsinki, na Finlândia resolver aperfeiçoar o sistema Minix para suprir suas carências e para atender suas necessidades pessoais. Daí que surgiu o nome Linux, que é a mistura de Linus com Unix. Linus divulgou seu interesse em construir um sistema operacional que fosse livre, ou seja, qualquer pessoa pode personalizálo ou adaptálo as suas necessidades sem ter que pagar nada por isso. Com isso, Linus ganhou diversos colaboradores, milhares de pessoas contribuíram gratuitamente com o desenvolvimento do Linux, simplesmente pelo prazer de fazer um sistema operacional melhor, Cada melhoria desenvolvida por um programador era distribuída pela Internet e, imediatamente, integrada ao núcleo do Linux. Vale ressaltar que como existem diversos sistemas desenvolvidos nessa plataforma, Linux é o nome usado para qualquer sistema operacional que utilize o núcleo Linux desenvolvido por Linus.
Uma curiosidade é a escolha do mascote, em 1996 muito se discutia sobre um mascote para o Linux, não houve razão especial para a escolha, somente o fato do Linus
afirmar que gostava de pinguins.
Outro aspecto importante são as distribuições do Linux, que é o conjunto de softwares feitos para a plataforma em questão e que são construídos de acordo com as características e necessidades de cada grupo. Atualmente, praticamente qualquer pessoa pode fazer a sua distribuição, incluindo os programas que desejar. Entretanto, é necessário muito trabalho para integrar esses softwares, traduzilos para diversos idiomas, criar manuais e guias, consertar defeitos, oferecer suporte, treinar pessoas, divulgar e criar uma comunidade de apoio. Por isso, são poucas as distribuições que podem oferecer uma garantia de continuidade e de suporte permanente. Nesse aspecto, existem algumas distribuições mais conhecidas como: Debian, Fedora, SUSE, Mandriva, Kurumin, entre outras, mas a mais popular é a Ubuntu.
Ubuntu é um sistema operacional de código aberto construído pela comunidade a partir do núcleo Linux e é perfeito para notebooks, desktops e servidores. Ubuntu é uma antiga palavra africana que significa “Sou quem sou, pelo que nós somos” o que mostra a grande espírito de colaboração que a distribuição Ubuntu traz para o mundo do software livre.
“A palavra Ubuntu é um sistema de valores praticados em muitos países da África. Define o humano, enquanto ser, conforme sua interação com outras pessoas, propondo assim uma irmandade universal. Suas lições de grande valor humanístico deveriam ser conhecidas e praticadas por todos nós, que vivemos numa sociedade egoísta e desigual.”
1.1) Características do Ubuntu:
● É um Software Livre: Todas as versões do Ubuntu são disponibilizadas sem custo algum.
● Novas versões para desktops e servidores são lançadas a cada seis meses. O que significa que sempre há as últimas versões com novas aplicações e bugs corrigidos. ● O Ubuntu é desenvolvido visando segurança, há atualizações de segurança gratuitas
por pelo menos 18 meses para desktops e servidores.
programas préinstalados que atendem às funcionalidades programas podem ser obtidos através da central de programas do Ubuntu básicas, como por exemplo o LibreOffice e o navegador de internet Firefox.
● Qualquer versão até a 12.04 ocupa apenas um CD (até 700 MB); a partir da versão 12.10, será necessário um DVD ou um pen drive, pelo fato da nova versão ultrapassar o limite de 700 MB. A atualização e instalação de mais programas poderá ser realizada via Internet, num processo fácil e em ambiente gráfico.
● É também tem a característica de ser multissessão, onde é possível ter várias contas de usuários em um mesmo computador.
● Existe o controle de permissão entre superusuário (sudo) que é o usuário com controle total do computador e o usuário comum que não tem poder para manipular todos os recursos existentes no computador.
● É possível interagir com o Linux de duas maneiras: Pela Interface Gráfica ou Prompt de Comando.
● Há versões de 32 e 64 bits. Pode ser instalado tanto em processadores de 32 bits, como de 64 bits.
● Case Sensitve: há diferenciação entre letras maiúsculas e minúsculas.
● Versionamento: o Ubuntu utiliza um sistema incomum de numerações, o primeiro número corresponde ao ano e o segundo mês. Os nomes dados as versões são apelidos escolhidos pelos desenvolvedores referentes à algum animal e um adjetivo que começa com a mesma letra do nome do animal, desde a versão 6.06, as versões seguem em ordem alfabética.
Versão Codinome Apelido
4.10 The Warty Warthog O Porcoafricano Verruguento 5.04 The Hoary Hedghog O Ouriço Grisalho 5.10 The Breezy Badger O Texugo Fresco 6.06 The Dapper Drake O Pato Doméstico Estiloso 6.10 The Edgy Eft A Salamandra Hitec 7.04 The Feisty Fawn O Jovem Bravo Cervo 7.10 The Gutsy Gibbon O Macaquinho Corajoso 8.04 The Hardy Heron A Garça Durona 8.10 The Intrepid Ibex O Bode Intrépido
9.04 The Jaunty Jackalope O Coelho Elegante 9.10 The Karmic Koala O Koala Kármico 10.04 The Lucid Lynx O Lince Lúcido 10.10 The Maverick Meerkat O Suricato Vagabundo 11.04 The Natty Narwhal O Naval Inteligente 11.10 The Oneiric Ocelot A Jaguatirica Onírica 12.04 The Precise Pangolin O Pangolim Preciso 12.10 The Quantal Quetzal O Quetzal Quântico 13.04 The Raring Ringtail O Bassarisco Ávido 13.10 The Saucy Salamander A Salamandra Atrevida 14.04 The Trusty Tahr A Cabra Selvagem Fiel 1.2) Informações: 1.2.1)Manual:
No link abaixo é possível ter acesso ao manual da ultima versão do ubuntu nele há instruções de como proceder em relação as tarefas diárias como com tarefas diárias tais como navegar na Internet, ouvir música e digitalizar documentos. O mesmo é adequado para todos os níveis de experiência.
http://ubuntumanual.org/ 1.2.2) Documentação:
Há documentação do Ubuntu em português do Brasil e é composto por uma grande quantidade de dicas e tutoriais sobre a utilização do Ubuntu , como: Obtendo ajuda, Gravar o Ubuntu no CD, Versões do Ubuntu, Dúvidas Frequentes, entre outros.
http://wiki.ubuntubr.org/Documentacao 1.2.3) Fórum:
É um ótimo lugar para tirar dúvidas porque provavelmente as perguntas e respostas dos problemas mais comuns relacionadas ao Ubuntu já estarão disponíveis nos fóruns. O fórum é divido em categorias como: Iniciantes, Suporte Técnico, Ambientes Gráficos e Espaço da Comunidade.
http://ubuntuforumpt.org/ 1.2.4) Listas de discussão:
É um espaço destinado a discussão de novidades, idéias e questões sobre o Ubuntu. Basicamente é um grupo de pessoas cadastradas que trocam emails entre si, toda vez que um email é enviado para lista, todos os participantes tem acesso a ele, assim como quando alguém o responde.
http://wiki.ubuntubr.org/Listas 1.2.5) Suporte:
Tudo isso é encontrado na página de suporte do Ubuntu que conta ainda com Chat via IRC, Suporte Pago e Documentação Internacional.
http://www.ubuntubr.org/suporte
2. Comandos úteis para o Linux
2.1.1) ls: Lista o conteúdo de um diretório. Sintaxe: ls (diretório) [opções]
Quando executado sem qualquer parâmetro, mostra o conteúdo do diretório atual.
Quando usado sem alguma opção lista todos os arquivos não ocultos do diretório, em ordem alfabética, preenchendo tantas colunas couber na tela. Pode ser utilizado com as seguintes opções: a: Lista todos os arquivos do diretório, inclusive ocultos Sintaxe: ls –a k: Caso o tamanho do arquivo seja listado, mostrao em Kbytes. Sintaxe: ls –k
l: Além do nome de cada arquivo, lista o tipo, permissões, número de ligações diretas, nome do dono, nome do grupo, tamanho em bytes e data (da modificação, a menos que outra data seja selecionada).
Sintaxe: ls –l
t: Ordena o conteúdo dos diretórios pela data da última modificação ao invés da ordem alfabética, com os arquivos mais recentes listados no início.
Sintaxe: ls –t
u: Ordena o conteúdo dos diretórios de acordo com a data de último acesso ao invés da data de modificação.
Sintaxe: ls –u
X : Ordena o conteúdo dos diretórios alfabeticamente pelo nome da extensão (caracteres após o último “.”). Arquivos sem extensão são listados no início.
Sintaxe: ls X 1: Lista um arquivo por linha.
Sintaxe: ls 1 2.1.2) clear: limpa a tela (o terminal). O atalho ctrl + l também é utilizado para limpar a tela. Sintaxe: clear ou ctrl + l 2.1.3) pwd: exibe o diretório corrente (caminho do diretório atual). Sintaxe: pwd 2.1.4) cd: Muda o diretório corrente (cd é a abreviatura de change directory). Sintaxe: cd diretório onde diretório é o nome do diretório para o qual você deseja mudar. Possíveis opções:
Sem argumentos “cd”, muda para o diretório pessoal ou homedirectory ou ainda pasta raíz.
A opção “cd ” volta ao diretório anterior.
O símbolo ".." referese ao "diretóriopai". Para mover para um "diretóriopai", ou seja, um diretório acima do que você está, utilize “cd ..” (note o espaço entre "cd" e ".." )
Utilizar nomesdecaminho (pathnames) como argumento para o comando cd. Por exemplo : “cd /diretorio1/diretorio2 ” o posicionará diretamente em "diretório2".
2.1.5) mkdir: cria um diretório, para realizar o processo é necessário que o usuário tenha permissões de escrita no diretório onde o mesmo será criado.
Sintaxe: mkdir [opções] <caminho>
Exemplo de utilização do mkdir:
mkdir /home/usuario/Desktop/exemplo
No exemplo acima informamos ao mkdir que crie o diretório exemplo no Desktop do usuário. Observe que foi digitado o endereçamento completo do diretório
“/home/usuario/Desktop”, este informa ao mkdir onde deve ser criado o novo diretório, e o “exemplo” é o diretório que deverá ser criado pelo mkdir.
Opções:
p : Cria todos os diretórios especificados no caminho, ou seja é possível criar diretório e subdiretórios sem precisar crialos um de cada vez. Exemplo:
mkdir p /home/usuario/Desktop/exemplo/subexemplo/subexemplo2
Observe que atribuirmos a opção p após o mkdir que informa que deve criar também subdiretórios como explicado acima.
m : Especifica as permissões de acesso do novo diretório, como por exemplo leitura, escrita, também especifica qual usuário ou grupo terá permissão sobre o arquivo. Logo após o mkdir são infomados números que indicam quais são as tais permissões. Exemplo: mkdir m 444 exemplo
Neste exemplo o número 444 define o arquivo como somente leitura.
2.1.6) rm: apaga um arquivo ou diretório. É importante lembrar que quando os arquivos são apagados, no sistema Unix, é impossível recuperálos.
Sintaxe: rm [opções] <arquivos> Opções mais utilizadas:
f : Remove todos os arquivos (mesmo se estiverem com proteção de escrita) em um diretório sem pedir confirmação do usuário. Sintaxe: rm f nome_arquivo i : Esta opção pedirá uma confirmação do usuário antes de apagar o(s) arquivo(s) especificado(s). Sintaxe: rm i nome_arquivo Exemplos: rm meu_diretorio rm i meu_diretorio rm r um dois tres
2.1.7) mv: move arquivos para outro arquivo ou diretório. Este comando faz o equivalente a uma cópia seguida pela deleção do arquivo original. Pode ser usado para renomear arquivos.
Sintaxe: mv (arquivo 1) (arquivo 2) ... (arquivo n) (destino)
onde (arquivo 1) até (arquivo n) são os arquivos a serem movidos, e (destino) é o arquivo ou o diretório para onde os arquivos serão movidos.
Se (destino) não for um diretório, somente um arquivo deverá ser especificado como fonte. Se for um diretório, mais de um arquivo poderá ser especificado.
Se (destino) não existir, "mv" criará um arquivo com o nome especificado. Se (destino) existir e não for um diretório, seu conteúdo será apagado e o novo conteúdo será escrito no lugar do antigo. Se (destino) for um diretório, o(s) arquivo(s) será(ão) movido(s) para este diretório.
Os arquivos "fonte" e "destino" não precisam compartilhar o mesmo diretório pai. Opções:
i : Com esta opção, "mv" irá perguntar a você se é permitido escrever por cima do conteúdo de um arquivo destino existente.
Uma resposta "y" (yes = sim) significa que a operação poderá ser executada. Qualquer outra resposta impedirá que "mv" escreva por cima do conteúdo de um arquivo já existente.
Sintaxe: mv i arquivo_inicial arquivo_final Exemplo: mv teste ../temp1
Neste exemplo, o diretório teste foi movidopara temp1 com o comando "mv".
2.1.8) date: utilizado para mostrar a data e a hora do sistema. Exibe a data e hora corrente, se aplicado sem parâmetros. Somente o superusuário pode, através do uso de parâmetros associados ao comando date, alterar a data e hora do sistema.
Sintaxe: date
2.1.9) cp: Copia arquivos e diretórios. Podese copiar um arquivo para um destino informado, ou copiar arbitrariamente muitos arquivos para o diretório de destino. Se o arquivodestino não existe, "cp" criará um arquivo com o nome especificado em destino. Se o arquivodestino já existia antes e não for um diretório, "cp" escreverá o novo conteúdo por cima do antigo.
Sintaxe: cp [opções] <origem> <destino>
Caso o último argumento denomine um diretório existente, este comando copiará cada arquivo de destino naquele diretório (mantendo o mesmo nome). Caso dois arquivos sejam informados, ele copiará o primeiro no segundo.
Exemplo: cp arquivo1 arquivo2 → arquivo1 é o arquivo de entrada da operação de cópia, e o arquivo2 é a saída produzida. Arquivo1 e arquivo2 devem ter nomes distintos; se tiverem o mesmo nome, então será emitida uma mensagem de diagnóstico indicando que são idênticos, e o arquivo não será copiado sobre si mesmo. Se o arquivo2 já existia, seu conteúdo será substituído pelo conteúdo do arquivo1.
Principais opções:
f: Remove um arquivo de destino já existente. i : Pergunta se deve regravar arquivos já existentes.
R : Copia diretórios recursivamente, preservando arquivos que não sejam diretórios. Exemplo : cp r temp temp1 → Este comando copia todos os arquivos e subdiretórios dentro do diretório temp para um novo diretório temp1. Se você tentar copiar um diretório sem utilizar a opcão, você verá uma mensagem de erro.
2.2) Ajuda:
2.2.1) man: exibe informações do programa/comando. Este comando exibe uma página do manual interno do Unix, para um dado comando ou recurso (isto é, qualquer utilitário do sistema que não seja comando, por exemplo, uma função de biblioteca). É como um "help" interno ao sistema. Sintaxe : man <comando> onde "comando" e o nome do comando ou recurso que se deseja obter a ajuda. Exemplo: man ls → lista o manual do comando ls. 2.2.2) locate: procura arquivos ou diretório referenciados; Sintaxe: locate [opções] arquivo_procurado
Principais opções:
i: realiza uma busca ignorando caracteres em maiúsculas e minusculas. Sintaxe: locate i nome_arqu
Com o locate também é possível procurar por extensões de arquivos.
Exemplo: locate *.txt → neste caso procurase por todos os arquivos com extensão txt, ou seja, terminados ".txt". 2.2.3) help: principais comandos suportados pelo shell; Sintaxe: help 2.2.4) whatis: mostra o que é dado comando; Sintaxe: whatis comando Exemplo: whatis ls
2.2.5) info: Utilizado para ler documentação no formato GNU Info. Se utilizado sem argumentos, abre uma página com tópicos que podem ser pesquisados. Sintaxe: info comando A navegação é feita usando os seguintes comandos: n : Move para o próximo tópico. p : Move para o tópico anterior ao tópico atual. u : Move para o tópico acima do atual. t: Move para o tópico mais elevado (Top) Com o cursor sobre um tópico, basta teclar ENTER para ir ao tópico correspondente. Exemplos: info info ls 2.3) Administração:
2.3.1) ps: relata os processos em execução, fornecendo uma imagem dos processos atuais.
Sintaxe: ps [opções]
possíveis opções que são mais utilizadas são e e f porque reportam todas as informações disponíveis para todos os processos.
Essas opções são especificadas como ef, que produz oito colunas de informação, como segue (as principais):
● Coluna UID: identifica a ID do dono do processo. A ID correspondente ao nome de conexão do usuário, como especificado em seu registro no etc/passwd.
● Coluna PID: identifica o número de ID do processo. É preciso conhecer esse número para tomar qualquer atitude com relação ao processo, como usar o comando kill. ● Coluna PPID: identifica o pai do processo.
● Coluna STIME: indica a hora em que o processo foi iniciado.
● Coluna TTY: indica o terminal de controle associado ao processo, e podem conter o caracter ?, significando que o processo não tem um terminal de controle.
● Coluna TIME: indica o tempo total de execução que o processo acumulou desde quando foi começado.
● Coluna COMMAND: descreve o nome do processo, indicando qual comando que está sendo executado, bem como seus argumentos.
Ex: ps ef
2.3.2) top: relata os serviços correntes. Semelhante ao comando 'ps', entretanto executa uma atualização repetitiva da situação.
Sintaxe: top
2.3.3) su: muda o usuário (para outro usuário ou para o super usuário abreviação de Switch User). Este comando é utilizado para permitir que um usuário tornese outro temporariamente. Ele executa um interpretador com a identificação real e efetiva de usuário, identificação de grupo e grupos suplementares do usuário. O interpretador executado é o especificado para o usuário no arquivo passwd, ou /bin/sh caso nenhum seja especificado. Caso o novo usuário tenha senha, 'su' solicita a senha, a menos que se tenha a identificação real de usuário igual a (superusuário). Automaticamente ele também pode trocar o identificador (User ID), ou mesmo o grupo de trabalho onde o novo usuário vai atuar.
Sintaxe: su [opções] [usuário]
Caso o usuário não seja informado na linha de comando, o padrão é o superusuário (root), ou seja “su” equivale a “su root”.
OBS.: Para retornar ao usuário original, basta digitar "exit". Exemplos:
su > muda para o superusuário
su seu_nome → troca do usuário atual para o usuário “seu_nome”
2.3.4) sudo: executa o comando como super usuário. Usando este comando o usuário comum, não root, pode executar um comando com previlégios temporários de root, ou seja, o usuário comum faz a tarefa como se fosse root e continua sendo usuário comum depois que o comando foi executado. Após o uso a senha se mantém por algum tempo, cerca de cinco minutos. Poderá fazer outro "sudo" sem entrar com a senha novamente. Normalmente é utilizado na hora de fazer tarefas administrativas, como instalação de programas, alteração de configurações e alteração de arquivos importantes.
Sintaxe: sudo
2.4) Inicialização e Desligamento
2.4.1) shutdown: desliga ou reinicia o computador. Este comando se encarrega dos detalhes do desligamento, de modo que tudo ocorra em ordem, sem danos ao sistema. Ele pode inclusive avisar aos demais usuários com antecedência de que o sistema será paralisado e toma automaticamente providências para a finalização. Sintaxe: shutdown [opção] Opção: r: Reinicializa após o desligamento do sistema. 2.4.2) reboot: reinicia o computador; Sintaxe: reboot 2.4.3) login: inicializa uma sessão
Sintaxe: login
2.4.4) id: mostra a identificação do usuário atual; Sintaxe: id
2.4.5) passwd: muda a senha do usuário. Normalmente cada usuário pode alterar somente a sua própria senha, exceto o superusuário (root) que pode atualizar a senha de outro usuário, fornecendo o nome_do_usuário.
Sintaxe: passwd [opções] [nome_do_usuário]
Se não for especificado o nome_do_usuário, será atualizada a senha do usuário corrente. Principal opção:
u : Indica que a atualização somente pode ser efetuada para senhas expiradas, mantendose a senha atual até a data de sua expiração. Exemplos: passwd passwd seu_nome 2.4.6) useradd: adiciona usuários ao sistema, ou seja, cria um novo usuário no sistema Sintaxe: useradd nome_da_conta
2.4.7) userdel: apaga usuários do sistema portanto, remove uma conta de usuário e os arquivos relacionados a ele. Este comando modifica os arquivos de contas, apagando todas as entradas que se referem ao usuário.
Sintaxe: userdel [r] nome_do_usuário
Se a opção r for utilizada, os arquivos no diretório home do usuário serão removidos junto com o próprio diretório. Os arquivos localizados em outros sistemas de arquivos terão de ser procurados e deletados manualmente.
OBS.: O comando userdel não permite exclusão de uma conta se o usuário estiver correntemente logado.
Exemplos: userdel seu_nome userdel r meu_nome 2.4.8) exit: finaliza a sessão atual (root), ou seja, encerra o shell corrente. Sintaxe: exit
3. Editando textos
As distribuições Linux oferecem ao usuário a opção de edição de texto por interface gráfica e por linha de comando. Em linha de comando temos o editor VIM, amplamente difundido pelos usuários de Linux, quando se refere a interface gráfica podemos utilizar o Gedit ou, se queremos uma abordagem semelhante a do Word (pacote Microsoft Office) podemos utilizar o LibreOffice Writter, já instalado por padrão nos sistema operacional Ubuntu. Partimos do pressuposto de que você já esteja familiarizado com o pacote office e assim, daremos enfoque aos dois outros editores de texto.
3.1) VIM
O Vim (Vi Improved) é uma versão mais poderosa e maior em termos de espaço em disco e requisitos de memória do editor de texto predecessor VI. Essa versão é mantida como software livre e acompanha a maioria das distribuições Linux. Está disponível também para variantes *NIX, Windows, Amiga, OS/2 e Macintosh. 3.1.1) Instalação: 1. sudo aptget install vim y 2. Utilizando o editor de texto VIM para abrir um arquivo: Super Usuário (root) # vim [arquivo] Usuário comum $ vim [arquivo] 3.1.2) Modos do editor:
Como não tem interface gráfica, o editor possui dois modos de operação: inserção de texto e o modo de inserção de comandos.
Modo de inserção de texto:
1. aperte a tecla “I” ou a tecla “INSERT”
2. Através deste modo poderemos inserir texto no arquivo. 3. Para entrar no modo de substituição de texto aperte: 4. aperte a tecla “INSERT” 2x
5. Através deste modo poderemos substituir o texto dentro do documento, também chamado de modo REPLACE. Modo de inserção de comandos: ● Salvar o arquivo :w ● Sair do arquivo :q ● Salvar e sair do arquivo :wq ou :x OBS: Caso queira forçar a execução de algum comando utilize “!” Exemplo: ● :q! > Forçar a execução de saída do arquivo. ● :w! > Forçar a execução de salvar o arquivo.
● :wq! ou :x! > Forçar em salvar e sair ao mesmo tempo do arquivo. ● Numerar as linhas do arquivo :set number ● Retirar a numeração imposta através do comando anterior :set nonumber ● Colocar Texto colorido :syntax on ● Retirar Texto Colorido
:syntax off ● Pular para uma determinada linha :Numero_de_linha ● Ir com o cursor até o final do arquivo :$ ● Ir com o cursor até o final do arquivo :0
● Inserir o conteúdo de um arquivo de texto dentro do arquivo no qual estiver editando :r arquivo.txt ● Executar um comando do shell sem sair do arquivo :!COMANDO Exemplo: :!cat /etc/passwd
● Executar um comando do shell e jogar a saída (RESULTADO) do comando para dentro do arquivo de texto :r!COMANDO Exemplo: :r!cat /etc/passwd ● Procurar por palavras dentro do arquivo de texto /PALAVRA Exemplo: /futebol
Irá procurar a palavra futebol dentro de todo o arquivo, aperte a tecla “N” para pular para cada palavra futebol dentro do arquivo.
OBS: Através deste comando irá procurar do INÍCIO PARA O FINAL. ● Procurar por palavras dentro do arquivo de texto
?PALAVRA Exemplo:
?futebol
Irá procurar a palavra futebol dentro de todo o arquivo, aperte a tecla “N” para pular para cada palavra futebol dentro do arquivo. OBS: Através deste comando irá procurar do FINAL PARA O INÍCIO. ● Abrir uma sessão do sheel dentro do editor de texto :shell Para voltar ao arquivo digite: exit ● Alterar palavras na linha atual :s/palavra_antiga/palavra_nova/g Exemplo: :s/casa/CASA/g
Irá todas as palavras casa (minúsculas) na linha atual pela palavra CASA(MAIÚSCULAS). ● Para manipular mais de um arquivo de texto ao mesmo tempo :split [ARQUIVO] ou :sp [ARQUIVO] ● Para alternar entre os dois arquivos utilize as teclas: Ctrl+W ● Manipulação de texto: Utilize a tecla “V” em modo de comando. ● Copiar texto: Utilize a tecla “Y” em modo de comando. ● Colar Texto: Utilize a tecla “p” em modo de comando. ● Apagar toda uma linha: Utilize a tecla “D” 2x em modo de comando. ● Copiar toda uma linha: Utilize a tecla “Y” 2x em modo de comando.
3.2) Gedit
3.2.1) Instalação:
O gedit está localizado no repositório do Ubuntu principal (main), no entanto, este utilitário é instalado por padrão no Ubuntu. O gedit poderá ser instalado no Kubuntu, Xubuntu e outras distribuições, porém serão necessárias bibliotecas adicionais para a correta instalação em ambientes que não usem o GNOME. Caso o Editor de texto gedit não esteja instalado, você poderá usar estas formas de instalação:
1. Clique no Menu Sistema Administração Gerenciador de pacotes Synaptic
Na opção de localizar digite gedit, logo em seguida você verá o filtro da pesquisa. Agora clique com o botão direito do mouse sobre o pacote gedit, escolha Marcar para instalação e clique em Aplicar. Outro procedimento de instalação é utlizando a linha de comando (CLI), observe: 1. Abra um terminal. Digite o comando abaixo: sudo aptget install gedit Acessando o Gedit: O gedit inclui uma interface gráfica ao usuário (GUI) e poderá ser aberto com um dos seguintes procedimentos:
2. Pressione Alt+F2, surgirá uma janela chamada Executar aplicativo. Na caixa de texto digite o comando gedit e clique no botão Executar, observe:
Após a execução de algum dos procedimentos descritos acima, deverá surgir a janela do utilitário Editor de texto gedit, veja a figura:
Utilização:
O Editor de texto gedit apesar de possuir uma aparência básica e com pouco recursos, ele é muito útil. Por exemplo um recurso muito útil do gedit é a capacidade de programação de código em cores, possibilitando o realce de sintaxe erradas tornando mais simples o reconhecimento de erros. Para este recurso gedit usa o pacote gtksourceview para o realce de sintaxes. Os arquivos *.lang são os que define o realce para uma
linguagem de programação específica está localizado no diretório /usr/share/gtksourceview2.0/languagespecs. Esses arquivos podem ser editados, adicionados ou criados para melhor definição do realce. Vejamos um exemplo na prática, observe a figura abaixo: Temos um exemplo de uma programação web utlizando principalmente as linguagens html e javascript. Mas cadê as cores? Para este procedimento temos que escolher o tipo de marcação, ou seja, realce. Este procedimento é bastante simples, observe:
Você poderá escolher outros tipos de realce ou escolher sem realce que seria a opção Texto sem formatação. Observe a figura:
Preferências: O usuário poderá personalizar recursos do Editor de texto gedit para fornecer uma utilização melhor do programa. Por exemplo: Para ativar ou desativar o salvamento automático de arquivos de backup clique em Preferências Editor, veja: Para deixar o texto maior ou menor clique no Menu Preferências Fontes e Cores, veja: Da mesma forma, o usuário poderá utilizar mais recursos configurando outras opções.
Plugins:
Os Plugins aumentam consideravelmente o poder do gedit e são acessados através do Menu Editar Preferências Plugins.
Mais de uma dezena de plugins são préinstalado e pode ser ativado ou desativado nesta seção. Alguns dos mais populares são habilitados por padrão, enquanto outros devem ser habilitados pelo usuário. Contudo, para saber as funções de cada Plugin clique no nome do mesmo e depois no botão Sobre o plugin.
O usuário poderá configurar os plugins clicando no botão Configurar plugin, observe o exemplo adotado do plugin Inserir Data/Hora:
4. Permissões de Acesso
Para cada arquivo ou diretório, consideramse três categorias de usuários: Dono: Quem criou o arquivo.
Grupo: Grupo ao qual pertence o dono do arquivo.
Outros: Usuários que não se enquadrem nas categorias anteriores.
Para cada arquivo são setadas permissões de acesso, que determinam quais usuários têm acesso a ele e com que finalidade. Cada conjunto de permissões de acesso significa presença ou ausência de permissões para: leitura (r); escrita (w); execução (x), conforme a tabela abaixo:
Modo de Acesso Arquivo comum/especial Diretório
Leitura “r” Examinar conteúdo de arquivo Listar arquivos do diretório Escrita “w” Alterar o conteúdo do arquivo Escrever no diretório Execução “x” Executa o arquivo como comando Pesquisar o diretório
Para listagem dos arquivos com suas permissões, utilize o comando ls (listagem de arquivos), com a opção l que mostra as informações extra sobre os arquivos. Assim, o comando:
$ ls l
Por exemplo, suponha que você tenha executado este comando e na tela apareceu algo assim:
rwxrr 1 aluno grupo 2321 Out 30 15:36 teste.txt
Lendo da esquerda para direita, este primeiro carácter indica o tipo de arquivo (diretório, link, ). Em seguida temos as permissões de acesso ao arquivo, sendo as três primeiras referentes ao proprietário, as seguintes ao grupo e, por último, aos demais usuários. A segunda coluna desta listagem mostra o número de links que o arquivo possui. A terceira coluna mostra o proprietário do referido arquivo, que neste caso, o usuário é "aluno". Na próxima coluna é mostrado o grupo ao qual pertence o proprietário do arquivo (no exemplo temos o grupo “grupo”). Na quinta coluna temos o tamanho do arquivo em bytes. Na sexta, sétima e oitava colunas, temos a data da última modificação feita no arquivo e a hora e por fim o nome do arquivo, respectivamente.
Simplificando o exemplo:
rwx r r 1 aluno grupo 2321 Out 30 15:36 teste.txt
Ti po de ar qu ivo Per mis sões: Pro prie tário Per mis sões: Gru po Per mis sões: Ou tros Links Pro prie tá rio Grupo Ta ma nho do ar qui vo Da ta Da ta Ho ra No me do ar qui vo Comando para conceder e retirar permissões:
● Comando chmod : Modifica as permissões de um arquivo ou diretório. Para isso é necessário que você seja o proprietário de um arquivo ou diretório, ou ter acesso ao root, para modificar as suas permissões.
Sintaxe : chmod permissões nome_do_arquivo onde : permissões indica as permissões a serem modificadas;
nome indica o nome do arquivo ou diretório cujas permissões serão afetadas. As permissões podem ser especificadas de várias maneiras. Esta é uma das formas mais simples de realizarmos esta operação : 1 Use uma ou mais letras indicando os usuários envolvidos: . u (para o usuário) . g (para o grupo) . o (para "outros") . a (para todas as categorias acima) 2 Indique se as permissões serão adicionadas (+) ou removidas (). 3 Use uma ou mais letras indicando as permissões envolvidas :
. r (para "read") (ler) . w (para "write") (escrever) . x (para "execute") (executar) Exemplo Adicionando e retirando permissões: Vamos alterar neste exemplo o arquivo “teste.txt”. $ls l rwxrr 1 aluno grupo 2321 Out 30 15:36 teste.txt
Vamos alterar as permissões deste arquivo, adicionando a permissão de escrita ao grupo: $chmod g+w teste.txt $ls l rwxrwr 1 aluno grupo 2321 Out 30 15:36 teste.txt Observe que foi adicionado permissão de escrita (w) à coluna do grupo. Vamos agora retirar a permissão de leitura de outros: $chmod or teste.txt $ls l rwxrw 1 aluno grupo 2321 Out 30 15:36 teste.txt Observe que foi retirado a permissão de leitura (r) à coluna de outros.
5. Sistemas de Arquivos
Iremos tratar do sistema de arquivos utilizado pelo Linux e veremos também alguns conceitos necessários para entendermos melhor o sistema de arquivos. Veremos quais os diretórios básicos presentes na maioria dos sistemas Linux e as suas respectivas aplicações, procurando seguir as definições do documento FHS (Filesystem Hierarchy Standard) versão 2.2 final, o qual pode ser encontrado na íntegra no endereço http://www.pathname.com/fhs.
5.1) Conceitos Básicos
Antes de aprofundarmos sobre o sistema de arquivos do Linux, vamos esclarecer um pouco mais sobre partições. O Linux é um sistema operacional que suporta partições, ou seja, partes de um HD que são tratadas pela máquina como unidades de disco independentes. As partições podem ser criadas segundo diversos padrões, conforme o sistema operacional utilizado, e cada um deles utiliza um tipo de sistema de arquivo. Temos, portanto, um grande número de tipos de partições diferentes, sendo que dentre elas, podemos citar: FAT16 (DOS e WIN95), FAT32 (WIN98), NTFS (WIN NT/2K/XP), HPFS (OS/2).
5.2) O que é?
Um sistema de arquivos é o método e a estrutura de dados que um sistema operacional utiliza para administrar arquivos em um disco ou partição, ou seja, a forma pela qual os arquivos estão organizados em um disco. A expressão também é utilizada para se referenciar a uma partição ou disco que seja usado para armazenar os arquivos ou outros tipos de sistemas de arquivos. Alguém pode dizer “eu tenho dois sistemas de arquivos”, significando que tem duas partições nas quais armazena arquivos ou “aquela pessoa está usando o sistema de arquivo estendido”, exemplificando o tipo do sistema de arquivo.
A diferença entre um disco ou partição e um sistema de arquivos é bastante significativa. Poucos programas (inclusive os programas que criam sistemas de arquivos) operam diretamente em setores não inicializados de um disco ou partição, e caso exista um sistema de arquivos ele será destruído ou danificado seriamente. A maioria dos programas trabalham em um sistema de arquivos e não funcionam em uma partição que não contenha um (ou que contenha um de tipo errado).
Antes de uma partição ou disco ser usado como um sistema de arquivos ele necessita ser inicializado, e a estrutura básica de dados necessita ser gravada no disco. Este processo é chamado criação de um sistema de arquivos.
O Linux suporta diversos tipos de sistemas de arquivos. Dentre esses destacamos: 5.2.1) minix
O mais antigo e presumivelmente o mais confiável, mas bastante limitado em características (algumas datas não aparecem, máximo de 30 caracteres para nome de arquivos, etc...) e restrito em armazenamento (no máximo 64 Mb por sistema de arquivos). 5.2.2) ext2
O mais poderoso e popular sistema de arquivos nativo do Linux. Desenhado para ser facilmente compatível com os avanços das novas versões, sem a necessidade de criar novamente os sistemas de arquivos já existentes.
5.2.3) Ext3
O sistema de arquivos ext3 é uma extensão de “journaling” (sistema de arquivos jornalado) para o sistema de arquivos ext2 no Linux. O “journaling” resulta em maciçamente reduzido tempo gasto recuperando um sistema de arquivos após uma queda, e é portanto bastante utilizado em ambientes onde alta disponibilidade é importante. O ext3 é completamente compatível com os sistemas de arquivos ext2, de forma que é possível migrar um sistema de arquivos ext2 para ext3 e viceversa.
5.2.4) reiserfs
ReiserFS é outro sistema de arquivos com “journaling” (jornalado), o qual é baseado na tecnologia de árvores balanceadas rápidas.
Adicionalmente há o suporte a diversos outros sistemas de arquivos, para simplificar a troca de informações com outros sistemas operacionais. Estes sistemas de arquivos funcionam como se fossem nativos, exceto pela perda de algumas facilidades presentes no UNIX, ou apresentam algumas particularidades.
5.2.5) msdos
Compatibilidade com MSDOS (e OS/2 e Windows NT) através de sistemas de arquivos FAT/FAT32.
5.2.6) umsdos / vfat
Sistemas de arquivos MSDOS estendidos para suportar nomes longos, donos, permissões, links e arquivos de dispositivos do Linux. Isso permite que um sistema de arquivos msdos possa ser usado como se fosse um sistema Linux, removendo a necessidade de uma partição distinta para o Linux.
O sistema de arquivos padrão do CDROM. A extensão Rock Ridge que permite nomes longos também é suportada automaticamente.
5.2.8) nfs
Sistemas de arquivos em redes que permitem o compartilhamento e o fácil acesso aos arquivos entre diversos computadores da rede.
5.2.9) hpfs
O sistema de arquivos do OS/2.
A opção do sistema de arquivos a ser usado depende da situação. Caso a compatibilidade ou outras razões tornem um dos sistemas de arquivos não nativos necessário, então este deve ser utilizado. Caso a opção seja livre, então provavelmente a decisão mais acertada seja usar o ext2 ou ext3, uma vez que ele traz diversas facilidades sem sofrer perda de performance.
5.3) Ponto de Montagem
Antes de um sistema de arquivos poder ser utilizado, ele necessita ser montado. O sistema operacional executa diversas verificações para estar seguro de que tudo está funcionando bem. Uma vez que todos os arquivos no Linux estão em uma única árvore de diretórios, a operação de montagem fará com que o novo sistema de arquivos pareça um subdiretório existente em algum sistema de arquivos já montado.
Como veremos mais à frente, o comando para montagem de um sistema de arquivos possui dois argumentos. O primeiro é o arquivo de dispositivo correspondente ao disco ou partição que contenha o sistema de arquivos. O segundo é o diretório sob o qual ele será montado. Após a execução do comando, dizemos então que “/dev/hda2 está montado no /home”, por exemplo.
Para examinar estes sistemas de arquivos, podese acessar estes diretórios exatamente da mesma forma que qualquer outro, como veremos mais adiante. É importante ressaltar a diferença entre o dispositivo /dev/hda2 e o diretório montado /home. Enquanto o primeiro dá acesso ao dados brutos do disco, o segundo permite o acesso aos arquivos contidos no mesmo disco. O diretório montado é chamado ponto de montagem.
5.4) Classificação dos Dados (arquivos) e Diretórios
Para ajudar na definição da estrutura de diretórios e das permissões de acesso de um sistema Linux, veremos a seguir alguns conceitos de classificação dos dados que
compõem o sistema. É possível definirmos duas categorias independentes de arquivos: compartilháveis x nãocompartilháveis e variáveis x estáticos.
Dados compartilháveis são aqueles que podem ser compartilhados entre várias máquinas diferentes. Não compartilháveis são aqueles específicos de uma máquina em particular. Por exemplo, os diretórios home de usuários são dados compartilháveis, mas arquivos de trava de dispositivos são nãocompartilháveis.
Dados estáticos incluem binários (executáveis), bibliotecas, documentação e qualquer outra coisa que não muda sem intervenção do administrador do sistema. Dados variáveis são quaisquer dados que mudam sem intervenção do administrador do sistema.
Na tabela abaixo estão alguns exemplos de diretórios do Linux, considerando as classificações definidas anteriormente: Compartilhável Não Compartilhável Estático /usr /opt /etc /boot Variável /var/mail /var/spool/news /var/run /var/lock 5.4.1) Diretório RAIZ ( / )
O primeiro sistema de arquivos (chamado raiz, por conter o diretório raiz (/)) é montado, não a partir de outros sistemas de arquivos, mas sim, de maneira automática durante a inicialização do sistema operacional, podendose estar certo de que ele sempre estará disponível, pois de outra forma o sistema não poderá ser inicializado.
A composição do diretório raiz de um sistema Linux típico pode ser representado pela tabela abaixo:
DIRETÓRIO CONTEÚDO
bin Arquivos executáveis (binários) de comandos essenciais pertencentes ao sistema e que são usados com frequência boot Arquivos estáticos de boot de inicialização (bootloader) dev Arquivos de dispositivos de entrada/saída (I/O) etc Arquivos de configuração do sistema da máquina local home Diretórios locais (home) dos usuários (opcional) lib Bibliotecas essenciais compartilhadas e módulos do kernel
(opcional) mnt Ponto para montagem de sistemas de arquivos temporariamente. opt Pacotes de sofwares aplicativos adicionais root Diretório local (home) do superusuário (root) sbin Arquivos de sistema essenciais tmp Arquivos temporários usr Hierarquia secundária var Dados variáveis
proc Sistema de arquivos virtual (existe apenas na memória) com informações do kernel e de processos
Cada diretório listado será discutido em detalhes mais adiante.
O kernel do Linux normalmente está localizado na raiz / ou no /boot. Se estiver localizado em / é recomendado usar o nome vmlinux ou vmlinuz, os quais têm sido usados nos pacotes dos fontes do kernel do Linux atualmente.
5.4.2) Diretório /bin
Contém os comandos que podem ser utilizados tanto pelo administrador do sistema quanto pelos usuários, mas são necessários quando nenhum outro sistema de arquivos está montado (em geral, no modo monousuário ou single user mode).
Pode também conter comandos que são utilizados indiretamente por scripts. 5.4.3) Diretório /boot
Este diretório contém tudo que é necessário para carregar o sistema, exceto os arquivos de configuração e o gerenciador de boot.
Portanto, o /boot contém dados que são utilizados antes que o kernel comece a executar programas no modo de usuário. Isto pode incluir setores master de inicialização (master boot sectors) guardados, arquivos de mapa de setor e qualquer outro dado que não é editado manualmente.
5.4.4) Diretório /dev
O diretório /dev é a localização de arquivos especiais e arquivos de dispositivos. Normalmente contém um arquivo para cada dispositivo que o kernel do Linux pode suportar.
dispositivos quando necessário. 5.4.5) Diretório /etc
Contém arquivos e diretórios de configuração do sistema da máquina local. Normalmente não contém binários.
Tipicamente /etc possui os seguintes subdiretórios, caso os sistemas correspondentes estejam instalados:
/opt Arquivos de configuração para /opt X11 Arquivos de configuração para o X11
SGML Arquivos de configuração para SGML e XML 5.4.6) Diretório /home
O diretório /home é nitidamente um sistema de arquivos específico dos usuários locais, sendo a localização sugerida para os diretórios locais dos usuários. Sua estrutura pode diferir de máquina para máquina.
Em sistemas pequenos, cada diretório de usuário é um dos subdiretórios debaixo do /home, como por exemplo: /home/dirson, /home/raulison, /home/weslei, etc.
Em sistemas maiores (especialmente quando os diretórios /home são compartilhados entre várias máquinas via rede) é útil subdividir os diretórios locais. A subdivisão pode ser implementada utilizando subdiretórios tais como /home/apoio, /home/docs, /home/cartas, etc.
5.4.7) Diretório /lib
O diretório /lib contém aquelas bibliotecas compartilhadas que são necessárias para inicializar o sistema e executar os comandos no sistema de arquivos raiz, mais especificamente os comandos contidos em /bin e /sbin.
Pode conter também módulos do kernel, localizados em um subdiretório /lib/modules. 5.4.8) Diretório /lib<nome>
Em sistemas que suportem mais de um formato de binários (executáveis), e portanto necessitem bibliotecas separadas, podem existir uma ou mais variantes do diretório /lib.
Isto é comumente utilizado para fornecer suporte a 64 bits ou 32 bits em sistemas que suportam múltiplos formatos de binários (executáveis), mas requerem bibliotecas com o mesmo nome. Neste caso, /lib32 and /lib64 seriam os diretórios de bibliotecas, e /lib seria
um link para um deles. 5.4.9) Diretório /mnt
Este diretório existe para que o administrador possa montar temporariamente sistemas de arquivos quando necessário. O conteúdo deste diretório é um assunto local e não deve afetar a maneira de qualquer programa ser executado.
5.4.10) Diretório /opt
O diretório /opt é reservado para a instalação de pacotes de softwares aplicativos adicionais.
Em /opt podem existir subdiretórios que abrigam os arquivos estáticos destas aplicações, tendo cada subdiretório um nome que descreva o pacote de software nele contido.
Podem também existir os subdiretórios /opt/bin, /opt/doc, /opt/include, /opt/info, /opt/lib e /opt/man, os quais são reservados para uso do administrador do sistema local. 5.4.11) Diretório /root
Este diretório é opcional no Linux. O diretório local da conta do usuário root pode ser determinado por preferências, porém /root é a sua localização padrão.
Não é recomendado o uso da conta root para coisas corriqueiras tais como ler o email e ver as notícias (mail & news). Recomendase que esta conta seja usada somente para a administração do sistema. Por esta razão não devem aparecer subdiretórios como Mail e News no diretório local da conta do usuário root. É recomendado que o email para root seja redirecionado a um usuário mais adequado.
5.4.12) Diretório /sbin
Tipicamente, /sbin contém comandos essenciais para inicializar, restaurar, recuperar e/ou reparar o sistema, complementando os comandos encontrados em /bin.
5.4.13) Diretório /tmp
O /tmp é utilizado para arquivos temporários gerados por programas, podendo estar no HD ou na memória RAM.
sejam preservados entre execuções dos mesmos. A "permanência" da informação que é armazenada em /tmp é diferente daquela que é armazenada em /var/tmp. Recomendase que o conteúdo de /tmp seja apagado sempre que o sistema for inicializado.
5.4.14) Diretório /usr
O diretório /usr é a segunda maior seção do sistema de arquivos. /usr é compartilhável e somente de leitura. Isto significa que /usr pode ser compartilhado entre várias máquinas que utilizam o Linux. Em um sistema típico teremos os seguintes diretórios abaixo de /usr: bin A maioria dos comandos de usuário include Arquivos header (cabeçalhos) incluídos por programas C lib Bibliotecas local Hierarquia local (normalmente está vazio após a primeira instalação) sbin Arquivos não vitais de administração do sistema share Dados independentes da arquitetura X11R6 Sistema X Window Versão 11 release 6 (opcional) games Jogos e programas educacionais (opcional) lib<nome> Bibliotecas em formato alternativo (opcional) src Código fonte (opcional) 5.4.15) Diretório /var
O diretório /var contém arquivos de dados variáveis. Inclui arquivos e diretórios em fila de execução, dados de ordem administrativa e de login, além de arquivos temporários e transitórios. Diretórios contidos em /var: cache Dados de cache de aplicações lib Informação de estado variável local Dados variáveis para /usr/local lock Arquivos de trava log Arquivos e diretórios de log opt Dados variáveis para /opt
run Dados relevantes para processos sendo executados spool Dados de aplicação em fila de espera tmp Arquivos temporários preservados entre reboots do sistema account Logs de processos (opcional) crash Depósitos de crash do sistema (opcional) games Dados variáveis de jogos (opcional) mail Arquivos de caixa postal dos usuários (opcional)
yp Arquivos do banco de dados do NIS (Serviço de Informação de Rede) (opcional)
5.4.16) Diretório /proc
O diretório /proc é um sistema de arquivos virtual utilizado para manipular informação de processos e de sistema. É recomendada sua utilização para o armazenamento e obtenção de informação de processos, assim como outras informação do kernel ou da memória.
6. Instalação de Programas
Existem diversas maneiras de se instalar programas no Linux. Normalmente a instalação de um programa, deve ser feita pela conta do super usuário (root). As formas de instalar o programa variam da mais simples (do ponto de vista do usuário) à mais complicada, e normalmente o que uma instalação mais complicada faz é automatizar o que a instalação mais simples faz. Algumas formas de se instalar um programa estão ordenadas (da forma mais complexa à mais simples do ponto de vista do usuário) são:
● baixar o código fonte do programa desejado, compilar, linkar e instalar. Normalmente funciona, mas exige conhecimentos de programação.
● baixar o pacote compactado do programa, descompactar, e executar a
sequência ./configure; make; make install (um comando de cada vez, observando erros e avisos). Muitas vezes aqui ocorrem erros chamados de dependency hell: isto acontece quando, na configuração, são exigidas atualizações de outros pacotes ● baixar um pacote especial chamado rpm, e instalar usando um comando específico
(o comando é rpm). Aqui também pode ocorrer o dependency hell.
● utilizar gerenciadores de pacotes rpm, que fazem o teste das dependências.
Normalmente, as dependências utilizam algum aplicativo gráfico específico da distribuição. Estes aplicativos gráficos normalmente são acessíveis a partir do menu
gráfico, mas exigem que se entre com a senha do superusuário (root).
Essas formas podem ser agrupadas em dois grupos basicamente. O primeiro baseado em código fonte e o segundo baseado em pacotes.
O primeiro grupo mais tradicional e ausente em parte dos demais sistemas operacionais, é aquela onde se dispõe do código fonte do programa e a instalação consiste em compilar este código, gerando o código objeto (também chamado de binário ou executável). Muitas vezes, junto com o código fonte é fornecido um script para facilitar a compilação do programa.
Já o segundo é baseado em pacotes, ou seja, o programa já compilado (código objeto ou executável) é "empacotado", junto com os demais arquivos que sejam necessários para seu funcionamento. Existem diversos tipos de pacotes, como rpm (usado pela Red Hat e derivados), deb (Debian e derivados) e tgz (Slackware).
Abaixo, ambos os grupos são mais detalhados:
6.1) Instalação a partir de pacotes compactados
Para instalar pacotes compactados que são normalmente distribuídos em arquivos de extensão .tar.gz ou .tar.bz2, os arquivos devem ser descompactados e, em vez de serem instalados, serem compilados através de linhas de comando. Nesse caso, necessariamente o fabricante colocará as instruções de instalação, pois pode variar drasticamente de um programa para outro.
6.2) Instalação a partir do rpm ou deb
rpm é o pacote de uma das distribuições do Linux (Red Hat), e é utilizado por várias outras distribuições. O Ubuntu usa a extensão .deb.
A instalação é feita baixandose o rpm (ou deb) desejado, e comandandose (no caso do rpm) rpm <opções> pacote.
Notese que muitas vezes isso gera um dependency hell, tornandose necessário baixar e instalar vários outros rpms antes do rpm desejado. Para evitar este trabalho, existem os gerenciadores de rpm, o próximo tópico. 6.3) Instalação a partir de gerenciadores de rpm (ou deb) São programas, chamados a partir da linha de comando, que verificam todos os rpms necessários (testando as dependências), e baixam e instalam todos. No Ubuntu temos o apt ('Advanced Packaging Tool' chamado por aptget). Um detalhe importante é que, para estes programas funcionarem adequadamente, ou seja, consigam achar tudo que é necessário, é preciso manter em alguma base de dados local a lista completa dos sites que podem atualizar. Alguns comandos importantes para instalar ou atualizar programas são (para utilizálos a maioria requer que esteja logado como super usuário). Obs: Substitua "nome_pacote" ou "termo" pelo programa que você quer instalar ou procurar. ● aptget update Execute este comando periodicamente para ter a certeza que sua lista de fontes fique sempre atualizada, ou ainda se você mudou o /etc/apt/sources.list ou /etc/apt/preferences. ● aptget install nome_pacote instala um novo pacote. ● aptget remove nome_pacote remove um pacote (os arquivos de configuração não são excluídos) . ● aptget –purge remove nome_pacote remove um pacote (os arquivo de configuração também são excluídos) ● aptget upgrade atualiza todos os pacotes instalados ● aptget distupgrade atualiza o sistema todo para uma nova versão ● aptcache search termo procura por "termo" na lista de pacotes disponíveis
● dpkg l nome_pacote lista os pacotes instalados que casam com "nome_pacote". Na prática use '*nome_pacote*', a não ser que você saiba o nome completo do pacote. ● aptitude O Aptitude é uma interface em modo texto para o sistema de pacotes Debian GNU/Linux e derivados. Assim como o aptget, permite ver a lista de pacotes e realizar operações como instalação, atualização e remoção de pacotes, porém parece tratar um tanto quanto melhor a questão das dependências. ● aptcache showpkg pacotes mostra informações sobre os pacotes ● aptcache dumpavail mostra uma lista de pacotes disponíveis. ● aptcache show pacotes mostra registros dos pacotes, igual a dpkg printavail. ● aptcache pkgnames rápida listagem de todos os pacotes instalados no sistema. ● dpkg S nome_arquivo qual foi o pacote que instalou este arquivo? ● dpkg L pacote Mostra os arquivos instalados pelo pacote. ● aptfile search NomeArquivo Este comando procura por um pacote, não necessariamente precisa estar instalado, que inclua o arquivo passado junto a linha de comando (NomeArquivo. Ou seja, muito útil para localizar facilmente arquivos individuais dentro de pacotes que ainda nem se encontram instalados no seu sistema. ● aptget autoclean Execute este comando periodicamente para excluir os arquivos .deb que não estão mais instalados no seu sistema. Podese ganhar uma grande quantidade de espaço em disco fazendo isso. Se você está desesperado por espaço em disco, aptget clean é mais radical, e removerá todos os arquivos .deb, mesmo de pacotes instalados. Como na maioria dos casos você não precisa destes arquivos .deb, não hesite em usar este comando quando precisar de uns megas extras. ● aptcdrom add Comando utilizado para adicionar um CD ao arquivo /etc/apt/sources.list do APT, fazendo assim com que o aptget procure também neste CD por pacotes.
Instalação a partir de gerenciadores de rpm com interface gráfica (GUI)
Há a possibilidade ainda de se utilizar a interface gráfica que algumas distribuições oferecem, o que torna a instalação ainda mais simples. No caso do Ubuntu é oferecido o “Ubuntu Software Center” que facilita a instalação de programas.
Wine
Pode acontecer que você precise de um programa que só rode no Windows, sem versões equivalentes para Linux. Como Linux é um sistema flexível, ele tem suporte para esses programas, através de uma camada chamada Wine, que deve ser instalada à parte. O Wine é uma espécie de um emulador apesar do nome (Wine é a sigla recursiva para "Wine is not emulator", literalmente "Wine não é emulador") que traduz as DLLs do Windows em instruções para Linux. O Wine é um programa comum. No Ubuntu, podese dar o comando: sudo aptget install wine, e logo depois digitar a senha, ou ainda instalálo por meio do Ubuntu Software Center, como será ilustrado abaixo e todos os arquivos com a extensão .EXE passarão a ser abertos através do Wine.
O Ubuntu Software Center pode ser encontrado em aplicativos
Tela inicial da interface gráfica para instalação de programas do Ubuntu, simbolizada pela “sacolinha” do lado esquerdo.
Será solicitada a senha do super usuário.
A instalação poderá ser acompanhada por uma barra verde no canto superior direito.
Curiosidade: resolvendo problemas
O aptget é uma ferramenta desenvolvida para ser usada em servidores e outras aplicações importantes. Isto significa que ele foi desenvolvido para ser o mais confiável possível e nunca realizar nenhuma modificação potencialmente perigosa para o sistema, a menos que autorizado por você. Quando qualquer coisa inesperada acontece, ele para e fica esperando sua confirmação antes de fazer qualquer outra coisa.
O problema desta abordagem é que às vezes um defeito em algum pacote ou um
download corrompido pode fazer com que o APT fique "travado", sem concluir a instalação de um determinado pacote por causa de um erro qualquer e sem aceitar instalar outros antes que o problema inicial seja resolvido.
Basicamente, quando encontrar este tipo de problema, você deve:
1. Rodar o aptget update para ter certeza de que a lista de pacotes do APT se encontra atualizada.
2. Execute o comando aptget f install para usar o sistema de resolução de problemas do APT.
3. Caso ele não resolva, experimente usar o dpkg i forceall para forçar a
instalação do pacote com problemas, ou use o dpkg r nome_do_pacote caso prefira desistir da instalação.
4. Execute o comando dpkg configure a, para verificar todas pendências na configuração dos pacotes.
5. Rode novamente o aptget f install. Caso ele não resolva, experimente o aptget f remove, que tem uma função similar à do "f install", mas dá preferência a remover os pacotes com problemas, ao invés de tentar corrigir a instalação.
7. Acessando H.D., Pen drive, Windows
Acessar o PenDrive através do Ubuntu (linha de comando): 1) cd /media/user, para acessar a lista de dipositivos de armazenamento. 2) Dentro deste diretório, use o comando “ls” e digite: cd /nome_do_dispositivo desejado. Exemplo: 1) cd /media/usuario 2) cd /pendrive1 Para acessar o PenDrive através do Ubuntu (ferramenta gráfica):1) Na sua aba de navegação lateral esquerda do sistema irá mostrar os dispositvos montados, basta procurar pelo ícone mostrado na imagem abaixo:
2) Clique e abrirá uma nova janela com suas pastas.
Montar pendrive manualmente:
1) Acesse um terminal como usuário root e crie um diretório em /media com o nome que você preferir. Este diretório será usado para montar o pen drive.
mkdir /media/pendrive
2) Agora é preciso descobrir qual a formatação do PenDrive e aonde ele está localizado no Linux. Para isso, digite no terminal:
fdisk l
3) A última linha revela que o dispositivo foi nomeado como "sdb1" e está no formato NTFS. A próxima etapa é montálo no diretório criado: mount t ntfs3g /dev/sdb1 /media/pendrive Caso seu PenDrive esteja no formato FAT use: mount t vfat /dev/sdb1 /media/external o uid=1000,gid=1000,utf8,dmask=027,fmask=137 Acessar o HD do computador (linha de comando):
Existem dois tipos de partição no linux, a que contém seus arquivos pessoais (Home) e a que contém arquivos do sistema (File System)
Acessando a Home, basta:
1) cd ~/ , através do ls você listará todos os diretórios pessoais.
Acessando pastas do sistema:
1) cd / , através do ls você listará todos os diretórios do sistema. Para fazer alterações nesse tipo de pasta, será necessário que você esteja logado como ROOT em seu terminal, porém não é aconselhável alterálas, já que se tratam de pastas e arquivos necessários para o sistema.
Para acessar o HD do computador (ferramenta gráfica):
Acessando pastas pessoais:
Acessando pastas do sistema:
1) Através da mesma imagem, na lista de Devices clique em Computer.
Acessar partição do Windows (linha de comando):
1) Primeiro verifique qual é a partição onde o Windows está instalado. Lembrese de como o Linux identifica suas partições de disco. Se o Windows estiver instalado na partição primária do primeiro HD (o mais provável), então a partição é /dev/hda1.
2) No prompt, digite "cd /media" e crie um diretório "windows" usando: mkdir windows.
3) Com o comando fdisk l você terá uma tela parecida com esta:
4) Caso a partição do Windows seja NTFS como da figura (a partição do windows será indicada por uma *), use este comando: sudo mount t ntfs o nls=utf8,umask=0222 /dev/hdb1 /media/windows 5) Caso a partição do Windows seja FAT use este comando: sudo mount t vfat o iocharset=utf8,umask=000 /dev/hda1 /media/windows Acessar partição do Windows (Interface Gráfica): 1) Abra o menu lateral e clique no ícone marcado com o nome Windows: