UNIX - BÁSICO
O que é o UNIX?
R. É um sistema operacional; uma coleção de programas projetados para controlar as interações das funções de baixo nível da máquina com os programas de aplicação.
Como é tratado um arquivo no UNIX?
R. Um arquivo pode estar disponível somente para o próprio usuário ou ser compartilhado com outros usuários. Quem decide é o usuário que cria-o. Ao digitar-se o comando "ls -l", todos os arquivos do diretório corrente serão listados. Nota-se que na primeira coluna da esquerda para direita, teremos 10 caracteres. Estes caracteres são, em ordem:
d, l, c, b - Se estiver setado, quer dizer que esse é um diretório / link / dispositivo caracterer / dispositivo bloco.
r - Se estiver setado, quer dizer que o usuário pode ler o conteúdo do arquivo.
w - Se estiver setado, quer dizer que o usuário pode escrever no arquivo.
x - Se estiver setado, quer dizer que o usuário pode executar o arquivo.
r - Se estiver setado, quer dizer que os integrantes do grupo o qual encontra-se o usuário podem ler o conteúdo do arquivo.
w - Se estiver setado, quer dizer que os integrantes do grupo o qual encontra-se o usuário podem escrever no arquivo.
x - Se estiver setado, quer dizer que os integrantes do grupo o qual encontra-se o usuário podem executar o arquivo.
r - Se estiver setado, quer dizer que os outros usuários podem ler o conteúdo do arquivo.
w - Se estiver setado, quer dizer que os outros usuários podem escrever no arquivo.
x - Se estiver setado, quer dizer que os outros usuários podem executar o arquivo.
Ex: drwxrwxrwx
Não estar setado, significa que em vez de ter uma letra na coluna correspondente, teria um "-".
Ex: -rwxr--r--
Este exemplo quer dizer que é um arquivo, onde o usuário tem permissão de leitura, escrita e execução do mesmo; onde o grupo só pode ler o arquivo, não podendo escrever e executar; e onde os outros usuários também só podem ler o arquivo, ficando sem a opção de escrever e executar o mesmo.
O usuário pode mudar essas restrições, usando o comando chmod, que será explicado posteriormente.
Comandos básicos do UNIX:
adduser - Cadastro de usuários. Comando válido somente para o superusuário.
banner - É usado para criar palavras com letras gigantes.
Ex: banner Ola Mundo
Normalmente a saída do banner é o vídeo, mas pode-se redirecionar para um arquivo:
Ex: banner Ola Mundo ola.mundo
cat - Esse comando é similar ao TYPE do DOS. Visualiza o arquivo, sem abrí-lo em um editor de texto. Pode-se usar o comando "|more", que visualiza o arquivo em páginas.
cd - Passar entre diretórios.
Ex: cd ..
Esse comando volta para o diretório mãe do diretório onde estava.
Ex: cd
Esse comando volta para o diretório home.
Ex: cd/users
Esse comando passa do diretório atual para o diretório users se ele existir.
chfn - Esse comando muda informações do finger.
Ex: chfn
Muda informações como nome, trabalho, telefone do trabalho e telefone de casa.
chgrp - Esse comando é usado para mudar o atributo de pertinência de grupo de um arquivo.
Ex: chgrp novo_grupo nome_do_arquivo
chmod - Esse comando é usado para mudar o modo de acesso de um arquivo
Ex: chmod quem+-que nome_do_arquivo
Ex: chmod go-rw arquivo
Essa linha de comando faz com que o arquivo "arquivo" retire(-) as permissões de leitura(r) e escrita(w) do grupo(g) e dos outros(o). Quer dizer que os usuários do mesmo grupo e os outros não terão mais acesso sobre o arquivo.
Opções:
"quem" => u - usuário; g - grupo; o - outros.
"+-" => + dá permissão; - retira permissão.
"que" => r - ler(read); w - escrever(write); x - executar.
chown - Esse comando é usado para passar a proriedade de um arquivo para outra pessoa. Para mudar a propriedade de uma arquivo, o usuário tem de ser dono do arquivo. Se o usuário mudar acidentalmente a propriedade, tem de pedir ao novo usuário que mude a propriedade de volta.
Ex: chown novo_dono nome_do_arquivo
clear - Limpa tela.
cp - O comando cp é usado para duplicar arquivos. Copia um ou vários arquivos.
Ex: cp arquivo1 arquivo2
Arquivo1 é o arquivo de entrada da operação de cópia, e o arquivo2 é a saída produzida. Arquivo1 e arquivo2 devem ter nomes distintos; se tiverem o mesmo nome, então será emitida uma mensagem de diagnóstico indicando que são identicos, e o arquivo não será copiado sobre si mesmo. Se o arquivo2 já existia, seu conteúdo será substituído pelo conteúdo do arquivo1.
Sintaxe: cp [-ipr] <arquivo> [arquivo ...] <destino>
Parâmetros:
-i - Pede confirmação para cada arquivo a ser copiado.
-p - Mantém na cópia as datas de modificação e permissões do arquivo original.
-r - Copia recursivamente arquivos e diretórios. Neste caso destino deve se referir a um diretório.
Exemplo: cp -r ~/leonardo/html/ /www
date - Esse comado permite ver a data.
Ex: date
O comando date também permite trocar a hora do sistema.
Ex: date 1225123097
Este comando quer dizer que o relógio do sistema passa a marcar 12:30 horas do dia 25 do mês de dezembro (12) de 1997 (97).
Exercício:
Verifique a data do sistema, e troque, se for necessário.
env - Comando usado para obter uma lista do conteúdo do ambiete shell do usuário. O conteúdo é formado por cadeias que compões as variáveis do shell e seus valores.
Ex: env
find - Este comando é uma maneira fácil e poderosa de localizar objetos no sistema de arquivos do UNIX. O comando find tem muitas opções.
Ex: find / -name Systems -print
Esse exemplo instrui o comando find para começar a busca na raiz do sistema de arquivos ( / ), localizar todas as ocorrências de arquivos chamados Systems ( - name Systems), e exibir os resultados na saída padrão ( -print ).
Ex: find /usr/tsm -name Sis* -print
Este outro exemplo, procura a partir do diretório /usr/tsm todos os arquivos que tenham começo com Sys.
ftp - Protocolo de Transmissão de arquivos.
Ao entrar em algum endereço de ftp, e o mesmo pedir um cadastro e uma senha, o usuário deve-se cadastrar como anonymous, e entrar como senha qualquer palavra, seguido de @, pois ele estará pedindo um e-mail como senha.
Para copiar arquivos que o usuário tenha no sistema LINUX para o sistema W95, o usuário deve entrar no aplicativo ftp ( Iniciar - Programas - Internet - FTP), acessar a máquina dinf, com o comando open dinf, e digitando o seu login e sua correspondente senha. O usuário automaticamente irá para seu diretório home, onde o usuário tem permissão de gravar arquivos. Então, é só copia-los, como se estivessem em uma máquina qualquer ( bin - hash - get ou mget ).
Principais comandos:
open <nome_máquina> => permite acesso na máquina especificada.
bin => Seta modo de transferência binário.
cd <diretorio> => Muda de diretório.
get remote.file <local.file> => Download o arquivo.
hash => Mostra o sinal: #, a cada bloco transmitido.
lcd <drive: diretório> => Seta o diretório local.
ls -lF |more => Lista os arquivos com paradas na tela.
mget <arquivos> => Download de vários arquivos
put local.file <remote.file> => Upload o arquivo.
bye => Sair.
Exercício:
Buscar no endereço da Universidade de Santa Maria (ftp.ufsm.br) os arquivos listao.txt.gz e listao.arj, que localizão-se no diretório /pub/vest97.
grep - É a base da família de comandos grep(grep,egrep,fgrep). É um filtro que examina os arquivos de entrada em busca de padrões. Quando um batimento é encontrado, a linha que o contém é gravada na saída padrão, a menos que seja impedido por uma das opções. Múltiplos arquivos podem ser processados concorrentemente especificando-se seus nomes na linha de comando, embora usulamente seja usado em um arquivo por vez.
Ex: grep opções expressão arquivo(s)
As opções são:
* -c : produz contagem das linhas que contém o padrão;
* -i : instrui o grep a não lvar e conta a diferença entre letras maiúsculas e ninúsculas.
* -l : especifica que somente devem ser exibidos os nomes dos arquivos que contém o padrão. Útil quando se processa grande quantidade de arquivos.
* -n : ativa a numeração de linhas, na exibição das linhas que batem.
* -s : causa a supressão das mensagens de erro quando são encontrados arquivos que não podem ser lidos ou quando não são encontrados os arquivos especificados.
* -v : instrui o grep a imprimir na saída padrão todas as linhas, exceto aquelas que não contém o padrão.
Se o usuário quiser ver sua entrada em um arquivo como o /etc/passwd, não é necessário listar o arquivo inteiro, ou editá-lo. O camando a seguir poderia ser usado para produzir a informação desejada:
Ex: grep ‘tsm’ /etc/passwd
Tabela de Tipos de Arquivos:
Obs.:
zip e unzip são os equivalentes ao pkzip e pkunzip para DOS / Windows.
gunzip - Esse comando é usado para descompactar arquivos com extenções ".gz", ".tgz", ".taz", ".tar.gz" e "tar.Z".
Ex: gunzip nome_do_arquivo
Esse comando pode ser substituído por gzip -d ou zcat.
Exercício:
Descompactar o arquivo listao.txt.gz, que foi buscado por ftp na UFSM. Logo após, copie o arquivo para o diretório c: e visualize-o no MS-WordPad.
gzip - Esse comando é usado para compactar arquivos. É criada então a extensão ".gz".
Ex: gzip nome_do_arquivo
Cria-se então, o arquivo "nome_do_arquivo.gz".
Para descompactá-lo, usa-se o comando gzip -d, gunzip ou zcat.
Exercício:
Compactar o arquivo listao.txt, que foi buscado na UFSM e descompactado por gunzip.
Outros:
Arquivos .ps PostScript é da Adobe Systems usado para traçar gráficos tridimensionais ou não em impressoras e vídeos.
kill - Esse é o comando usado para encerrar processos ativos no sistema UNIX. Não há um programa equivalente no DOS, porque o DOS é um sistema monotarefa. Para eliminar um processo, o usuário deve ter autorização. Apenas os processos iniciados pelo usuário podem ser por ele eliminados. O superusuário tem autorização para eliminar qualquer processo, inclusive o 0.
Ex: kill -9 137
Neste exemplo, o processo com ID 137 seria imediatamente encerrado e retirado da memória. A opção -9 é um tiro imediato e fulminante.
Para saber o número do processo a ser excluído, o comando é ps.
ln - Esse comando é usado para criar ligações (nomes alternativos) para outro arquivo. Quando uma ligação é criada para um arquivo ou outra ligação, todas as mudanças nas ligações são, na realidade, mudanças no arquivo ao qual estão ligadas. Cria links a arquivos ou diretórios.
A instrução ln cria o nome meuperfil para o arquivo /usr/tsm/.profil. Qualquer referência ao arquivo meuperfil é, na realidade, uma referência à /usr/tsm/.profile. A ligação pode ser removida com qualquer um dos seguintes comandos:
* unlink meuperfil
* rm meuperfil
Ex: ln /usrtsm/.profile meuperfil
ln [-fs]
ln [-fs] [arquivo ...]
Parâmetros:
-f Cria o link mesmo se o arquivo destino não exista ou não estiver acesível.
-s Cria um link simbólico (soft link).
Obs: ln pode criar tanto links simbólicos (soft links) como diretos (hard links); ln cria links diretos por default.
ls - É a listagem dos arquivos e diretórios do corrente diretório.
Ex: ls
Opções:
* -l : listagem em formato de lista;
* -a : listagem dos arquivos ocultos ( arquivos que inicial com "." );
* -d : listagem dos diretórios;
* -r : ordem reversa;
Ex: ls -la
Esse comando faz uma listagem de todos os arquivos, inclusive os ocultos, em forma de lista.
mail - Esse comando permite ver os mail’s recebidos.
Ex: mail
man - Comando que chama o manual com a descrição de todos os parâmetros do comando fornecido.
Ex.: man <comando>
mcopy - Comando este, que transfere um ou mais arquivos para um drive específico. Comando específico para trabalhar com disquetes em formato DOS.
Ex: mcopy arq a:\
mkdir - Comando usado para criar diretórios. É um dos comandos fundamentais do UNIX, e todos os usuários devem conhecê-lo.
Ex: mkdir novodir
Para criar um diretório em um local específico, é o seguinte.
Ex: mkdir /usr/tsm/novodir
mv - O comando é usado para mover um arquivo de um local para outro. Ele funciona de forma similar ao comando cp, exceto que o fonte é apagado depois do arquivo ser copiado. O comando mv deve ser usado com cuidado. Se o arquiv de destino já existir, o mv gravará em cima incondicionalmente. Além disso, se vários arquivos estiverem sendo movidos ao mesmo tempo, o alvo deve existir; caso contrário, o comando mv emitirá um diagnóstico.
Ex: mv /usr/tsm/mbox /usr/wbu
Nesse exemplo, o arquivo que está sendo copiado é /usr/tsm/mbox, e o destino é o diretório /usr/wbu, que já existia. No finalda operação, mbox não existirá mais no diretório /usr/tsm.
passwd - Esse comando permite ao usuário trocar sua própria password.
OBS: Essa nova password deve conter números e letras, e não apenas um deles. O comando passwd não aceita password’s "fáceis" de descobrir.
Ex: passwd
Depois de dar o comando, o sistema pedirá para digitar a password antiga. Após digitar, o sistema pedirá a nova password. Então digite o que você quiser. Repita a password. Se a mensagem for "Password Changed", deu certo.
pine - Aplicativo que visualiza, envia, recebe e escreve-se fax.
Ex: pine
Principais Funções:
? Help;
C Composição de Mensagens;
I Visualizar Mensagens que estão na Pasta Corrente;
L Selecionar Pasta de Mail’s;
A Endereços Particulares;
S Setup;
Q Exit.
C Composição de Mensagens:
To : <endereço do destinatário>
Cc : <endereço de quem manda>
Attachment : <arquivos que o usuário deseja enviar com o mail>
Subject : <título do mail>
---------------- Message Text -------------
<mensagem>
L Selecionar Pasta de Mail’s:
Para visualizar um mail novo, selecione a Pasta INBOX.
Exercício:
Mandar um mail para um usuário vizinho.
ping - Esse comando vê a comunicação entre seu terminal e o endereço desejado.
Ex: ping www.ibm.com
Esse comando é necessário saber, pois com ele, verifica-se a velocidade da rede e se ela está parada. Para sair, click Ctrl-C.
Exercício:
Compare as velocidades de transmissão de dados dos endereços:
- www.microsoft.com
- www.unijui.tche.br
ps - A finalidade do comando ps é reportar a situação de processos ativos no UNIX. O comando ps tem várias opções. As opções -e e -f são de maior interesse para os desenvolvedores, já que reportam todas as informações disponíveis para todos os processos. Essas opções são especificadas como -ef, que produz oito colunas de informação, como segue (as principais):
* Coluna UID: identifica a ID do dono do processo. A ID correspondente ao nome de conexão do usuário, como especificado em seu registro no etc/passwd.
* Coluna PID: identifica o número de ID do processo. É preciso conhecer esse número para tomar qualquer atitude com relação ao processo, como usar o comando kill.
* Coluna PPID: identifica o pai do processo.
* Coluna STIME: indica a hora em que o processo foi iniciado.
* Coluna TTY: indica o terminal de controle associado ao processo, e podem conter o caracter ?, significando que o processo não tem um terminal de controle.
* Coluna TIME: indica o tempo total de execução que o processo acumulou desde quando foi começado.
* Coluna COMMAND: descreve o nome do processo, indicando qual comando que está sendo executado, bem como seus argumentos.
Ex: ps -ef
pwd - Esse comando é usado para mostrar o diretório corrente, e é, na realidade, um acrônimo de print working directory (mostre o diretório de trabalho).
Ex: pwd
rm - Este comando é usado para remover arquivos do sistema de arquivos do UNIX. As opções são -f, -r e -i. A ação padrão, quando nenhuma opção é indicada, é tentar remover os objetos especificados. Cuidado com o uso de curingas, pois pode ter conseqüências desastrosas! Ao entrar este comando, esteja absolutamente certo do diretório em que será executado.
Ex: rm *
Este comando deleta tudo o que estiver no diretório corrente. Cuidado com esse comando.
rmdir - Esse comando é usado para remover somente diretórios vazios, e é uma forma relativamente segura de remover diretórios. Supondo que o diretório chamado "/usr/scr/cmd/lixo" não contenha arquivos, o comando a seguir pode ser usado para removê-lo do sistema de arquivos:
Ex: rmdir /usr/scr/cmd/lixo
Nesse exemplo, lixo deve ser um diretório, senão haverá uma mensagem de erro.
talk - Esse comando dá a permissão de conversar com outro usuário por meio do teclado. O outro usuário necessariamente deve estar logado no sistema UNIX.
Ex: talk <nome_do_usuario>@acd.ufrj.br
Para sair, Ctrl-C.
tar - Compacta vários arquivos, transformando em apenas um.
Ex: tar cvf backup.tar *
"Backup.tar" é o nome do arquivo criado.
* são os arquivos a serem compactados.
telnet - Terminal remoto. Emula um terminal virtual do servidor remoto. Possibilita conectar-se em outros computadores da Internet com plataforma Unix.
Ex: telnet www.unig.br
Esse comando conecta o usuário com o servidor "www.unig.br". Ao receber mensagem indicando conexão, o sistema irá pedir o seu login. Se o usuário estiver cadastrado no servidor, somente digita-se seu login e sua password. Se estiverem corretas, o usuário entrará no sistema automaticamente em seu diretório HOME.
traceroute - Esse comando traça toda a rota que o servidor faz para chegar em um endereço www.
Ex: traceroute www.ibm.com
O comando acima traça a rota de servidores até chegar no endereço ibm.com.
vi - O comando chama o editor visual, que é um editor de texto de tela cheia. Esse editor é falto de alguns recursos e carece do resplendor disponível nos ambientes DOS e IBM de grande porte, mas mesmo assim, o vi é uma ferramenta útil e poderosa.
Comandos:
Comandos:
w - Esse comando lista os usuários que estão logados no sistema UNIX. A lista mostra o login, a hora em que foi o usuário logou-se, o aplicativo em que encontra-se e a quanto tempo, entre outras informações. Ex: w
wc - O comando wc é também chamado o comando de contagem de palavras. Ele pode contar e informar a quantidade de caracteres, palavras e linhas do(s) arquivo(s) especificado(s).
Ex: wc arquivo
who - O comando who é usado para determinar a quantidade e identidade dos usuários que estão utilizando o sistema UNIX no momento. Além do nome dos usuários, pode também informar a hora de abertura da sessão; o terminal (registro/dev); o PID do interpretador de comando do usuário; e outras informações, todas obtidas no arquivo /etc/utmp que é dinamicamente modificado à medida que cada usuário abre ou fecha uma sessão. Ex: who para saber quem está logado no terminal, digite:
Ex: whoami
Siglas
FTP - File Transfer Protocol
HTML - Hipertext Markup Language
HTTP - Hipertext Transfer Protocol
ICMP - Internet Control Message Protocol. Controle entre gateways e hosts.
IRC - Internet Relay Chat
TCP-IP - Transmission Control Protocol / Internet Protocol.
ARP, Rarp, ICMP, IGMP, UDP, SMTP, RPC, FTP, Telnet, DNS, SNMP, TFTP.
TCP - Serviço de transporte orientado à conexão
IP- Serviço de rede não orientado à conexão (protocolo do tipo datagrama)
NFS – Network File System – Esquema de compartilhameto de diretórios em rede.
Slip / PPP - Protocolos utilizados na conexão entre dois computadores via modem e linha telefônica.
SLIP - Serial Line IP. Comunicação ponto a ponto assíncrono.
SMPT – Simple Mail Transfer Protocol.
UDP - User Datagram Protocol. Funcionalidades mais simplificadas que o TCP. ex.: DNS
URL - Uniform Resource Locators
WWW - World Wide Web