Você está na página 1de 67

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 curso curso 4096 Jan  29 10:30  Arquivos
-rwxrw-r--   1 curso curso   4096 Dec 16 10:41  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 Descrição

Cada modo de acesso tem um -


x
0
1
Nenhuma permissão
Execução
valor numérico associado a w 2 Gravação

ele conforme a tabela : 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

Octal Escrita Dono Grupo Outros


777 rwxrwxrwx rwx rwx rwx
755 rwxr-xr-x rwx r-x r-x
700 rwx------ rwx --- ---
666 rw-rw-rw- rw- rw- rw-
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 um
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
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
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.
14-
15- 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.