alberto felipe friderichs barros · nos exemplos, a palavra existente antes do símbolo @ diz qual...
TRANSCRIPT
SHELL
Alberto Felipe Friderichs Barros
Os três componentes principais de um sistema operacional são o kernel,o shell e o sistema de arquivos.
Introdução
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
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
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
• 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
• 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
• 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
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
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
Gnome
KDE
Cinnamon
Unity
Xfce
Xlde
Mate
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
O Linux também oferece vários shells: Bourne Shell (sh), Bourne Again Shell(Bash), Korn Shell (ksh), C Shell (csh)...
Shell
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Sintaxe: Comando -opção /Pasta
Exemplo: Ls -a /home
Help
Exemplo: Ls --help
Opção de Ajuda
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;
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
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
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
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
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
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
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
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
Permissão
"On a UNIX system, everything is a file; If something is not a file, it is a process."
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
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
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
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
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
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
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
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