Apostila_Linux

Propaganda
Introdução ao Linux
(Comandos básicos)
Agosto/2013
Introdução
Foi desenvolvido por Linus Torvalds, com o
propósito de ser uma alternativa barata e
funcional.
O Linux está dividido em diversas
distribuições, para serem baixadas e instaladas
em sua máquina.
Caracteristicas
- Multitarefa
- Multiusuário
- Suporte a nomes extensos (255 caracteres)
- Sistema operacional de código aberto
- Licenças para utilização
- Implementação de servidores com um baixo
custo e alta performance
Contas
• Conta é a maneira pela qual o usuário se identifica no
sistema operacional
O sistema de contas e usuários já vem junto com o Linux
desde a sua concepção, uma vez que trata-se de um sistema
voltado para ambientes em rede. Além do fator segurança,
que garante que cada usuário faça somente aquilo que tem
permissão de fazer (e não danifique o sistema), tem-se o
fator de identificação que garante que só o usuário poderá
alterar seus documentos/arquivos.
Iniciando uma seção Linux
• Nome de usuário e senha são criadas pelo administrador do
sistema.
Login: seu_login
Senha: sua_senha
Seção Linux: Iniciando e Finalizando
• Abrir terminal
Clique em: Aplicativos -> Acessórios -> Terminal
• Para sair:
Usa -se o comando “exit”
Armazenamento da informação
• Os arquivos e diretórios se organizam com uma estrutura
hierárquica, em forma de árvore
Caracteres coringas
Para nos referirmos a múltiplos arquivos de nomes
similares usamos os caracteres coringas:
• “?” substitue qualquer caracter
Exemplo: ls te??e.txt
• “*”substitue uma sequência de caracteres
Exemplo: ls *.txt
Permissões de Acesso
Quando um usuário lista as informações detalhadas de um arquivo
(ls -ltr) ou diretório, a informação retornada inclui as permissões de
acesso: -rwxrwxrwx
Ex:
drwxrw-r-- 2
-rwxrw-r-- 1
curso curso
curso curso
4096
4096
Jan
Dec
29
16
10:30
10:41
Arquivos
notas.txt
- ou d - Indica se o objeto listado é um arquivo(-) ou diretório(d)
rwx - Permissões do usuário
rw- - Permissões do grupo
r-- - Permissões de outros
Permissões de Acesso
Modo Valor
Cada modo de acesso tem um
valor numérico associado a
ele conforme a tabela :
Octal
Escrita
777 rwxrwxrwx
755 rwxr-xr-x
700 rwx-----666 rw-rw-rw-
Dono
rwx
rwx
rwx
rw-
Descrição
-
0
Nenhuma permissão
x
1
Execução
w
2
Gravação
wx
3
Gravação e Execução
r
4
Leitura
rx
5
Leitura e Execução
rw
6
Leitura e Gravação
rwx
7
Leitura,Gravação e Execução
Grupo
Outros
rwx
rwx
r-x
r-x
----rwrw-
Principais Comandos do Sistema Operacional
• alias
Permite criar um atalho ou um apelido a um comando que você usa
constantemente
Ex: alias home=/home2/doc/figuras
• at
Agenda um comando, um script ou um programa a ser executado em
data e hora específica. Também é possível usar este comando para
exibir as tarefas agendadas existentes.
Ex: echo ls /var/log | at 10am today
Ex: at -f commands.txt +3 minutes
Todas as tarefas agendadas são armazenadas em arquivos dentro do
diretório /var/spool/cron/atjobs. Para ver as tarefas, digite:
=> atq
Para remover uma tarefa, use comando "atrm" seguido do número da
tarefa obtida pelo atq.
Principais Comandos do Sistema Operacional
• apropos word
Pesquisa nas páginas de manuais exitentes no sistema, e lista os
comandos/programas que atendem a consulta.
Ex: apropos alias
• basename pathname/file
Remove os diretórios, mostrando somente o nome do arquivo. Outra
aplicação interessante é o uso deste comando para remoção da
extensão.
Ex: basename /home2/doc/teste.txt
Ex: basename /home2/doc/teste.txt .txt
Principais Comandos do Sistema Operacional
• cd <pathname>
Muda o diretório de trabalho
Ex: cd curso/linux
Ex: cd ../..
• chmod <nU><nG><nO> <file>
Muda a permissão de um arquivo ou diretório
nU=usuario nG=grupo nO=outros
Ex: chmod 777 teste.txt
nU nG nO
• clear
Limpa a tela
Ex: clear
Principais Comandos do Sistema Operacional
• cp <file1 file2>
Copia arquivos ou diretórios
Ex: cp teste.txt teste2.txt
Ex: cp -R dir1 dir2 (-R opção para copiar diretórios)
Ex: cp ../twin.doc .
c
•
cmp <file1 file2>
Compara dois arquivos
Ex: cmp fort.20 fort.100
fort.20 e fort.10 são diferentes: byte 4, linha 1
Principais Comandos do Sistema Operacional
• cat [opções] [files]
e – imprimi $ no final de cada linha
Lê um ou mais arquivos e imprime -os com uma saída padrão.
Ex: cat ch1
Podemos usar:
• O operador > para combinar muitos arquivos dentro de um novo arquivo ;
Ex: cat ch1 ch2 ch3 > all.txt
• O operador >> para anexar um arquivo em outro arquivo diferente;
Ex: cat ch1 > > ch10.txt
Principais Comandos do Sistema Operacional
• crontab [opções]
-e: edita o crontab ou cria um caso ainda não exista;
-l: mostra o conteúdo do crontab;
-r: remove o crontab;
-v: mostra quando foi a última vez que o crontab foi editado (disponível
em apenas alguns sistemas).
Executa tarefas específicas em horários específicos: m h mês
dia_semana e o programa
Ex:00 3,4,5 * * * root /usr/local/sbin/backup.sh
Ex:40 16 1 6-8 * /home/doc/script.sh
Principais Comandos do Sistema Operacional
• cut [opções] [files]
-cn imprime uma lista com o caractere número
-d usa com o parametro -f especificando o campo delimitador
-fn imiprimi a coluna número
Seleciona uma lista de colunas ou campos para um ou mais arquivos
Ex: cut -d “:” f 1,5 /etc/passwd
Ex: cut -c4 file.txt
• cp <file1 file2>
Copia arquivos ou diretórios
Ex: cp teste.txt teste2.txt
Ex: cp -R dir1 dir2 (-R opção para copiar diretórios)
Ex: cp ../twin.doc .
Principais Comandos do Sistema Operacional
• date
Mostra a data e hora corrente
Ex: date
• df
Mostra informações de espaço em disco
Ex: df -k .
• du
Mostra o espaço ocupado por um arquivo ou diretório
Ex: du -ks
Ex: du -sh
Principais Comandos do Sistema Operacional
• diff <file1> <file2>
sdiff
Faz uma comparação entre dois arquivos
Ex: diff teste.txt twin.doc
• dirname pathname
Útil para extrair o nome real caminho
Ex:diretório/texte.txt
• echo <message>
Exibe uma mensagem na tela
Ex: echo Curso de Linux
Principais Comandos do Sistema Operacional
• file files
Mostra o tipo do arquivo
Ex: file ascii
• find <pathname> -name <file> -print
Mostra a localização de um arquivo
Ex: find /home/curso/linux -name “teste.txt” -print
Ex: find . -name “teste.txt” -print
• finger [options] users
Mostra informações sobre um ou mais usuários
Ex: finger -s meta
Principais Comandos do Sistema Operacional
• grep [opções] <file>
-i faz pesquisa sem diferenciar maiúscula de minúscula.
-n mostra a linha que o texto esta no arquivo
Procura textos e expressões dentro do arquivo
Ex: grep Linux teste.txt
• head [-n] files
Imprimi as primeiras linhas de um ou mais arquivos.
* -n : numero de linhas que quer imprimir.
Ex: head -20 teste.txt
Ex: grep '(15)' teste.txt | head
Principais Comandos do Sistema Operacional
• history
Lista alguns dos últimos comandos que você digitou
Ex: history
1064 cd dbs
1065 export CDPATH=/opt/oracle/product/11gR2/db1
1066 cd dbs
1067 pwd
Tem a capacidade de reexecutar um comando sem digitá-lo novamente.
• ! seguido pelo evento ou número do comando que precede o
respectivo nome no histórico.
# !1066
cd dbs
•
!! (dois pontos de exclamação) executa novamente o último comando
aplicado.
Principais Comandos do Sistema Operacional
• history
Lista alguns dos últimos comandos que você digitou
Ex: history
1064 cd dbs
1065 export CDPATH=/opt/oracle/product/11gR2/db1
1066 cd dbs
1067 pwd
Tem a capacidade de reexecutar um comando sem digitá-lo novamente.
• ! seguido pelo evento ou número do comando que precede o
respectivo nome no histórico.
# !1066
cd dbs
•
!! (dois pontos de exclamação) executa novamente o último comando
aplicado.
Principais Comandos do Sistema Operacional
• gzip <file>
Compacta ou descompacta arquivos
Ex: gzip texto (compacta)
Ex: gzip -d texto.gz (descompacta)
• ls [opções]
Lista o conteúdo do diretório corrente
Ex: ls -l
Ex: ls –ltr
• kill [opções] Ids
Termina um processo específico e também reinicia um processo
Ex: kill -9 122
Ex: kill -HUP 123
Principais Comandos do Sistema Operacional
• killall name
Termina um processo
Ex: killall nome_do_processo
• less [opções] [file]
Faz a paginação de arquivos ou da entrada padrão.
Ex: less teste
Para ver o manual on-line sobre o comando ls , numerando as suas
linhas e mostrando a partir da linha 20, basta digitar:
man ls | less -N +20
Principais Comandos do Sistema Operacional
• ln [opções] file1 file2
-n não sobrescreve arquivos existentes
-f força a criação de um link mesmo que este já exista
-s cria um link simbolico
Cria um pseudonome (link) entre arquivos
Ex: ln –fn name_origem name_destino
• man <comando>
Mostra na tela explicações sobre o comando
Ex: man find
Ex: man ls
Principais Comandos do Sistema Operacional
• mkdir <diretório>
Cria um diretório
Ex: mkdir hoje
• more <file>
Mostra o conteúdo do arquivo
Ex: more teste.txt
• mv <file1> < file2 >
Move o arquivo1 para o arquivo2 e também move arquivos para
outros diretórios
Ex: mv teste.txt teste4.txt
Ex: mv teste4.txt dir1
Ex: mv dir1 dir3
Principais Comandos do Sistema Operacional
• nohup comando &
Continua executando o comando, em segundo plano
Ex: nohup comando_demorado &
• ping [site/IP]
Executa um teste de conexão para se descobrir se um determinado
equipamento de rede está funcionando
Ex: ping www.google.com.br
Ex: ping -c 5 www.google.com.br
• ps [opções]
-e lista todos os processos
-f mostra uma lista completa
Mostra os processos ativos
Ex: ps -ef
Ex: ps -aux
Principais Comandos do Sistema Operacional
• ps [opções]
-e lista todos os processos
-f mostra uma lista completa
Mostra os processos ativos
Ex: ps -ef
Ex: ps -aux
• pwd
Mostra o diretório corrente
Ex: pwd
• rm <file>
Remove arquivos
Ex: rm teste2.txt
Principais Comandos do Sistema Operacional
• rmdir <diretório >
Remove diretórios (este diretório deve estar sem arquivos)
Ex: rmdir dir2 hoje
• sleep segundos
Espera determinados segundos antes de executar outro comando.
Ex: sleep 30
• sort [opções] [files]
-b organiza em ordem numérica
-f ignora a diferença entre maiúsculas e minúsculas
-r organiza em ordem decrescente
Organiza as linhas de um arquivo texto ou da entrada padrão
Ex: sort twin.doc
Principais Comandos do Sistema Operacional
• tail [opções] [file]
-n[N] mostra a N ultimas linhas
-c
mostra os ultimos caracteres
Mostra as últimas 10 linhas(padrão) do arquivo
Ex: tail -n 2 tail1.txt ou tail -2 tail1.txt
Ex: tail -c 10 tail1.txt
• time [comando]
Mostra o resultado do comando e o tempo que levou para ser executado.
Ex: time ls -ltr
Principais Comandos do Sistema Operacional
• touch [opções] [date] files
-t datahora:muda a hora e a data para o datahora definidos.
É usado para criar arquivos. Além disso ele ainda pode mudar a data e a hora de
acesso e ou modificação de arquivos.
Ex: touch file1.txt
Ex: touch -t 201308181033.10 testando.txt
• unlimit [opções]
Permite controlar os recursos disponibilizados para o shell e pelos processos
inicializados por ele.
Ex: ulimit -a
Ex:
ulimit -f 300
ulimit -f
300
Principais Comandos do Sistema Operacional
• tar -<cvf , xvf > <filename.tar> <files>
tar -cvf (empacota arquivos)
tar -xvf (faz a extração de arquivos empacotados)
Ex: tar -cvf todos.tar *
Ex: tar -xvf todos.tar
• wc <file>
Conta as linhas,palavras ou caracteres de um arquivo
Ex: wc -l twin.doc (linhas)
Ex: wc -w twin.doc (palavras)
Ex: wc -c twin.doc (caracteres)
• which <name>
Mostra o caminho completo para os executáveis
Ex: which grads
Principais Comandos do Sistema Operacional
• whoami
Mostra o nome do usuário logado
Ex: whoami
• wget [opções] site/arquivo
-r: baixa site de forma recursiva
-F: força o arquivo de entrada a ser tratado como
arquivo HTML
-c: continua o download de onde ele parou
Baixa páginas web e arquivos da mesma
Ex: wget –r www.ositequesequerbaixar.dominio
Ex: wget www.origem.dominio/arquivos
um
Comando sed – filtra e transforma
conteúdo
Sintaxe: sed <comando/expressão> <arquivo>
O comando sed é um poderoso processador de texto que
dentre muitas de suas ações, pode substituir ocorrências de
texto por outros textos.
Por exemplo:
=> more texto.txt
Eu gosto de ler. Sem ler eu não seria nada, ficaria
completamente triste, deprimida. Também acredito que todo
ser humano precisa ler.
Comando sed – filtra e transforma
conteúdo
Agora vamos substituir a palavra ler por Linux:
sed "s/ler/Linux/g" texto.txt
Eu gosto de Linux. Sem Linux eu não seria nada, ficaria
completamente triste, deprimida. Também acredito que todo
ser humano precisa de Linux.
No exemplo acima:
•(s) procura as ocorrências de ler e transformá-las para
Linux.
•(g) substitui todas as ocorrências da linha.
Comando sed – filtra e transforma
conteúdo
Você também pode preferir substituir o texto e alterar o
arquivo diretamente (ao invés de aparecer apenas na tela).
Para fazer isso,
use o parâmetro -i:
$ sed -i "s/ler/Linux/g" texto.txt
Cuidado: O -i vai sobrescrever o arquivo original e você não
poderá usar o Ctrl+Z.
Comando sed – filtra e transforma
conteúdo
Mas combinando o -i com uma extensão, ele cria um backup
pra você antes de substituir:
sed -i.backup "s/ler/Linux/g" texto.txt
•Cria o arquivo texto.backup com o texto original, e o
arquivo texto.txt estará modificado.
•Inseri 5 espaços no incio de cada linha
cat arquivo.txt | sed 's/^/
/'
Comando sed – filtra e transforma
conteúdo
• Inclui texto no início da linha N
cat arquivo.txt | sed '10s/^/textoinserido/'
• Deleta a linha N
sed '2d‘
• Imprimi somente entre as linha N e M
cat arquivo.txt | sed '2,5!d'
• Edita linha específica do texto.
sed -i '3s/^/vento/' /home/arquivo.txt
Comando awk
• É possível gerenciar tarefas simples de "reformatar dados"
com apenas algumas linhas de código.
• Função básica do: awk é procurar por linhas (ou outras
unidades de texto) em arquivos que possuem certos
padrões
especificados no programa.
• Algumas opções do comando:
-f : especifica o nome do arquivo que possui o conjunto de
padrões a ser usado.
-F : define quem é o separador de campos (o padrão é o
espaço).
Comando awk
Exemplos:
Vamos tomar como base o arquivo teste.txt, que tem o
seguinte conteúdo:
Comando awk
Mostrar na tela a primeira coluna do arquivo teste.txt:
cat teste.txt | awk '{print $1}'
52
102
202
Ou seja,
print $1 -> Exibe a primeira coluna;
print $2 -> Exibe a segunda coluna e assim por diante;
print $NF ->Exibe a última coluna.
Comando awk
Suponha que eu necessite vasculhar esse arquivo texte.txt e
mostrar as quatro primeiras palavras .
Vou usar o comando cat para mostrar que o awk pode ser
combinado com os comandos do shell:
$ cat teste.txt | awk -F ":" '{print substr($3,1,4)}'
COLO
CALI
PERU
Comando awk
{print substr($2,1,4)}' -> Exibe a segunda coluna do primeiro
ao quarto caractere.
Após mostrar esse resultado, filtrar um campo específico, por
exemplo “Cali":
$ cat texte.txt | awk -F ":" '{print substr($3,1,4)}' | grep Cali
Comando awk
Filtrar para descobrir todos os campos de 183202 até 183206
cat texte.txt | awk '{if (($1) >= "183202" && ($1) <= "183206") print}‘
183202
183203
183204
183205
183206
Obs.: Neste último exemplo temos uma condição que deve
ser atendida, se verdadeira, exibe o resultado encontrado.
Caracteres Especiais
• >
Redireciona a saída do comando especificado
Ex: ls -la * > lista.txt
• <
Redireciona a entrada para o comando especificado
Ex: mail < conteudodoemail
• >>
Redireciona a saida do comando para o fim do arquivo
Ex: ls -la dir3 >> lista.doc
Caracteres Especiais
• $variável
Fornece o conteúdo da variável de ambiente
Ex: $PATH
• &
Faz com que um processo seja executado em background
Ex: nedit teste.txt &
• \
Anula a função do metacaracter
Ex: nedit \&
• |
Utiliza a saída do comando1 como entrada do comando2
Ex: ls -la * | wc -l
Combinações de Teclas
• Ctrl + a
Move o cursor para o início da linha de comandos
• Ctrl + e
Move o cursor para o final da linha de comandos
• Ctrl + c
Suspende a execução de um comando
• Ctrl + d
Logout de uma sessão do shell
• Ctrl + z
Suspende um programa
Edição de textos
Existe uma grande variedade de editores de texto no Linux, os
mais usados são:
•nedit <filename>
•gedit <filename>
•kedit <filename>
•vi
Transferência de arquivos via SFTP
• SFTP significa Security File Transfer Protocol, é uma
forma bastante rápida e versátil de transferir arquivos de
maneira segura.
• sftp <user@machine>
Ex: sftp gracielle@tupa
Principais Comandos SFTP
• get <file>
Baixa os arquivos do servidor
Ex: get teste.txt
• put <file>
Envia arquivos para o servidor
Ex: put teste.txt
• lcd <diretório>
Acessa o diretório local
Ex: lcd /home/curso
Principais Comandos SFTP
• cd <diretório>
Acessa o diretório remoto
Ex: cd /temp/prev
• ls
Lista os arquivos e diretorios dentro do servidor
Ex: ls
• lls
Lista os arquivos e diretorios locais
Ex: lls
Principais Comandos SFTP
• mget <files>
Baixa múltiplos arquivos do servidor
Ex: mget *.txt
• mput <files>
Envia múltiplos arquivos para o servidor
Ex: mput *.txt
• rm <file>
Apaga arquivos do servidor
Ex: rm teste.txt
Principais Comandos SFTP
• lrm <file>
Apaga arquivos localmente
Ex: lrm teste.txt
• pwd
Exibe o diretório corrente do servidor
Ex: pwd
• lpwd
Exibe o diretório corrente local
Ex: lpwd
Principais Comandos SFTP
• mkdir <diretório>
Cria um diretório no servidor
Ex: mkdir curso2
• lmkdir <diretório>
Cria um diretório localmente
Ex: lmkdir curso2
• quit
Finaliza a conexão sftp
Ex: quit
Interpretador de comandos
O Interpretador de Comandos(“Shell”) é responsável pela
decodificação e execução de comandos inseridos pelo teclado
do usuário
Para conferir qual o interpretador padrão de seus comandos,
em seu terminal digite:
echo $SHELL
O interpretador de comandos faz distinção entre letras
maiúsculas e minúsculas
Ex: (user  User)
Scripts em Shell
Um Shell Script é um arquivo de texto simples composto por diversas
linhas de comandos. Para se executar um script basta entrar com o
nome dele no prompt.
Principais tipos de shell:
Bourn Shell - é o shell padrão para Unix, ou seja, a matriz dos
outros shells, portanto é um dos mais utilizados. É
representado por "sh".
Korn Shell - este shell é o Bourne Shell evoluído, com a
vantagem de ter mais opções. É representado por "ksh".
C Shell - possui uma sintaxe muito parecida com a linguagem
C. Este tipo de shell já se distancia mais do Bourne Shell,
portanto quem programa em cshell terá problemas quanto a
portabilidade em outros tipos. É representado por "csh".
Exemplos de script
Exemplos de script (contador)
Exemplos de script
• if then fi
if [[ $value -eq 10 ]];then
print "$value is 10"
fi
ou:
if [[ $value -eq 10 ]]
then
print "$value is 10"
fi
Exemplos de script
if [[ $value -eq 10 ]];then print "$value is 10";fi
•if then else fi
if [[ $name = "John" ]];then
print "Your welcome, ${name}."
else
print "Good bye, ${name}!"
fi
Exemplos de script
•
if then elif then else fi
if [[ $name = "John" ]];then
print "Your welcome, ${name}."
elif [[ $name = "Hanna" ]];then
print "Hello, ${name}, who are you?"
else
print "Good bye, ${name}!"
fi
Executando Scripts
Para executar um script basta digitar o nome do mesmo no
prompt de comando
cd scripts
exemplo.sh
exemplo2.ksh
exemplo3.csh
Lista de Exercícios
1 - Crie um diretório chamado exercicios.
2 - Entre no diretório exercicios e crie os diretorios exe1,
exe2, exe3.
3 - Liste os diretórios.
4 - Dentro do diretório exe1, crie um script chamado
documento.csh com o com o conteúdo:
#! /bin/csh
echo “Script do exercicio: Listando diretórios”
ls -la ../../* > teste.txt
exit
5 - Exiba o conteúdo do script documento.csh.
Lista de Exercícios
6 - Configure a permissão do script documento.csh dando
permissões de leitura,escrita e execução para o usuário e
somente de leitura para grupo e outros.
7 - Execute o script documento.csh.
8 - Mova o script documento.csh para o diretório anterior.
9 - Remova o diretório exe1.
10 - Procure no script documento.csh pela ocorrência da
expressão exercicio.
11 - Copie documento.csh para documento2.csh.
12 - Limpe a tela, exiba o tamanho em KB ocupado pelo
diretório e o total de espaço disponível no disco.
Lista de Exercícios
13- Faça um script que imprima quantos processos estão
atualmente em execução na sua máqina.
1415- Crie um script que mostre o espaço utilizado pelos
arquivos dentro do seu diretório da sua conta no sistema,
colocando em ordem numérica o resultado. Use os comandos
du e sort.
Download