mini-curso de introdução ao gnu/linux · shell programa que recebe comandos do teclado e os envia...
TRANSCRIPT
Min i -Curso de In t rodução ao GNU/L inux
AULA 3
Bruno L. AlbrechtFelipe A. Chies
Lucas F. ZawackiPET Computação UFRGS
Setembro 2009
L inha de Comando I
● Terminal (Shell) ● Comandos de Ajuda (Documentação)● Estrutura de diretórios● Arquivos / Arquivos-Texto● Árvore de diretórios
She l l
● Programa que recebe comandos do teclado e os envia ao Sisop para serem executados;
● Um “concha” envolvendo o sistema operacional.
She l l
● É um meio de interação entre o usuário e a máquina;
● Antigamente, era a única interface disponível nos computadores;
● Pode ser considerada um tipo de linguagem de programação -> Shell Programming
● Resumindo: É um intepretador de comandos!
She l l
● Tarefas executadas:– Espera o usuário fornecer um comando (prompt)
– Analisa e trata caracteres especiais da linha de comando
– Procura arquivo executável do comando
– Cria um processo filho (fork) para executá-lo
– Espera que o comando termine para retornar ao prompt
● Exceção: comandos em background (&)
Os “She l l s ”
● Bourne Shell (sh)
– Antigo padrão do UNIX
– ”Standart Shell”● Korn Shell (ksh)
– Compátivel com sh agregando outras funções
● Bourne Again Shell (bash)
– Shell do projeto GNU● C Shell (csh)
– Estruturação similar à linguagem C
– Ignorou a compatibilidade com sh
Termina l ( g n o m e - t e r m i n a l )
● É um programa de terminal gráfico -> emulador de terminal;
● Permite que façamos uma interação com a shell através de uma janela, dentro da interface gráfica;
Modo Tex to
● Se não quisermos usar o terminal, podemos entrar no modo texto (trocar de ambiente):– Para isso basta apertar Crtl + Alt + F[1-6]
● Para voltar ao modo gráfico, deve-se apertar Ctrl + Alt + F7;
Comandos de A juda - man
● man– Principal comando de todos!!!
– Acessa as páginas de manuais (manpages);man ls
man man #é válido
– Opção man -k <palavra> : comandos onde a palavra aparece em sua descrição ou nome.man -k java
Out ros comandos de A juda
● Info info gzip
– Manuais que utilizam uma linguagem mais simples, abordando apenas as opções mais comuns.
● Helphelp cd
– Exibe informações sobre os comandos internos do Bash;
Est ru tu ra de D i re tó r ios
● A árvore de diretórios do Linux segue um padrão estabelecido pelo unix durante a maior parte de sua existência, mas controlada por um conjunto de regras estabelecidas pelo Linux Filesystem Standard, ou FSSTND.
Di re tó r ios - Desc r i ção
● / : é o diretório raiz, todos os demais diretórios estão abaixo dele;
● /bin : contém os programas do sistema que são executados com freqüência pelos usuários;
● /boot : arquivos necessários para o boot (como o kernel e o carregador do sistema operacional);
● /dev : é o local onde ficam armazenadas as referências aos dispositivos presentes na máquina, para o controle destes dispositivos (HD, drive de disquete, etc).;
Di re tó r ios - Desc r i ção
● /etc : arquivos de configuração do sistema;
● /home : contêm os diretórios dos usuários do sistema;
– /home/marcelo: Diretório pessoal do Marcelo;
– /home/thiago: Diretório pessoal do Thiago;● /lib : bibliotecas compartilhadas pelos programas
do sistema e módulos do kernel;
● /lost+found *: para arquivos recuperados;
* Não faz parte do Filesystem Hierarchy Standard ( http://www.pathname.com/fhs/pub/fhs-2.3.html ).
Di re tó r ios - Desc r i ção
● /media : dispositivos montados (CD-ROM, partição de HD, etc);
● /mnt : ponto de montagem temporário;
● /opt : aplicativos adicionais e pacotes de softwares.
● /proc : diretório virtual de informações do sistema, mantido pelo kernel.
● /root : diretório pessoal (home) do usuário root;
● /sbin : Diretório de programas usados pelo root para administração e controle do funcionamento do sistema -> /bin do root;
Di re tó r ios - Desc r i ção
● /tmp : arquivos temporários;
● /usr :contém comandos, bibliotecas, manpages e outros arquivos estáveis (que não precisem ser modificados durante a operação normal do sistema) -> diretório só de leitura;
– /usr/bin : a maior parte dos executáveis dos programas se encontra aqui;
– /usr/lib : bibliotecas do sistema;
– /usr/src : código-fonte do kernel;● /var :contém em geral os arquivos que sofrem
modificações durante a sessão(logs, spool, e-mail);
D i re tó r ios - Comandos
● cd : – Descrição: permite-nos a navegação entre os
diretórios do sistema;
cd /usr
● Vamos para o diretório usr;– Opções:
cd ~ # vai para o diretório home do usuário
cd . # diretório atual
cd .. # vai para o diretório pai (na árvore)
cd - # vai para o último diretório acessado
Di re tó r ios - Comandos
● ls : – Descrição: lista os arquivos do diretório desejado;
ls
● Lista os arquivos do diretório atual;– Opções:
ls -a #mostra também os arquivos ocultos
ls -l #listagem com mais detalhes
ls -lhS # tamanhos de arquivos “legíveis” (-h)
# e ordem de tamanho (-S)
ls -R # lista também os sub-diretórios
Di re tó r ios - Comandos
● dir : – Descrição: comando similar ao ls;
dir -lh
● Lista os arquivos do diretório atual no formato longo com tamanhos “legíveis”;
● pwd :
– Descrição: permite saber em qual diretório estamos no momento, onde pwd significa "print working directory".; pwd
Di re tó r ios - Comandos
● mkdir : – Descrição: cria um diretório vazio;
mkdir /home/marcelo/pet
#cria uma pasta pet no local desejado
● rmdir :
– Remove diretório vazios ;rmdir /home/marcelo/pet
#remove a pasta pet
Obs.: Na sequência mostraremos o comando rm, que pode ser usado para excluir diretórios com arquivos e subdiretórios;
Arqu ivos - Comandos
● mv : – Descrição: move arquivos e diretórios, sendo
muito usado também para renomear um determinado arquivo.
mv ~/a.txt /tmp/a.txt
#move o arquivo do diretório pessoal do usuário para a #pasta /tmp
mv teste1.txt teste2.txt
#renomeia o arquivo teste1 para teste2
Arqu ivos - Comandos
● cp : – Faz copias de arquivos e diretórios.
cp /home/marcelo /tmp
#faz uma cópia de toda a pasta do usuário Marcelo para #a pasta tmp;
cp a.txt a_copia.txt
#cria uma cópia do arquivo a.txt no diretório corrente;cp *.txt /tmp
#copia todos arquivos texto para a pasta tmp;
Arqu ivos - Comandos
● rm : – Remove arquivos e diretórios.
rm a.txt
# remove o arquivo a.txt;
rm -r /home/marcelo
# remove o diretório marcelo e todos os seus arquivos e # subdiretórios recursivamente;
– Nota: Use este comando com muito cuidado!
– A princípio não existe lixeira!
Arqu ivos - Comandos
● ln :Cria ligações (links) entre arquivos ou diretórios.ln -s /home/thiago/mp3 /mp3
# cria um link simbólico (soft link) mp3 na raiz para o#diretório dentro do home do usuário Thiago
Arqu ivos - Comandos
● file :Indica o tipo do arquivo ou se é um diretório;
file curso_linux_aula1.pdf
Arqu ivos - Comandos
● locate :– Pesquisa em uma base de dados de nomes de
arquivos por nomes que satisfaçam um determinado padrão. Podemos atualizar a base de dados usando o comando updatedb;
Arqu ivos - Comandos
● find :Comando utilizado para procurar por arquivos (ou diretórios) na árvore de diretórios, a partir de um caminho.
find . -name a.txt
#busca todos arquivos que tenham nome #a.txt, a partir do diretório atual
find / -size +10000k
#busca no computador todos arquivos com #tamanho maior que 10.000 Kb
Arqu ivos - Comandos
● touch
Muda a data e hora que um arquivo foi criado. Também pode ser usado para criar arquivos vazios.
touch arq
#cria um arquivo vazio se ele não existir, ou modifica a#data de última alteração para a atual
touch -t 10201830 arq
#altera a data do arquivo (ou cria) para 20/Out #às 18h30
Red ic ionamento de F luxo
● No ambiente shell, podemos utilizar os operadores >,>>,< para redirecionar a entrada e saída padrão (existem outros!!!);
comando > arq.txt
– Redireciona a saída-padrão do comando para o arquivo b (sobrescrevendo, ou criando se o arquivo não existir).comando >> arq.txt
– O mesmo que o operador >, mas concatenando (não-sobrescrevendo)
Red ic ionamento de F luxo
comando < arq.txt
– redireciona a entrada-padrão do comando para o arquivo.
– Nota: Veremos com mais detalhes esse assunto ao longo do curso.
Arqu i vos Tex to - Comandos
● cat :– Utilizado, em geral, para concatenar arquivos ou
exibir arquivos de texto na tela; ● cat -n arq.txt
#exibe o conteúdo do arquivo na tela (-n)#com as linhas numeradas)
● cat arq1 arq2 arq3 > arq_final
#concatena os 3 arquivos e coloca o#resultado no arq_final
Arqu i vos Tex to - Comandos
● tac :– Comando similar ao cat, mas exibe ou concatena
os arquivos na ordem inversa; tac arq.txt
#exibe o conteúdo do arquivo na tela na ordem inversa
Arqu i vos Tex to - Comandos
● more :– Mostra arquivos na tela de forma paginada;
– Navegação:● para sair do aplicativo digite q ● use as teclas Page-Down, Ctrl+F ou Space para
avançar● use as teclas Page-Up ou Ctrl+B para voltar.● use Enter para avançar apenas uma linha por vez.
more arq.txt
Arqu i vos Tex to - Comandos
● less :– Tem a mesma função do comando more, mas
apresenta algumas melhorias;● As teclas de navegação são as mesmas do
more, mas permite a tecla h (help) para listar as demais teclas;
less arq.txt
Arqu i vos Tex to - Comandos
● grep :– Procura por uma expressão dentro de um
arquivo(s) ou no dispositivo de entrada padrão.grep “Curso Linux” arq1.txt arq2.txt
#Procura a expressão (“Curso Linux”) nos #dois arquivos;
ls | grep linux
#Procura a expressão (linux) na saída do comando ls;
Arqu i vos Tex to - Comandos
● vi / vim :– Editor de texto vim (vi improved);
● No Ubuntu ambos os comandos abrem o vim!
vim arq.txt
#Abre o arquivo para edição ou cria (desde que ao #fecharmos salvarmos) um novo se não existir;
● Nota: Veremos mais sobre o vim na aula 5!
Arqu i vos Tex to - Comandos
● diff :– Compara o conteúdo de dois arquivos, exibindo
a diferença entre eles; diff arq1.txt arq2.txt
#exibe a diferença na tela dos dois arquivos;
diff -i arq1.txt arq2.txt > arq.txt
#salva no arq.txt a difença entre arquivos, #ignorando as diferenças entre maisúculas e# minúsculas (-i);
Arqu i vos Tex to - Comandos
● sort :– Organiza as linhas de um arquivo texto ou da
entrada padrão sort -d nomes.txt
# exibe na tela os nomes em ordem alfabética (-d)!
sort –n numeros.txt > crescente.txt
# ordena os numeros (-n) em ordem #crescente, colocando no crescente.txt
B ib l i og ra f i a m ín ima d a au la
● Lista completa de referências será dada ao final do curso:– http://www.uniriotec.br/~morganna/guia/introd_guia.html
– http://wiki.ubuntubrasil.org/ComandosBasicos
– https://help.ubuntu.com/community/CommandlineHowto
– http://linuxcommand.org/
– http://jneves.wordpress.com/
– http://www.commandlinefu.com/
– http://www.ghacks.net/2009/08/14/get-to-know-linux-terminology/