alberto felipe friderichs barros · nos exemplos, a palavra existente antes do símbolo @ diz qual...

55
SHELL Alberto Felipe Friderichs Barros

Upload: hoangliem

Post on 10-Dec-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

SHELL

Alberto Felipe Friderichs Barros

Page 2: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Os três componentes principais de um sistema operacional são o kernel,o shell e o sistema de arquivos.

Introdução

Page 3: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

A tradução de Shell para português neste caso, significa "concha" ou"casca". Na informática é a interface entre o usuário e o kernel. Refereaos interpretadores de comandos dos sistemas Unix e seus similares.

Shell

Page 4: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Os dois tipos mais comuns de shells são a interface gráfica do usuário(GUI) e a interface de linha de comando (CLI).

Shell

Page 5: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

O Windows normalmente usa um shell GUI, principalmente usando omouse para indicar o que você quer fazer. Embora a utilização de umsistema operacional dessa maneira possa ser considerada fácil, hámuitas vantagens em usar uma CLI, incluindo:

• Comando Repetição: Em um shell GUI, não há nenhuma maneira fácilde repetir um comando anterior. Em uma CLI, há uma maneira fácil derepetir e também um comando anterior.

Shell

Page 6: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

• Flexibilidade de Comando: O shell GUI fornece flexibilidade limitada naforma como o comando é executado. Em uma CLI, as opções sãoespecificadas com comandos para fornecer uma interface muito maisflexível e poderosa.

• Recursos: Um shell GUI geralmente usa uma vasta quantidade derecursos (RAM, CPU, etc.). Isso ocorre porque uma grande quantidadede poder de processamento e memória é necessária para exibirgráficos. Em contrapartida, uma CLI usa recursos de sistema muitopequenos, permitindo que mais desses recursos estejam disponíveispara outros programas.

Shell

Page 7: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

• Scripting: Em um shell GUI, concluir várias tarefas geralmente requervários cliques do mouse. Com uma CLI, um script pode ser criado paraexecutar muitas operações complexas digitando apenas um único"comando": o nome do script. Um script é uma série de comandoscolocados em um único arquivo. Quando executado, o script executatodos os comandos no arquivo.

• Acesso Remoto: Embora seja possível executar comandos remotamenteem um shell GUI, esse recurso geralmente não é configurado por padrão.Com um shell CLI, obter acesso a uma máquina remota é fácil enormalmente disponível por padrão.

Shell

Page 8: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

• Desenvolvimento: Normalmente, um programa baseado em GUI levamais tempo para os desenvolvedores criarem quando comparados aosprogramas baseados em CLI. Como resultado, normalmente há milharesde programas CLI em um sistema operacional Linux típico, enquantoapenas alguns centenas de programas em um sistema operacionalbaseado principalmente em GUI, como o Microsoft Windows®. Maisprogramas significa mais poder e flexibilidade.

Shell

Page 9: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

O Windows foi projetado para usar principalmente a interface GUI por causade sua simplicidade, embora existam várias interfaces CLI disponíveis,também. Para comandos simples, existe a caixa de diálogo Executar, ondevocê pode digitar ou procurar os comandos que deseja executar. Se vocêquiser digitar vários comandos ou se você quiser ver a saída do comando,você pode usar o prompt de comando, também chamado de shell do DOS.Recentemente, a Microsoft percebeu como é importante ter um ambiente delinha de comando e introduziu o Powershell.

Shell

Page 10: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

O Linux também possui uma CLI e uma GUI. Ao contrário do Windows, oLinux permite que você altere facilmente o shell GUI, também chamado deambiente de área de trabalho que você deseja usar. Os dois ambientes dedesktop mais comuns para Linux são: GNOME e KDE,

Shell

Page 11: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Gnome

Page 12: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

KDE

Page 13: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Cinnamon

Page 14: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Unity

Page 15: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Xfce

Page 16: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Xlde

Page 17: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Mate

Page 18: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Para acessar a CLI a partir da GUI em um sistema operacional Linux, ousuário pode abrir um programa de software chamado terminal. O Linuxtambém pode ser configurado para executar somente a CLI sem a GUI; Issonormalmente é feito em servidores que não requerem uma GUI,principalmente para liberar recursos do sistema.

Shell

Page 19: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

O Linux também oferece vários shells: Bourne Shell (sh), Bourne Again Shell(Bash), Korn Shell (ksh), C Shell (csh)...

Shell

Page 20: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Por padrão, muitas distribuições Linux usam bash para o shell de um novousuário. Um administrador pode usar o comando usermod para especificarum shell padrão diferente após a criação da conta. Como usuário, você podeusar o comando chsh para alterar seu shell padrão. O local onde o sistemaarmazena o shell padrão para contas de usuário é o arquivo /etc/passwd.

Shell

Page 21: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Muitos sistemas Linux, especialmente servidores, não estão configuradospara fornecer uma GUI por padrão, o sistema executará automaticamenteuma aplicação de terminal após o início de sessão.

Shell

Page 22: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Se você estiver em um local remoto, conexões pseudo-terminal tambémpodem ser feitas através da rede usando várias técnicas. protocolos comotelnet e programas como rlogin e conexões seguras com o ssh.

Shell

Page 23: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Terminal é a classe de programas que traz uma interface gráfica ao shell,dentre os programas terminal, alguns dos mais conhecidos são: gnome-terminal, xterm, konsole.

Terminal

Page 24: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Para o usuário, um sistema de arquivos é uma hierarquia de diretórios earquivos. Para o sistema operacional, um sistema de arquivos é umaestrutura criada em uma partição de disco constituída por tabelas quedefinem as localizações de diretórios e arquivos.

Sistemas de Arquivos

Page 25: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Um sistema de arquivos é um conjunto de estruturas lógicas que permite osistema operacional controlar o acesso a um dispositivo de armazenamentocomo disco rígido, pen drive, CD-ROM, etc. Diferentes sistemasoperacionais podem usar diferentes sistemas de arquivos. Atualmente, oNTFS é o sistema de arquivos padrão do Windows, enquanto o ext4 é o doLinux.

Sistemas de Arquivos

Page 26: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Sistema operacional Tipos de sistema de arquivos suportados

Dos FAT16

Windows 95 FAT16

Windows 98 FAT16, FAT32

Windows 2000/XP FAT, FAT16, FAT32, NTFS

Windows 7 e posterior NTFS

Linux Ext2, Ext3, ReiserFS, Linux Swap (FAT16, FAT32, NTFS)

MacOS HFS (Hierarchical File System), MFS (Macintosh File System)

Tipos

Page 27: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

No Linux, um diretório (corresponde ao conceito de pasta do Windows) podeter outros diretórios ou arquivos. Dizemos que um diretório é filho de outrodiretório quando ele está logo abaixo do diretório em questão. O diretórioque está um nível acima é chamado de diretório pai.

Sistemas de Arquivos

Page 28: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

bin - diretório com os comandos disponíveis para os usuários comuns.

boot - diretório com os arquivos do boot de inicialização.

dev - diretório com as definições dos dispositivos de entrada/saída.

etc - diretório com os arquivos de configuração do sistema.

home - diretório que armazena os diretórios dos usuários do sistema.

lib - diretório com as bibliotecas e módulos do sistema.

mnt - diretório usado para montagem de partições.

Sistemas de Arquivos

Page 29: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

proc - diretório com informações sobre os processos do sistema.

root - diretório home do root.

sbin - diretório com os aplicativos usados na administração do sistema.

tmp - diretório com arquivos temporários.

usr - diretório com aplicativos e arquivos utilizados pelos usuários

var - diretório com arquivos de dados variáveis (spool, logs, etc).

Sistemas de Arquivos

Page 30: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

O Linux é case sensitive, ou seja, ele diferencia letras maiúsculas e

minúsculas. Em um mesmo diretório, não podem existir dois arquivos com o

mesmo nome ou um arquivo com mesmo nome de um subdiretório. Os

diretórios no Linux são especificados por uma "/".

Sistemas de Arquivos

/HOME /home

Page 31: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Para usar o Linux é preciso que o usuário digite seu nome e sua senha,

login. No UNIX um arquivo de senha é usado para guardar informações

possuindo uma linha para cada usuário no diretório /etc/passwd

Login

Page 32: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Quando um terminal é acessado, uma informação aparece no campo deinserção de comandos. É importante saber interpretá-la. Para isso, veja osexemplos abaixo:

Exemplo 1: root@debian:~#

Exemplo 2: alberto@debian:~$

Login

Page 33: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Exemplo 1: root@debian:~#

Exemplo 2: alberto@debian:~$

Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome dousuário que está usando o terminal. O caractere que aparece no final indicaqual o "poder" do usuário. Se o símbolo for #, significa que usuário temprivilégios de administrador (root). Por outro lado, se o símbolo for $,significa que este é um usuário comum, incapaz de acessar todos osrecursos que um administrador acessa.

Login

Page 34: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Um terminal virtual é uma segunda sessão de trabalho completamenteindependente de outras que pode ser acessado no computador local ouremotamente. No Linux, em modo texto, você pode acessar outros terminaisvirtuais segurando a tecla <ALT> e pressionando <F1> a <F6>.

Terminais Virtuais

Page 35: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Programa de software que, quando executado na linha de comando, executauma ação no computador. Quando você digita um comando, um processo éexecutado pelo sistema operacional que pode ler entrada, manipular dados eproduzir saída. Nesta perspectiva, um comando executa um processo nosistema operacional, que faz com que o computador execute um trabalho.

Comandos

Page 36: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Sintaxe: Comando -opção /Pasta

Exemplo: Ls -a /home

Page 37: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Help

Exemplo: Ls --help

Opção de Ajuda

Page 38: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Desligando

halt: desliga o computador.

reboot: reinicia o sistema imediatamente.

shutdown -r now: reinicia o computador

shutdown -h now: desliga o computador

Obs: O parâmetro now pode ser mudado. Por exemplo: digite shutdown -r

+10 e o sistema irá reiniciar daqui a 10 minutos;

Page 39: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Auto-completar

Para facilitar a utilização do terminal, repare que as setas cima e baixo no

teclado podem ser utilizadas para navegar entre os últimos comandos

digitados; e, ao pressionar TAB duas vezes consecutivas, o terminal muitas

vezes pode lhe oferecer opções de como auto-completar nomes de

comandos e nomes de arquivos.

Exemplo: Cle [TAB] [TAB] = Clear

Page 40: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

A man page ou simplesmente man é um recurso valioso para sedescobrir a forma correta de uso (sintaxe) de programas, suas opçõesou entender o que um programa faz. Utilize as setas para navegar nomanual e a tecla ‘q’ para sair. Para executar este programa, bastadigitar man seguido do nome do programa que se deseja inspecionarcomo no exemplo abaixo:

Man Page

Page 41: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

cal: exibe um calendário.

date: mostra a data e a hora atual.

clear: limpa a tela, apaga seu conteúdo.

history: mostra os últimos comandos digitados.

df: mostra as partições usadas.

free: mostra utilização de memória

top: mostra os processos em execução na memória.

Comandos de Verificação

Page 42: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

fdisk: informações sobre partições

hdparm: informações detalhadas sobre HDs

swapon: informações sobre memória virtual (swap)

cat /proc/cpuinfo: informações sobre o processador

uname: informações de versão do kernel, arquitetura e outros

lspci: mostra informações sobre dispositivos PCI

lsusb: mostra informações sobre dispositivos USB

Comandos de Verificação

Page 43: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Entre na pasta home de seu usuário e crie um diretório chamado Linux,dentro deste diretório abra um arquivo chamado comandos.txt em seguidaedite-o e inclua o seguinte texto: “Em qualquer distribuição Linux, por serum sistema multiusuário, cada usuário possui seu login e seu diretórioHOME. Esta área é privada para cada usuário, onde seus arquivos ficamarmazenados”.

Exercício 1

Page 44: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

cd: acessa uma determinada pasta .

mkdir: cria um diretório.

rm: remove um arquivo/diretório.

ls: lista todos os arquivos do diretório.

cat: abre um arquivo.

vi: abre o editor vi para editar/criar arquivos

Comandos de Manipulação

Page 45: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Torne-se superusuário do sistema, renomeie o arquivo comandos.txt paraexercício.doc, crie um diretório chamado bkp no raiz e realize uma cópia desegurança do arquivo exercício.doc para o diretório \bkp.

Exercício 2

Page 46: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

O sistema de arquivos no Linux trabalha com conjunto de permissões.Para cada arquivo ou diretório. A permissão é vista em três níveis: usuáriodono do arquivo (user), grupo que tem privilégios sobre o arquivo (group)e outros usuários (others)

root@debian:~$ ls –l /home

-rwxrwxrwx 1 root root 10 Abr 12 15:02 exercício.doc

Permissão

Page 47: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Permissão

"On a UNIX system, everything is a file; If something is not a file, it is a process."

Page 48: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

chown: Modifica os donos de arquivos e diretórios

chmod: Modifica as permissões dos arquivos e diretórios

chgrp: modifica o grupo do arquivo.

Ex: CHMOD 777 /home/exercício.doc

Permissão

Page 49: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Fazendo associação com as letras r, w, x e - vamos entender cada uma:

r: significa permissão de leitura (read);

w: significa permissão de gravação (write);

x: significa permissão de execução (execution);

-: significa permissão desabilitada.

Permissão

Page 50: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Atenção:

---: nenhuma permissão;

r--: permissão de leitura;

r-x: leitura e execução;

rw-: leitura e gravação;

rwx: leitura, gravação e execução.

Permissão

Page 51: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Permissão Binário Decimal

--- 000 0

--x 001 1

-w- 010 2

-wx 011 3

r-- 100 4

r-x 101 5

rw- 110 6

rwx 111 7

Permissão Octal

Page 52: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Outra Forma:

chmod u+w exercício.doc

O "u" indica que a permissão será dada a um usuário. O sinal de adição(+) indica que está sendo adicionada a permissão e "w" indica que apermissão que está sendo dada é de gravação.

Permissão

Page 53: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

chmod g=rwx exercício.doc

O “g" indica que a permissão de leitura, execução e gravação seráatribuída ao grupo do qual o arquivo faz parte.

Permissão

Page 54: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

useradd: comando utilizado para criação de um usuário.

userdel: comando utilizado para remoção de um usuário.

usermod: comando usado para modificar os dados de um usuário.

groupadd: comando usado para criar um grupo.

groupdel: comando usado para remover um grupo.

groupmod: comando usado para modificar os dados de um grupo.

passwd: comando usado para definir e ou modificar a senha de um usuário.

Usuários

Page 55: Alberto Felipe Friderichs Barros · Nos exemplos, a palavra existente antes do símbolo @ diz qual o nome do usuário que está usando o terminal. O caractere que aparece no final

Crie um usuário chamado linux e deixe-o como dono do arquivoexercício.doc em seguida altere a permissão deste arquivo para quesomente o dono tenha acesso completo, demais usuários e grupos nãoterão acesso a este arquivo.

Exercício 3