IST - Física HowTo - Informática 11:01
2025-12-22
  Sistema Operativos
 
     Linux
 
        Administração
 
        Comandos POSIX
 
        Shells
 
        Admin. Utilizador
 
        Ubuntu / Debian
 
        Fedora
 
        Mint
 

Linux: Comandos POSIX

Sumário
1. Introdução
2. Pipelines (pipe): Encadear processos num só comando
3. Redirecionamento da escrita e leitura
4. 'alias' :- Permite definir sinónimos
5. 'ar' :- Comando para juntar ficheiros, usado especialmente em bibliotecas
6. 'at' :- Execução de ficheiros a uma determinada hora
7. 'cat' :- Permite criar, juntar e mostrar ficheiros
8. 'cd' :- Muda a pasta de trabalho para outra pasta
9. 'chattr' :- Permite definir e alterar os atributos de um ficheiro
10. 'chgrp' :- Altera o 'group' de ficheiros
11. 'chmod' :- Altera as proteções de ficheiros
12. 'chown' :- Altera o 'user' e o 'group' de ficheiros
13. 'cksum' :- Gera um checksum de 32 de um ficheiro
14. 'cmp' :- Compara dois ficheiros
15. 'cp' :- Copia ficheiros e pastas
16. 'dd' :- Copia ficheiros e cria imagens em discos flexíveis, rígidos, etc.
17. 'df' :- Mostra os 'devices' montados e seus atributos
18. 'diff' :- Compara ficheiros ou pastas e mostra as diferenças
19. 'du' :- Mostra o espaço de disco ocupado pelos ficheiros numa pasta
20. 'file' :- Determinar o tipo de dados num arquivo, isto é, o tipo de ficheiro
21. 'find' :- Pesquisa ficheiros numa pastas e sub-pastas
22. 'fuser' :- Mostra os processos que utilizam um determinado ficheiro ou 'device'
23. 'less' :- Mostra um ficheiro no ecrã. Permite usar as setas
24. 'ln' :- Cria uma ligação (link simbólico) entre ficheiros
25. 'ls' :- Lista os ficheiros da(s) pasta(s) escolhidas
26. 'lsattr' :- Mostra os atributos de um ficheiro
27. 'lsof' :- Lista os descritores dos ficheiros abertos pelos processos em execução
28. 'mkdir' :- Cria uma pasta
29. 'more' :- Mostra um ficheiro no ecrã
30. 'mv' :- Move ficheiros ou altera nome de pasta ou ficheiro
31. 'pax' :- Utilitário de arquivamento. Uma espécie de junção do 'tar' com o 'cpio'
32. 'pwd' :- Mostra no ecrã a pasta em que se encontrar
33. 'rm' :- Apaga um ou mais ficheiros (e eventualmente pastas)
34. 'rmdir' :- Remove uma pasta
35. 'sed' :- Utilitário de edição de texto não interactivo
36. 'split' :- Utilitário para dividir um ficheiro em partes
37. 'tee' :- Lê do 'standard input' e escreve no 'standard output'
38. 'touch' :- Serve para alterar a data e hora de um ficheiro
39. 'type' :- Mostra como um comando era usado se fosse dado na linha de comandos
40. 'umask' :- Define as permissões para os novos ficheiros e pastas
41. 'wc' :- Dá informação sobre o conteúdo de um ou mais ficheiros
42. Acções específicas por acção de comandos compostos (pinelines)
43. Links úteis
Início

1. Introdução

Os comandos da shell são presentemente definidos pelo POSIX (Portable Operating System Interface). Em geral, encontram-se no todo ou em parte acessíveis a partir nas diferentes shell's.
Há diversas shell's pelo que poderão variar um pouco os comandos. As maiores diferenças entre elas encontram-se no seu modo como se escrevem os seus ficheiros de comandos (scripts). Os
Início

2. Pipelines (pipe): Encadear processos num só comando

Este procedimento permine executar uma sucessão de de comandando de uma só vez, usando o stdout de cada comando como stdin do comando seguinte as mensagens de erro de toda a sequência de comando vão para stderr, ou seja para a linha de comandos. Por outras palavras, estabelece canais de comunicação entre diferentes procedimentos. Denota-se por uma barra vertical, |.
Como exemplo simples pode considerar-se um comando que recebe o ficheiro 'file1.txt' substitui 'rosa' por 'cravo' e escreve-o no ficheiro 'file2.txt': mostra no ecran apenas as linhas em que existe a instrução 'while':
cat file1.txt | awk '{gsub(/rosa/,"cravo")}1 > file2.txt'
em que 'cat' mostra o ficheiro, 'awk' faz a substituição e, em seguinda o stdout é rediccionado para 'file2.txt'.
Início

3. Redirecionamento da escrita e leitura

Na linha de comandos pode fazer-se o redirecionamento da leitura e da escrita:
  • A instrução ">" permite redirecionar o standard output para um ficheiro. Exemplo:
    ls -a > dir.txt
    para se acrescentar a um ficheiro já existente pode fazer-se ">>".
    Igualmente pode redefinir-se standard input ("<") para ser lido a partir de um ficheiro
  • tee: Lê do "standard input" e escreve no "standard output" e em files.
    Exemplos:
    • $ echo "ola" | tee -a teste_tee_file.txt
      (Nota: '-a' significa 'append')
Início

4. 'alias' :- Permite definir sinónimos

Permite definir um sinónimo. Em geral é usado para executar um comando (ou parte dele). Apenas sobrevive durante a sessão em que é definido. Para definir esses comando, em geral, guardam-se no ficheiro que é lido quando a shell é chamada (por exemplo, '.bashrc', para a shell 'bash'). Exemplo:
alias dir='ls -l'
Início

5. 'ar' :- Comando para juntar ficheiros, usado especialmente em bibliotecas

Comando usado para juntar ficheiros. Actualmente é usado principalmente para juntar ficheiros em bibliotecas estáticas.
Início

6. 'at' :- Execução de ficheiros a uma determinada hora

Este comando destina-se à execução de programas, em batch, marcados para serem executados a uma determinada hora ou dia. Exemplo para o executar agora:
at -f programa NOW
Início

7. 'cat' :- Permite criar, juntar e mostrar ficheiros

Início

8. 'cd' :- Muda a pasta de trabalho para outra pasta

Início

9. 'chattr' :- Permite definir e alterar os atributos de um ficheiro

Início

10. 'chgrp' :- Altera o 'group' de ficheiros

Início

11. 'chmod' :- Altera as proteções de ficheiros

O nome deriva de change mode. Altera as proteções de ficheiros, pastas, etc.
As atribuições de proteção podem ser feitas em formato octal ou através de símbolos:
ProteçãoSímbolosOctalBinário
leitura, escrita e execuçãorwx7111
leitura e escritarw-6110
leitura e execuçãor-x5101
apenas leiturar--4100
escrita e execução-wx3011
apenas escrita-w-2010
apenas execução--x1001
nenhum---0000

Para se alterar as protecções de um ficheiro podem dar-se os valores em octal ou usar os símbolos. Exemplos:

$ chmod 740 ficheiro
$ chmod g=rw ficheiro

Para se executar o comando recursivamente sobre as sub-pastas pode usar-se o atributo '-R'.

É bom ter em conta que as pastas e os ficheiros têm muitas vezes atributos diferentes, por isso, é conveniente ao fazer a operação recursivamente tê-lo em conta. Para distinguir os ficheiro das pastas pode usar-se o comando find. Exemplos para ficheiros e pastas, respectivamente:

$ find pastaDesejada -type d -exec chmod 750 {} \;
$ find pastaDesejada -type f -exec chmod 640 {} \;
Início

12. 'chown' :- Altera o 'user' e o 'group' de ficheiros

Início

13. 'cksum' :- Gera um checksum de 32 de um ficheiro

Início

14. 'cmp' :- Compara dois ficheiros

Início

15. 'cp' :- Copia ficheiros e pastas

Copia ficheiros. Se usado recursivamente (opção '-r'), também pode copiar árvores de pastas. A sua sintaxe é:
cp [Opções] origem destino
As opções mais usadas são:
OpçãoDescrição.
-iPede confirmação antes se sobrepor um ficheiro.
-f, --forceForça a copiar sem fazer perguntas.
-r, -RCopia recursivamente se for uma pasta.
Nota: é aconselhável usar a opção '-i' (perguntar) para evitar que um ficheiro apague outro, tal pode acontecer se o novo nome for igual ao de um ficheiro já existente.
Início

16. 'dd' :- Copia ficheiros e cria imagens em discos flexíveis, rígidos, etc.

Início

17. 'df' :- Mostra os 'devices' montados e seus atributos

Início

18. 'diff' :- Compara ficheiros ou pastas e mostra as diferenças

Compara ficheiros. Se usado recursivamente pode comparar o conteúdos de pastas. Tem como resultado as diferenças indicando as linhas em que elas existem. A sua sintaxe é:
diff [Opções] ficheiros
As opções mais usadas são:
OpçãoDescrição.
-rSe fizer a comparação recursiva entre pastas.
-iIgnora maiúsculas e minúsculas no conteúdo dos ficheiros.
-wIgnora todos os espaço em branco.
Início

19. 'du' :- Mostra o espaço de disco ocupado pelos ficheiros numa pasta

Início

20. 'file' :- Determinar o tipo de dados num arquivo, isto é, o tipo de ficheiro

Início

21. 'find' :- Pesquisa ficheiros numa pastas e sub-pastas

O comando 'find' permite encontrar ficheiros a partir de um dado nó da árvore das pastas. A sua sintaxe é:
find [Opções] [] [expressão]
em que 'Opções' permite tratar os links simbólicos (ver manual) e 'expressão' pode ser simplesmente o nome do ficheiro ou uma expressão regular. Algumas opções de 'expressão':
OpçãoDescrição.
-name <name>Nome do ficheiro
-iname </name>Nome do ficheiro. Ignora maiúsculas e minúsculas
-regex <regex>Expressão regular
-iregex <regex>Expressão regular. Ignora maiúsculas e minúsculas

Exemplos:

  • Como encontrar recursivamente ficheiros começados por 'Livro' na pasta '/home/Books'
    $ find /home/Books -name Livro*
  • Como encontrar recursivamente ficheiros a partir de uma certa data (23 de Novembro de 2022) na pasta '/home/Books'
    $ find /home/Books/ -type f -newermt '11/23/2022 0:00:00'
Início

22. 'fuser' :- Mostra os processos que utilizam um determinado ficheiro ou 'device'

Início

23. 'less' :- Mostra um ficheiro no ecrã. Permite usar as setas

O comando 'less' permite visualizar para a frente e para trás com as setas. Generaliza o comando 'more' que não permitia andar para trás na visualização. A sua sintaxe é:
less [Opções] ficheiro
Para andar para a frente um ecrã pode usar-se a tecla de espaço. Para sair basta escrever 'q' (quit).
Início

24. 'ln' :- Cria uma ligação (link simbólico) entre ficheiros

Início

25. 'ls' :- Lista os ficheiros da(s) pasta(s) escolhidas

O comando 'ls' mostra os ficheiros existentes numa, ou mais, pastas. A sua sintaxe é:
ls [Opções] [Pasta(s)]
Sem opções mostra simplesmente os ficheiros existentes na pasta local, ignorando aqueles que começam por ponto.
Disponibiliza um conjunto de qualificadores que permitem alterar o resultado da saída. Alguns dos mais frequentes são:
OpçãoDescrição.
-1Lista os ficheiros numa única coluna.
-a, --allMostra todos os ficheiros incluindo os que começam por ponto.
-lMostra as proteções, utilizador, grupo, tamanho e data da última alteração.
-rInverte a ordem de saída dos ficheiro.
-tOrdena a saída pela data da última alteração. Começa nos mais recentes.
Início

26. 'lsattr' :- Mostra os atributos de um ficheiro

Início

27. 'lsof' :- Lista os descritores dos ficheiros abertos pelos processos em execução

Início

28. 'mkdir' :- Cria uma pasta

Início

29. 'more' :- Mostra um ficheiro no ecrã

Início

30. 'mv' :- Move ficheiros ou altera nome de pasta ou ficheiro

A sua acção depende do tipos de argumentos. Assim, se tiver apenas dois argumentos, pode alterar o nome do primeiro para o segundo. Se o segundo for uma pasta pode mover o(s) ficheiro(s) para essa pasta. A sua sintaxe é:
mv [Opções] origem destino
Nota: é aconselhável usar a opção '-i' (perguntar) para evitar que um ficheiro apague outro, tal pode acontecer se o novo nome for igual ao de um ficheiro já existente.
Início

31. 'pax' :- Utilitário de arquivamento. Uma espécie de junção do 'tar' com o 'cpio'

Início

32. 'pwd' :- Mostra no ecrã a pasta em que se encontrar

Imprime no ecrã a pasta em que se encontrar.
Início

33. 'rm' :- Apaga um ou mais ficheiros (e eventualmente pastas)

Permite apaga um ou mais ficheiros. Se usado recursivamente (opção '-r') pode ainda apagar uma árvore de pastas. A sua sintaxe é:
rm [Opções] ficheiros
As opções mais usadas são:
OpçãoDescrição.
-iPede confirmação para cada ficheiro a apagar.
-f, --forceForça a apagar sem fazer perguntas.
-r, -RApaga recursivamente se for uma pasta.
Início

34. 'rmdir' :- Remove uma pasta

Início

35. 'sed' :- Utilitário de edição de texto não interactivo

O "sed" é um editor de texto não interactivo que realiza transformações de texto. Pode aplicar-se a ficheiros ou a pedaços de texto. "sed" significa "stream editor".
O comando "sed" tem a seguinte sintaxe:
sed [Opções] 'comando' [ficheiro ...]
As mais frequentes opções do "sed" são:
OpçãoDescrição.
-fUtiliza ficheiro de comandos
-iFaz a edição directamente
-nNão imprime as linhas
-rUtilize expressões regulares estendidas
Exemplos:
echo 'Boa tarde porque é tarde' |sed 's/tarde/noite/'
echo 'Boa tarde porque é tarde' |sed 's/tarde/noite/g2'
echo 'Boa tarde porque é tarde' |sed 's/tarde/noite/g'
Ver:
Início

36. 'split' :- Utilitário para dividir um ficheiro em partes

Início

37. 'tee' :- Lê do 'standard input' e escreve no 'standard output'

Lê do "standard input" e escreve no "standard output" e em files.
s opção mais usada é:
OpçãoDescrição.
-aSignifica que se acrescenta ao ficheiro.

Exemplo em que se diz "olá" e é acrescentado ao ficheiro 'tee_file.txt':

$ echo "ola" | sudo tee -a tee_file.txt
(Nota: '-a' significa 'append')
Início

38. 'touch' :- Serve para alterar a data e hora de um ficheiro

Início

39. 'type' :- Mostra como um comando era usado se fosse dado na linha de comandos

Início

40. 'umask' :- Define as permissões para os novos ficheiros e pastas

Início

41. 'wc' :- Dá informação sobre o conteúdo de um ou mais ficheiros

Dá informação sobre o conteúdo de um ou mais ficheiros: número de linhas, palavras e caracteres. No caso de ser mais do que um ficheiro, acrescenta o resultado da some de todos eles. A sua sintaxe é:
wc [Opções] ficheiro(s)
As opções mais usadas são:
OpçãoDescrição.
-c, --bytesDá o número de bytes.
-m, --charsDá o número de caracteres.
-l, --linesDá o número de linhas.
-L, --max-line-lengthDá o comprimento da maior linha.
-w, --wordsDá o número de palavras.
Início

42. Acções específicas por acção de comandos compostos (pinelines)

Início

43. Links úteis

Início