Mini-tutorial Shell

Lista de comandos e suas respectivas descrições. Muito útil para iniciantes em Linux e shell script.

[ Hits: 35.520 ]

Por: Leonardo Weslei Diniz em 20/05/2008 | Blog: http://www.agilesoft.com.br/


Primeiros passos



TUTORIAL DE SHELL SCRIPT
Desenvolvido por Leonardo Weslei Diniz
Email: exterminador3@gmail.com
Nick na comunidade Viva o Linux: exterminador3

Comandos

man: Comando que nos mostra o manual de um outro comando.

Uso: man [seção] comando

Observe que seção é opcional, mas pode ser:
  1. Comandos do usuário
  2. Chamadas ao sistema
  3. Biblioteca de funções
  4. Dispositivos
  5. Formatos de arquivos
  6. Jogos
  7. Informações gerais
  8. Administração do sistema

Exemplo de uso:

$ man 1 ls

Utilize /palavra para procurar e "q" para sair.

--help: Essa opção é aceita em vários comandos e retorna um tópico de ajuda ao usuário.

info: Funciona como o man e serve para o mostrar informações a respeito do comando. logout: Fecha a shell do usuário. Este comando é utilizado quando se termina sua sessão ou para se trocar de usuário.

shutdown -r now: Comando utilizado para reiniciar a máquina. Possui alguns similares: reboot, init 6, Ctrl + Alt + Del. Existe também o "shutdown -h now", que desliga a máquina. Seus similares: halt, init 0.

su: Utilizado para se trocar de usuário sem efetuar logout. Muito comum em acessos via rede, já que via rede por default o root não pode se logar.

Usa-se também su -c "comando a executar" para se executar um comando com poderes de root e depois retornar. Obviamente será pedida uma senha.

Uso do su:

$ su nomeDoUsuárioAseVirar

ls: Comando que serve para listar arquivos. Suas opções mais utilizadas são:
  • -la, onde o -l significa listar as permissões (inclusive) e o -a para listar todos os arquivos (lembrando que para o Linux arquivos começados com . são ocultos).

OBS: O Conectiva Linux possui um alias chamado l para o comando ls -la, use-o e caso a sua distribuição não contenha tal alias, crie-o. Veja mais adiante como fazê-lo.

cd: Comando para mudar-se de diretório. O deslocamento absoluto se tem quando utilizamos a raiz (/) para indicarmos para onde queremos ir. Por exemplo, imaginemos que estamos no diretório /usr/src/linux e desejamos ir para o diretório /usr/src/teste. Temos duas opções, a seguir:
  • cd /usr/src/teste - Deslocamento absoluto, observe o uso do / no início do diretório para o qual queremos ir;
  • cd ../teste - Deslocamento relativo, perceba que se estivéssemos em um outro diretório (/usr) por exemplo, não iríamos cair onde queremos. Daí a convenção de "relativo".

cp: Copia arquivos. Use: "cp arquivoASerCopiado novoArquivo". Opções interessantes:
  • -i - Pede confirmação antes de substituir um arquivo existente;
  • -R - Cópia recursiva. Serve para copiar diretórios e seu conteúdo.

mv: Move arquivos. Use-o também para renomear. Uso: "mv arquivo novaLocalizacao/", "mv arquivo novoNome". Recomendado:
  • -i - Confirma antes de substituir um arquivo existente.

OBS: No Conectiva Linux existe um alias tanto para o comando cp como para o mv com a opção -i.

alias: Cria um apelido para um comando. Tem precedência sobre o comando, ou seja, pode-se criar um alias do tipo: alias ls="ls -la". Toda vez que digitarmos ls na verdade ele executará ls -la.

clear: Limpa a tela. Recomenda-se a criação de um alias chamado c para este comando.

mkdir: Comando para a criação de diretórios. Usa-se o -p caso se queira criar uma "árvore" de diretórios.

mktmp: Cria uma pasta temporária, acrescenta-se -d caso queira criar diretórios normais.

rmdir: Complemento do comando mkdir. Serve para remover um diretório vazio. A opção -p serve para remover uma árvore de diretórios vazia (sem arquivos).

rm: Comando utilizado para apagar arquivos. Observe que o rm simplesmente não apaga diretórios. Sua opção -r indica para apagar recursivamente, ou seja, ir apagando todos os arquivos em subdiretórios e inclusive os próprios diretórios. A opção -f força apagar, e não emite mensagens de erro caso não exista um arquivo.

who (w, whoami): O comando who e w listam os usuários que estão logados na máquina. O w tem uma saída um pouco mais complexa, mostrando mais informações. O comando "who is god" é uma sátira e retorna o nome de seu usuário. O comando whoami (pode ser escrito who am i) também retorna o nome de seu usuário e é utilizado para saber com qual usuário você está logado, muito usado quando se utiliza o su e acaba se confundindo quem é você.

df: Mostra informações de sistemas de arquivos montados (mesmo CDROM e disquete).

free: Mostra informações de memória (swap inclusive).

cat /proc/cpuinfo: Informações muito completas de seu processador.

setterm: Este comando serve para modificar configurações do terminal do Linux, tais como cor de fundo e cor da letra. Ex:

$ setterm -background green # Fundo Verde
$ setterm -foreground yellow # Letra "amarela"

OBS: Este comando mudará a cor a partir do momento em que ele for dado, ou seja, você precisa imprimir algo na tela ou dar um clear para realmente mudar a cor. Ah, e não funciona em modo gráfico.

tput: Utilizaremos este comando para posicionar o cursor na tela onde quisermos. Ele será muito útil quando estivermos construindo shell scripts. Ex:

$ tput cup 5 10 # Posiciona o cursor na linha 5 coluna 10.

uptime: Mostra a quanto tempo o sistema está ligado. Os maiores uptimes da internet são com máquinas UNIX.

ps: Comando que lista os processos em execução no sistema. Recomenda-se sempre utilizá-lo com as opções AUX, para que liste TODOS os processos ativos no sistema.

kill: Serve para matar um processo em execução. Deve-se utilizar um dos sinais existentes para esta tarefa. O sinal padrão é o sinal 15. Após o sinal, deve-se informar o PID (identificador único de processos) do processo que se deseja matar (encerrar).

killall: Implementação do Linux muito interessante. Permite-se que se mate diversos processos com o mesmo nome de uma única vez. Observe que pode utilizá-lo para matar um único processo pelo nome, desde que se tenha o cuidado de perceber se não existem outros processos com este nome. Ex:

$ killall httpd
$ killall -9 vi


touch: Cria um arquivo texto vazio. Muito interessante na hora de se testar alguma coisa. Uso: touch nomeDeArquivoaCriar nomeDeArquivoaCriar2 ... Pode-se criar diversos arquivos de uma única vez.

find: Busca arquivos. Muito avançado. Uso: find DirAProcurar opções. Exemplos de uso:

$ find / -name nome_do_arquivo # Procura a partir da raiz (no sistema todo) o arquivo "nome_do_arquivo"

$ find /home -exec grep "teste" {} \; -exec ls -la {} \ # Procura a partir do diretório /home arquivos com o conteúdo teste (grep teste) e lista este arquivo (ls -la).

$ find /usr -type l -ok rm -rf {} \; # Procura no diretório /usr links (-type l) e caso encontre, confirma se deve ou não apagar (-ok rm -rf).

Consulte o manual para informações mais interessantes.

locate: Busca arquivos, mas utiliza uma base de dados como padrão, o que o torna muito rápido. Cuidado! Atualize sempre sua base de dados ou irão aparecer arquivos que já foram removidos em suas buscas.

Outro problema do locate é o fato de que ele busca qualquer ocorrência da palavra a buscar, ou seja, se você fizer locate a, ele irá listar TUDO no sistema que contém a letra a. Para atualizar sua base de dados utilize: updatedb. Para buscar utilize: "locate oqbuscar".

top: Método interessante de se visualizar os processos ativos na máquina. Use:
  • M --> Ordenar por consumo de memória;
  • P --> Ordenar por consumo de CPU.

vi ou vim (editor de textos): Ótimos editores de textos. As opções vistas foram:
  • ESC :w - Salva arquivo;
  • ESC :x - Salva e sai;
  • ESC :q - Sai quando você não alterou nada;
  • ESC :q! - Sai sem salvar;
  • ESC /palavra - Procura palavra;
  • ESC n - Procura pela próxima ocorrência de palavra.

jobs: Lista os processos que estão em segundo plano, retornando o número do processo de segundo plano, que deverá ser utilizado para trazê-lo de volta.

fg: Comando que trás de volta um processo do segundo plano. Uso: fg IdDeProcessoRetornadoPeloJobs ln: Este comando cria um link (atalho) entre diretórios e arquivos. Um link simbólico (opção -s) nada mais é do que um arquivo no HD que aponta para a área onde está o arquivo original. Se o original é apagado, o link fica "quebrado". Já um link direto (apenas ln) dá um outro nome para a mesma área do HD. Como um backup contra remoção indevida, no entanto usa-se o mesmo espaço do HD, referenciando-no de duas maneiras diferentes. Crie e compare. Um link direto não pode ser feito entre diretórios.

Uso:

$ ln -s Original Link
$ ln Original Link


chmod: Comando que muda as permissões de um arquivo. Estas podem ser vistas através do comando ls -l.
  • R - Permissão de leitura. Para diretórios, pode listar seu conteúdo pode;
  • W - Permissão de escrita;
  • X - Permissão de execução. Para diretórios, pode entrar nele.

Ex: chmod -R +rwx pasta
  • A opção -R manda dar a permissão recursivamente a todos os arquivos e subdiretórios deste diretório em questão;
  • +rwx à Está-se dando todas as permissões, pode ser substituído por um simples 7;
  • -rwx à Está-se tirando todas as permissões, pode ser substituído por um simples 0.

umask: Comando que muda a máscara de permissões padrão para a criação de arquivos e diretórios. Seu uso será explicado mais adiante, apenas em modo OCTAL e não CARACTERE. O modo CARACTERE foi explicado no curso básico, mas não o será nesta apostila.

chown: Utilizado para mudar o DONO e o GRUPO dono de um arquivo ou diretório.

Uso: chown novodono:novogrupo arquivoOudiretorio

Observe que a opção :novogrupo pode ser omitida ou trocada por .novogrupo.

Também aqui existe a opção -R.

chgrp: Utilizado para mudar apenas o grupo dono de um arquivo. Uso: chgrp novogrupo ArquivoOuDiretório

groupadd: Permissão que adiciona um grupo. Um grupo nada mais é do que a união de diversos usuários com as mesmas características. Por exemplo, poderíamos ter um grupo estudantes ou alunos. Para adicionarmos este grupo, devemos utilizar o comando:

# groupadd vivaolinux

No arquivo /etc/group será adicionada uma entrada vivaolinux, e será dado um GID (identificador de grupo) a este grupo.

useradd: Permissão que adiciona um usuário.

Qualquer pessoa que for utilizar o Linux deve necessariamente possuir um usuário válido na máquina. Lembrando que NÃO devemos utilizar o root a menos que necessário, esta tarefa é importantíssima mesmo para usuários caseiros. Adicionando:

# useradd leonardo vivaolinux

Adicionamos o usuário leonardo no grupo vivaolinux.

    Próxima página

Páginas do artigo
   1. Primeiros passos
   2. Atalhos
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Shell Script para WEB

Introdução ao Shell Script - Baseado no livro de Ken O. Burtch

Personalize seu shell na entrada de seu logon

Slackware - Script de instalação de programas

As maravilhas do Shell Script

  
Comentários
[1] Comentário enviado por cesar em 20/05/2008 - 11:46h

Legal,

Abraço.

[2] Comentário enviado por GilsonDeElt em 20/05/2008 - 13:08h

Legal, cara!

Os 'scripteiros de plantão' que nem eu agradecem!

Abraço!

[3] Comentário enviado por removido em 20/05/2008 - 16:43h

Ótimo para que eu comece a usar o shell. Existirá uma continuação?

[4] Comentário enviado por michel5670 em 20/05/2008 - 18:37h

Muito bom colega seu artigo, quanto mais documentação melhor

[5] Comentário enviado por removido em 21/05/2008 - 10:46h

eu gostei, 10 p vc !!!!!!!!!

[6] Comentário enviado por leonardoweslei em 21/05/2008 - 12:03h

Bom galera eu não sei mta coisa não mas o que sei procuro estar sempre tentando passar adiante.
Obrigado pelos elogios.

[7] Comentário enviado por forcelan em 24/05/2008 - 22:01h

Gostei ... vc e o cara
depois manda uns comandos volatdos pra redes em linux...

[8] Comentário enviado por gcarlos90 em 08/08/2008 - 16:04h

Ótimo .. mtuuu 10 !!!
É bom até pra quem começou a usar Linux, ter uma base !!!
Parabéns.

[9] Comentário enviado por gcarlos90 em 08/08/2008 - 16:04h

Ótimo .. mtuuu 10 !!!
É bom até pra quem começou a usar Linux, ir aprendendo !!!
Parabéns.

[10] Comentário enviado por rodrigoclira em 12/02/2009 - 15:51h

Muito boom .
Quero aprender shell script pra poder
facilitar tarefas repetitivas no console.


Rodrigo Cesar

[11] Comentário enviado por fdmarp em 17/03/2009 - 19:42h

Legal, bem objetivo. Esse é pra levar no bolso.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts