Escolar Documentos
Profissional Documentos
Cultura Documentos
Uma das vantagens do interpretador de comandos consiste em o usuário não precisar saber onde
estão localizados os programas que deseja executar. No caso do 'bash' (linha de comando), o nome
do arquivo e o comando são completados quando pressionada a tecla 'TAB' no teclado, o que é útil
quando não se sabe ao certo o nome do comando ou do arquivo.
3.3 - PATH
Path (caminho) é um programa de computador que procura os arquivos ou comandos executáveis
no intuito de aplicar diferenças textuais aos programas, deixando claras as modificações executadas
pelo caminho. Esse programa facilita o processo de revisão e avalia o desempenho dos
programadores.
Para procurar um arquivo, você pode utilizar o seguinte exemplo: o caminho
'/usr/local/bin:/usr/bin:/Bin:usr/bin/X11' significa que se você digitar o comando 'ls' na frente do
caminho, o interpretador de comandos iniciará a procura de programa 'ls' em todos os diretórios
existentes no computador. Caso não encontre o arquivo até o último diretório do 'path', a seguinte
mensagem é mostrada: "Bash: ls: comand no found" (comando não encontrado).
Outra maneira de procurar um arquivo não encontrado é usando um './' (ponto barra) na frente do
comando. Esse procedimento diferencia o Linux do MS-DOS do Windows, uma vez que o comando
é sempre procurado no diretório corrente, antes de ser procurado no 'path'.
Sendo assim, o caminho de diretórios vem configurado na instalação do Linux, mas, pode ser
alterado no arquivo '/etc/profile'. Caso deseja alterar o caminho para todos os usuários, este é o
melhor lugar, pois ele é lido por todos no momento do login.
Caso você queira saber o valor de uma variável específica, basta digitar o comando que imprimirá o
conteúdo da variável PATH. A seguir listaremos três maneiras de mudar o valor de uma variável de
ambiente:
1 – Com o comando export podemos tanto alterar o valor de uma variável de ambiente, quanto criar
novas variáveis. Exemplo: “export PATH=$PATH:/home/user/bin”
2 – Com o comando set configuramos o valor de uma variável de ambiente existente. Exemplo: “set
PATH=$PATH:/home/user/bin”
3 – Também podemos escrever apenas “PATH=$PATH:/home/user/bin” na linha de comando.
Todos esses pontos de montagem irão se localizar hierarquicamente abaixo de um único diretório-
raiz. No Linux é representado pela '/' (barra), onde cada ponto de montagem precisa,
obrigatoriamente, utilizar uma partição, mas essa não precisa ser exclusiva.
Por exemplo, tendo quatro partições primárias é possível ter quatro pontos de montagem
independentes. Além disso, note que qualquer outro ponto de montagem não especificado será
montado dentro da raiz ('/').
Outro ponto de montagem necessário para que o Linux seja instalado e funcione corretamente é o
da partição 'swap'. Tal partição é conhecida como zona de troca e auxila no armazenamento dos
dados que estão em transição entre a memória e o disco do computador. Essa zona é muito
importante para instalação e funcionamento de qualquer distribuição Linux, além disso, aumenta o
desempenho do sistema de maneira formidável.
Outra vantagem do Linux, sobre os demais sistemas operacionais, é o que ele pode fornecer com
essas características.
Ainda é possível utilizar pontos de montagens separados por discos, aumentando assim o
desempenho do sistema e alterando a maneira e o local onde os dados serão armazenados.
Se você tiver mais de um HD será possível espalhar esses pontos de montagem pelos HDs
existentes em seu computador.
Esse tipo de procedimento deve ser bem pensado e bem executado durante a instalação do sistema,
mas também faz parte de um processo de tunning, ou seja, ajuste fino.
O Linux, como os sistemas UNIX, não trabalha com a ideia de volumes lógicos como em alguns
outros sistemas, por exemplo, o MS-DOS da Microsoft, que representa a unidade de disco rígido e a
unidade de disquetes como dois volumes lógicos diferentes.
Todos os componentes, como: unidade de disquete, CDROM, impressora, HD, entre outros, são
concebidos por arquivos. Para localizá-los é só ir no '/dev', na árvore de diretórios do Linux. Isto é,
quando o programa precisa ler ou escrever em um desses elementos, ele lê informações e escreve no
arquivo que representa aquele componente, que neste caso é o 'device'.
No entanto vimos que o Linux tem somente uma árvore de diretórios, mas seus arquivos podem
estar em componentes diferentes do computador, como por exemplo, uma partição do HD, disquete,
etc. Para unir todos esses 'devices' em uma única estrutura de diretórios, existe o comando 'mount',
que monta todos os dispositivos, na qual veremos mais informações a seguir.
4.2 – O Comando MOUNT
-a: Montar todos os dispositivos especificados no arquivo '/etc/fstab' que não tem a opção 'noauto'
selecionada.
-r: Montar o sistema de arquivos do dispositivo como “somente leitura”.
-w: Montar o sistema de arquivos do dispositivo como leitura e gravação.
-o: Especificar as opções de montagem.
-t: Especificar o tipo do sistema de arquivos do dispositivo.
Opção Descrição
Auto Habilita o dispositivo para que seja montado na inicialização.
Noauto Desabilita o dispositivo montado na inicialização.
ro Monta o sistema de arquivos somente como leitura.
rw Monta o sistema de arquivos para leitura e gravação.
Exec Habilita a execução de arquivos no sistema de arquivos especificados.
Noexec Desabilita a execução de arquivos.
Possibilita que qualquer usuário monte o dispositivo, mas proíbe outros usuários de
User
desmontá-lo.
Users Possibilita que qualquer usuário monte e desmonte o dispositivo.
Nouser Somente o superusuário (root) pode montar e desmontar.
Sync Habilita a transferência de dados síncrona no dispositivo.
Async Habilita a transferência de dados assíncrona no dispositivo.
Dev Dispositivo especial de caracteres.
Suid Habilita que os executáveis tenham bits do ‘suid’ e ‘sgid’.
Nosuid Desabilita que os executáveis tenham bits do ‘suid’ e ‘sgid’.
Defaults Configura as opções de montagem como rw, suid, Exec, Auto, Nouser e Async.
teste@Tux:/tmp$ rm*
Remove todo o conteúdo do diretório /tmp.
Atenção: Muito cuidado com esse comando, pois, se usado de maneira errada pode causar
problemas para o usuário.
5.2.2 - Comando cp
O comando 'cp' é usado para copiar diretórios ou arquivos. Confira algumas opções mais usadas:
• -d: Mantém os links ao copiar.
• -p: Copia todas as informações dos atributos dos arquivos e diretórios, bem como dono,
permissão, grupo, etc.
• -p: Copia todas as informações dos atributos dos arquivos e diretórios, bem como dono,
permissão, grupo, etc.
• -R: Copia os arquivos recursivamente. Útil para copiar os arquivos e diretórios abaixo do
diretório especificado.
• -a: Faz o mesmo que as opções "-dpR" combinadas.
• -f: Força a cópia, gravando por cima do destino.
• -i: Pergunta ao usuário antes de copiar.
• -v: Mostra o nome de cada arquivo que está sendo copiado.
Exemplos:
teste@Tux:$ cp arquivo1 arquivo2
Nesse exemplo estamos copiando o arquivo1 para arquivo2 no mesmo diretório.
teste@Tux:$ cp arquivo1 /tmp
Nesse exemplo estamos copiando o arquivo1 para o diretório /tmp.
teste@Tux:$ cp -Rfv /home /tmp
Nesse exemplo podemos copiar todo o diretório /home e todos os seus subdiretórios para o diretório
/tmp.
5.2.3 - Coringas
Os coringas são usados quando estamos trabalhando com arquivos de diretórios do Shell. Sendo
muito comum precisarmos trabalhar com diversos arquivos ao mesmo tempo.
Para que o procedimento se torne simples, o Linux oferece o recurso de coringa para os nomes dos
arquivos e diretórios.
Símbolo Descrição
Usado para "qualquer coisa", ele pode substituir um ou mais caracteres
*
de um nome.
? Usado para substituir um caractere somente de um nome.
Usado para substituir as partes dentro da chave {}, pelo texto1, depois
{texto1, texto2, texto3...}
texto2, depois texto3, etc.
Exemplos:
teste@Tux:$ ls *.txt
Lista todos os arquivos que possuem a extensão '.txt'.
5.2.4 - Redirecionadores
Um dos esquemas interessantes no Linux são os redirecionadores. Como o Linux inicialmente foi
criado para fins mais técnicos, era essencial que os comandos e processos tratassem as entradas e
saídas com grande facilidade.
Antes de começar com os exemplos é preciso definir o que são Entrada Padrão, Saída Padrão e
Saída de Erro.
Entrada Padrão ('stdin') - É a entrada de fluxo de dados. Pode ser representado por 0 (zero).
Saída Padrão ('stdout') - É a saída de fluxo de dados em condições normais. Pode ser representado
por 1 (um).
Saída de Erro ('stderr') - É a saída de fluxo de dados em condições de erro. Pode ser representado
por 2 (dois).
Podemos redirecionar a Entrada Padrão de uma saída para outra saída, utilizando o sinal de maior
(>) e, para direcionar, uma entrada para outra entrada usamos o sinal de menor (<). Ainda assim,
podemos redirecionar uma saída para uma entrada usando uma barra vertical. O sinal é 'pipe'(|) ou
condutor.
Exemplos:
teste@Tux:$ ls > saida.txt
No exemplo acima usamos o comando 'ls', como já vimos antes, porém, aqui ele pega todo o
resultado de retorno e grava no arquivo 'saida.txt'.
teste@Tux:$ mail "meuemail@domain.com" < email.txt
Já nesse exemplo, o programa 'mail' está recebendo como argumento o endereço de e-mail e, ao
invés de utilizar o teclado como entrada padrão, o arquivo texto 'email.txt' é redirecionado como
entrada.
teste@Tux:$ ls -l | more
Nesse exemplo, os resultados do 'ls' são repassados ao comando 'more', paginando assim os
resultados.