Translate

terça-feira, 2 de outubro de 2012

Configurando o terminal


terminal pode ser um terminal no sentido estrito do termo, conectado ao computador por uma linha serial, ou então o próprio console da máquina, ou uma aplicação como o xterm emulando um terminal dentro doXwindows,
A configuração do terminal é necessária para executar aplicativos como editores de texto visuais, ou para os comandos de teclado como backspace serem corretamente reconhecidos. Essa configuração envolve aconfiguração do driver do sistema, feita através do comando stty e o informe da aplicação, normalmente feito através da variável TERM. Vejamos exemplos de situações onde uma delas ou ambas são necessárias, e como realizá-la:

  1. Ao pressionar a tecla backspace, ao invés de ser apagado o caracter anterior, surge na tela os caracteres ``^H''. Solução:
    $ stty erase ^H
  2. Ao executar o more ou o vi, algumas linhas permanecem escondidas, ou o scroll comporta-se de forma errática. Solução: cheque quantas linhas (vamos supor: 24) e quantas colunas (vamos supor: 80) o seu terminal/emulador possui e execute
    $ stty rows 24 cols 80
  3. Após o uso de alguma aplicação, os caracteres aparecem trocados ou o eco deixou de funcionar, ou quando pressiono enter o cursor permanece na mesma linha. Tentativa de solução:
    $ stty sane
  4. Ao tentar executar uma aplicação, a mensagem de erro terminal capability cm required, ou Terminal type is not defined, ou Terminal type is not powerful enough, ou outra semelhante foi exibida. Solução: cheque o tipo de terminal que você está usando ou emulando (dificilmente será algo diferente de xterm ou vt100) e atribua para a variável de environment TERM esse valor.


Diretórios Principais do Sistema

No Unix não há o conceito de nomes de drives, como C:, mas todos os paths partem de uma raiz comum, o root directory ``/''. Quando a máquina possui vários discos diferentes (ou ao menos várias partições diferentes de um mesmo disco), cada uma delas em geral corresponderá a uma subárvore do filesystem, como /usr/var ou ainda nomes não standard como /disco2, que são chamados de seus pontos de montagem. O comandomount executado sem parâmetros listará os diferentes dispositivos físicos montados (discos locais e remotos e suas partições) e a subárvore correspondente a cada um deles. A tabela que indica todas essas montagens é o arquivo /etc/fstab. Apesar de algumas pequenas diferenças de plataforma para plataforma, os diretórios principais do sistema são:
/bin
/sbin
/etc
/home
/lib
/proc
/tmp
/usr
Binários básicos, como sh e ls.
Binários básicos de administração do sistema.
Arquivos de configuração do sistema e scripts de boot.
Os diretórios dos usuários residem aqui.
Bibliotecas básicas.
Estado corrente do sistema e dos processos.
Arquivos temporários.
Demais binários e bibliotecas.

O termo básico aplicado acima aos diretórios /bin e /lib quer significar principalmente essenciais para o boot e operação mínima do sistema. A separação desses elementos básicos, em contraposição aos que são deixados no /usr, deve-se a razões práticas, principalmente para facilitar a organização de redes de máquinas compartilhando subárvores de diretório. De fato, é comum que o diretório /usr ao invés de estar replicado em todas as máquina da rede esteja residindo fisicamente num único disco, e sendo compartilhado por todas as máquinas.


Atributos e Nomes de Arquivos

No Unix cada arquivo (inclusive diretórios, que são casos particulares de arquivos), conta com um conjunto de atributos de leitura, escrita e execução, que são setáveis através do comando chmod, e podem ser exibidos pelo comando ls -l:

$ ls -l /bin/cat
-rwxr-xr-x   1 root     root        16584 Dec 16 20:09 /bin/cat
string -rwxr-xr-x representa os atributos do arquivo /bin/cat. O primeiro caracter (-) significa que se trata de um arquivo regular, em contraposição aos diretórios (d), device special files (c) e links simbólicos (l). Os 9 caracteres restantes informam as permissões de leituraescrita e execução desse arquivo relativas ao seu proprietário, ao seu grupo, e a todos os demais. O proprietário e o grupo são informados logo à direita, e no caso são o usuário root e o grupo root.
Note que no Unix não existem os atributos de arquivo oculto ("hidden") e do sistema ("system"), suportados no MS-DOS. Não obstante, arquivos cujo primeiro caractere é ponto (".") normalmente são omitidos pelo ls, a não ser que se utilize a opção -a (de "all"), conforme comentamos no início.
Um atributo importantíssimo existente no Unix é o chamado setuid, através do qual um processo adquire ao ser executado os privilégios do owner do arquivo. Isso é frequentemente utilizado por programas que são disparados por usuários não privilegiados mas que por algum motivo necessitam dos privilégios do superusuário, por exemplo:

  $ ls -l /usr/sbin/pppd
  -rwsr-xr-x  1 root   bin   104876  Apr 27  1998 /usr/sbin/pppd
Sem os privilégios de superusuário, um usuário comum não conseguiria configurar a interface ppp e nem alterar a tabela de rotas do sistema, no momento em que se conecta ao provedor Internet. Assim, opppd, ao ser executado, requisitará os privilégios do owner do arquivo, que no caso é o superusuário, e dessa forma ele poderá realizar essas operações.
No Unix via de regra são suportados nomes ``longos'' (até 64 ou às vezes até 256 caracteres), e o ``.'' não é um separador entre o nome do arquivo e sua extensão, mas um caracter como os outros. Não obstante, a noção de ``sufixo'' é utilizada informalmente para facilitar a identificação de alguns formatos de arquivos, por exemplo:
.tar
.zip
.Z
.gz
Archive produzido com tar
Archive comprimido produzido com zip
Arquivo comprimido com compress
Arquivo comprimido com gzip

Archives (o termo não tem correspondente em português) são concatenações de vários arquivos ou de subárvores inteiras num único arquivo. Em Unix, tipicamente são produzidos com tar:

$ tar cvf /tmp/etc.tar /etc
$ tar tvf /tmp/etc.tar /etc
$ cd  /tmp; tar xvf etc.tar
O primeiro comando irá criar o archive /tmp/etc.tar, composto por toda a subárvore /etc. O segundo exibirá o conteúdo desse archive. O terceiro irá extrair todo o seu conteúdo dentro do diretório /tmp, ou seja, recriará aquela mesma subárvore como uma subárvore do diretório /tmp.


Intercambiando Disquetes com o MS-DOS

Via de regra as plataformas Unix-like oferecem ferramentas para lidar com disquetes ``formatados'' no MS-DOS (ou, mais precisamente, disquetes que usam FAT). Um set de ferramentas bastante popular é o mtools, que oferece clones das ferramentas do MS-DOS. Exemplos de uso:
$ mformat a:
$ mcopy a:relat.txt .
$ mdir a:
Versões recentes dessas ferramentas lidam também com o VFAT do Windows 95, que permite nomes de arquivos ``longos''.O intercâmbio de arquivos texto entre Unix e MS-DOS deve ser feito com cuidado. Por herança das antigas impressoras, o fim-de-linha no MS_DOS é codificado através de dois caracteres (CR e LF), enquanto no Unix há apenas um (o LF), além do que o final do arquivo é sinalizado no MS-DOS por um CTRL-Z. O mcopy possui a opção -t para realizar essas conversões quando copia de ou para disquetes.

Nenhum comentário:

Postar um comentário