Mini-tutorial Shell

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

[ Hits: 37.722 ]

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 1 - Básico

Programando em shell script (conceitos básicos)

Introduzindo um pouco mais a fundo o shell script (revisado)

Bitwise - Escovando os bits

Pipelines (Canalizadores)

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts