Noções de UNIX

A janela apresenta os principais comandos utilizados em UNIX, problemas e mensagens de erro encontrados decorrentes da utilização.


Consulte também:
Suporte ao SPRING
Sobre as interfaces
Instalação do SPRING
Configurações do SPRING
Cópias reserva - backups



Introdução e Comandos UNIX

Seu computador consiste de dois módulos, o "hardware" e o "software". O hardware representa o equipamento físico: monitor, teclado, discos, processador, memória e outros dispositivos. O software representa o conjunto de programas, que o hardware executa, com determinado fim.

O software de um computador pode ser de dois tipos:


O sistema operacional é o programa de sistema mais fundamental, pois ele controla todos os recursos do computador e fornece a base sobre a qual os programas de aplicação podem ser escritos. O sistema operacional é uma camada de software colocada em cima do hardware de modo a esconder as complexidades inerentes a este mesmo hardware, como pode ser visto na figura abaixo.


unix_01.gif - 5709 Bytes

As principais tarefas de um sistema operacional são as seguintes:

Estas tarefas são realizadas através de um conjunto de instruções fornecido pelo sistema operacional. Estas instruções são denominadas de "system calls" (chamadas do sistema) as quais são responsáveis pela interface com o programa do usuário, e formam o que é conhecido como o "kernel" do sistema operacional.


Noções de UNIX


O Interpretador de Comandos shell

Um sistema operacional como o UNIX é o responsável pela implementação das chamadas do sistema. Os editores, compiladores, assemblers, linkers e interpretadores de comando não fazem parte do sistema operacional. O interpretador de comando, denominado shell, embora não faça parte do sistema operacional, utiliza com muita freqüência as suas características e serve como um bom exemplo de como as chamadas do sistema podem ser usadas. O shell é a interface principal entre um usuário no terminal e o sistema operacional.

O shell é o primeiro programa a ser rodado quando se faz o login (entrar no sistema).

Existem vários shells do UNIX, os mais populares estão em dois grupos: o Bourne Shell (ou Korn) e o C Shell.

Para saber que tipo de shell se esta usando, observe se o UNIX exibir um sinal de $ depois que você fez o login, você possui o Bourne Shell; se o UNIX exibir um sinal de %, você esta usando o C Shell. Tradicionalmente o System V usa o Bourne Shell (executável de nome "sh") e o BSD usa o C Shell (executável de nome "csh").

Os shells normalmente usam caracteres especiais para evitar a digitação de comandos longos.


ex: 	!! significa repetir o último comando digitado (só funciona no C Shell)
	!c significa repetir o último comando iniciado pelo caracter "c".


Descendentes do BSQ (Berkeley Software Distribution)


Versões do sistema operacional UNIX

Existem várias versões do UNIX. Quatro versões são predominante, as quais as principais são o BSD e o System V.

1- Berkeley Software Distribution (BSD)

2- AT&T UNIX System V

3- Microsoft Xenix, System V

4- OSF/1

5- Linux

Sistema operacional livre inicalmente desenvolvido por Linus Torvalds. Atualmente há várias distribuições do sistema, para diversas plataformas, desde mainframes até um relógios de pulso, passando por várias arquiteturas: Intel , StrongARM , PowerPC , Alpha etc., com grande penetração também em dispositivos embarcados , como handheld , PVR, vídeo-jogos e centrais de entretenimento etc.

 


Popularidade do UNIX

Uma das grandes razões do uso do UNIX é a sua capacidade de utilização em redes. Outros sistemas operacionais necessitam de um software adicional. No UNIX esta capacidade é parte do sistema operacional e é ideal para e-mail, www e conexão com a internet.

UNIX foi baseado na filosofia "smal is good" no projeto de um sistema. A idéia que cada programa execute bem uma única tarefa. Assim o UNIX é um sistema operacional flexível e fácil de adaptar-se a necessidades específicas.

O sistema operacional UNIX foi escrito numa linguagem (C) independente do código de máquina. Assim o UNIX foi portado para uma grande variedade de plataformas. Devido a esta característica como um sistema operacional aberto.


Vantagens do UNIX

Noções de UNIX



Sessão de Trabalho

Login

Senha (password)

Logout

Noções de UNIX



Conceitos sobre arquivos

Arquivos

O arquivo é a unidade básica de um sistema operacional. Os arquivos em UNIX podem dos seguintes tipos:


Diretórios

O diretório é um arquivo que contém outros arquivos. Um diretório pode conter outros diretórios.

ex: /usr/games/chess
	- games contém o arquivo chess e é filho de usr
	- o diretório usr contém o subdiretório games e é seu pai.


Sistema de arquivos

Todo sistema operacional UNIX é organizado em uma série de sistema de arquivos hierárquicos. O sistema de arquivo root é o que está localizado no topo da hierarquia da árvore de sistema de arquivos. Normalmente tem-se os seguintes arquivos e diretórios.

/bin		/dev		/etc		/tmp		/usr
/boot		/export		/home		/mnt		/var

onde:

Permissões de arquivos

Tudo que se faz em UNIX depende das permissões dadas aos arquivos. O conceito de permissões de arquivos determina quais os usuários que podem manipular um determinado arquivo ou diretório. As seguintes permissões são associadas com um arquivo e diretório:

a) Permissão de leitura (r):

b) Permissão de escrita (w):

c) Permissão de execussão (x) (somente para arquivos)

d) Permissões de "search" (diretório somente)

As permissões de arquivos são apresentadas quando se utiliza o comando "ls -l" e são apresentadas como mostra o exemplo a seguir.

ex: drwxr-xr-x   2   mario   users   1024   Oct  14  18:33   arquivo1

onde:


Veja como mudar as permissões de arquivos mais a frente.


Noções de UNIX


Manipulação de Arquivos (principais comandos)

cd pwd mkdir rmdir ls more cat cp rcp mv rm

Criação de arquivos


chmod

chown ln
Noções de UNIX


Outros Comandos

A seguir apresentamos outros comandos e alguns argumentos normalmente utilizados em C shell.

Normalmente, os comandos mostram os seus resultados na tela, ou seja, o terminal é conhecido como a saída padrão dos comandos (standard output). Da mesma forma, usualmente, os comandos operam sobre os dados que estão sendo introduzidos pelo teclado, ou seja. o terminal é a entrada padrão do comando (standard input).

Redireção da saída padrão

Redireção de entrada padrão

Pipes e pipelines

Um pipe ocorre quando a saída de um comando é direcionada como entrada para outro. Um pipeline é uma seqüência de pipes.

ex:
ls /etc | wc		= onde wc mostra o número de linhas, palavras e caracteres do diretório /etc.


Redireção do erro padrão

Quando um comando é executado sem problemas, ele produz resultados na saída padrão, Mas, quando o comando encontra problemas na sua execução, ele utiliza um canal diferente para enviar mensagens de erro para o terminal. Este segundo canal, chamado de erro padrão (standard error), pode também ser redirecionado.

Para redirecionar o erro padrão para o mesmo destino da saída padrão, basta adicionar um (&) no símbolo de redireção de saída, ou seja: >&

Para que um comando seja executado sem apresentar nenhuma mensagem de erro, utilize a seguinte sintaxe:

comando >& /dev/null

Para separar o erro padrão da saída padrão, utilizar a seguinte sintaxe:

(comando > arquivo) >& errorfile

Quando se quer forçar para que a saída apareça no terminal, ela pode ser redirecionada para /dev/tty

comando >& /dev/tty


Processos, PIDs e Daemons

Após cada comando ser interpretado pelo C Shell, um processo independente, com um número de identificação (PID), é criado para realizar o comando. O sistema usa o PID para acompanhar o status de cada processo.


ps


kill Alias

Execução em background

grep
Noções de UNIX



Mensagens de erro do UNIX

Arg List too long


Broken pipe


Device or resource busy


Different file system


File exists


File table overflow


File too large


Illegal option


Insufficient arguments


I/O error


Login incorrect


No such file or directory


No such process


No more processes


No espaço left on device


Not a diretory


Not enough space


Permission denied


Read-only file system


Too many links


Usage ...



Noções de UNIX