# Linux lsof: como obter listas de ficheiros e analisar o seu sistema

A ferramenta lsof do Linux permite-lhe monitorizar o seu sistema e, assim, detetar possíveis problemas mais rapidamente. O programa cria uma lista de ficheiros abertos e, com a ajuda de filtros e opções, poderá adaptar as informações apresentadas, na medida do possível, às suas necessidades.

## O que é o Linux lsof?

Se pretende **monitorizar e analisar** o seu sistema Linux, o lsof apresenta-se como uma ferramenta muito fácil de utilizar. O programa, desenvolvido por Vic Abell e disponibilizado ao público já em 1994, é de código aberto e faz parte da instalação padrão de várias distribuições Linux, como [o Debian](https://www.ionos.com/pt-pt/digitalguide/servidores/know-how/debian-o-software-universal-para-sistemas-operativos/ "Debian, el software universal para sistemas operativos") ou o Ubuntu. lsof é a abreviatura de «List open files», ou seja, lista de ficheiros abertos. O programa fornece informações sobre os tipos de ficheiros que estão ou estiveram abertos durante a execução de processos num determinado momento. Além de ficheiros normais, inclui também diretórios, sockets, unidades ou portas, que são apresentados numa enumeração clara.

## Como funciona o lsof?

Se o lsof não estiver disponível no seu sistema, pode instalá-lo com este [comando Linux](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/comandos-do-linux-a-lista-essencial/ "Comandos de Linux: la lista fundamental"):

```bash
$ apt-get install lsof
```

Em seguida, podes utilizar a ferramenta para obter uma **visão geral dos processos em execução no teu computador**. Isto é possível porque, nos sistemas Unix, tudo é, em princípio, tratado como um ficheiro. Com o lsof no Linux, podes verificar quais os processos que acedem a quais ficheiros.

## Qual é a sintaxe do lsof?

Queres usar o lsof? Esta é a sintaxe básica do comando correspondente:

```bash
$ lsof [opción] <formato>
```

Se quiseres, podes utilizar o lsof sem especificar opções nem filtros. No entanto, se o fizeres, as informações obtidas poderão ser extremamente extensas e confusas.

## Que opções e filtros oferece o lsof?

O lsof pode ser utilizado com várias opções, a partir das quais é possível obter informações. Aqui estão as mais importantes:

- **-F**: com esta opção, todos os resultados são apresentados numa única coluna.
- **-l**: com esta opção, é apresentado o ID do utilizador em vez do nome.
- **-n**: com esta opção, são apresentados os endereços IP correspondentes em vez dos nomes dos anfitriões.
- **-P**: com esta opção, as portas são apresentadas numericamente em vez dos nomes dos serviços.
- **-r \[x\]**: com esta opção, são apresentadas informações atualizadas a cada x segundos.
- **-t**: com esta opção, é apresentada apenas uma lista de PID (Identificador de Processo).

Além disso, o lsof também pode ser utilizado com várias opções de filtragem. As mais comuns são:

- **-a**: em vez de utilizar o operador lógico OR, utiliza-se o operador lógico AND.
- **-c \[processo\]**: fornece informações sobre qual ficheiro é utilizado por qual processo.
- **+D /diretório/utilizador**: fornece informações sobre um diretório específico e o seu utilizador.
- **/dev/unidade**: permite verificar uma unidade específica.
- **-i \[TCP/UDP ou endereço IP ou porta\]**: fornece informações sobre quais processos utilizam quais serviços de rede.
- **+L1**: fornece informações sobre os ficheiros já apagados.
- **+p PID**: fornece informações sobre qual ficheiro cada PID utiliza.
- **/caminho/ficheiro**: com esta opção, obtém informações sobre um ficheiro específico.
- **u \[utilizador\]**: pode saber quais os ficheiros que cada utilizador utiliza.

## Para que serve o lsof?

Dá uma vista de olhos a alguns exemplos práticos sobre a utilização do lsof.

```bash
$ lsof -u root
```

Desta forma, serão apresentados todos os ficheiros que o root tem abertos neste momento.

```bash
$ lsof /mount/path
```

É comum utilizar o lsof para verificar quais os programas que impedem a execução do comando mount. Se houver ficheiros abertos, não é possível executá-lo.

```bash
$ lsof -n -i
```

Desta forma, obterás uma lista das portas abertas.


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/linux-lsof/](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/linux-lsof/) for AI/LLM consumption.