GNU/Linux >> Znalost Linux >  >> Linux

lsof:příkaz nenalezen

Občas čelíme situacím, kdy nemůžeme odpojit disk, protože říká, že soubory jsou používány, ale nemůžeme pochopit, na který soubor se odkazuje. V takových situacích můžeme zkontrolovat, které soubory jsou otevřeny kterým procesem běžícím v systému.

To lze provést pomocí příkazu lsof, což znamená Seznam otevřených souborů. Protože Linux považuje vše, včetně adresářů, zařízení, soketů a tak dále za soubory, můžeme použít lsof ke snadné identifikaci všech otevřených souborů.

Pokud právě spustíme lsof, zobrazí seznam všech otevřených souborů, které patří k jakémukoli aktivnímu procesu v systému. Pokud je výstup dlouhý, můžeme k procházení výstupu použít příkaz less:

# lsof | less

Zobrazený výstup obsahuje sloupce jako Příkaz, PID, Uživatel, FD, Typ, Zařízení atd. pro lepší pochopení souborů. Sloupec FD obsahuje informace o popisu souboru, jako je aktuální pracovní adresář (CWD), kořenový adresář (RTD), text programu (TXT) a tak dále. Pokud sloupec FD obsahuje informace jako 0u, 1u atd., číslo označuje skutečný deskriptor souboru a abeceda označuje různé režimy (přístup pro čtení, přístup pro zápis a přístup pro čtení/zápis).

pokud při spuštění příkazu lsof narazíte na níže uvedenou chybu:

lsof: command not found

ypu může nainstalovat níže uvedený balíček podle vašeho výběru distribuce.

Distribuce Příkaz
OS X brew install lsof
Debian apt-get install lsof
Ubuntu apt-get install lsof
Alpine apk přidat lsof
Arch Linux pacman -S lsof
Kali Linux apt-get install lsof
CentOS yum install lsof
Fedora dnf install lsof
Raspbian apt-get install lsof

Často používané možnosti lsof

  • -c x :Zobrazí pouze soubory, které jsou otevřeny procesy, jejichž spustitelný soubor začíná znakem (znaky) určeným x.
  • -i x :Místo zobrazení otevřených souborů zobrazí sokety, jejichž internetová adresa je x. Pokud není zadáno x, zobrazit všechna připojení IP. To je funkčně ekvivalentní k netstat –anp.
  • -u uživatelské jméno :Zobrazí pouze soubory, které má uživatelské jméno otevřené.
  • -P :Nepřevádějte čísla portů na názvy portů (například zobrazte 25 místo smtp).

lsof příkladů příkazů

Jednoduchým spuštěním příkazů lsof získáme seznam všech otevřených souborů v systému. Použitím volby -u a zadáním uživatelského jména získáme seznam otevřených souborů pro konkrétního uživatele. Když použijeme volbu -i a zadáme číslo portu, získáme informace o jakémkoli procesu běžícím na tomto portu. Když použijeme obě volby -i a -u s konkrétním uživatelským jménem, ​​získáme informace o souborech a příkazech, ke kterým daný uživatel přistupuje.

1. Najděte procesy, které mají daný soubor otevřený:

# lsof path/to/file

2. Najděte proces, který otevřel místní internetový port:

# lsof -i :port

3. Zadejte pouze ID procesu (PID):

# lsof -t path/to/file

4. Seznam souborů otevřených daným uživatelem:

# lsof -u username

5. Seznam souborů otevřených daným příkazem nebo procesem:

# lsof -c process_or_command_name

6. Uveďte seznam souborů otevřených konkrétním procesem podle jeho PID:

# lsof -p PID

7. Seznam otevřených souborů v adresáři:

# lsof +D path/to/directory

8. Najděte proces, který naslouchá na místním portu IPv6 TCP a nepřevádějte síť ani čísla portů:

# lsof -i6TCP:port -sTCP:LISTEN -n -P

9. Seznam procesů, které mají otevřený váš domovský adresář:

# lsof ~

10. Seznam všech otevřených souborů ve vašem domovském adresáři:

# lsof +D

11. Vypište soubory otevřené procesy, jejichž názvy začínají na „i“ a jejichž vlastníkem je „geek“:

# lsof -a -c i -u geek

12. Seznam souborů pomocí TCP portu 80, opakování každé dvě sekundy, dokud není lsof ukončen:

# lsof -i TCP:80 -r 2

Poslední slova

lsof uvádí otevřené soubory. Protože vše v Linuxu je soubor, tento nástroj vám může sdělit fantastické množství informací o vašem běžícím systému. Primárně se používá k určení toho, jaké procesy mají jaké soubory otevřené, ale lze jej mimo jiné použít také k zobrazení informací o připojení TCP a UDP.


Linux
  1. Subscription-manager:příkaz nenalezen

  2. dnf:příkaz nenalezen

  3. unzip:příkaz nenalezen

  1. bc:příkaz nenalezen

  2. dpkg:příkaz nenalezen

  3. id:příkaz nenalezen

  1. w:příkaz nenalezen

  2. df:příkaz nenalezen

  3. du:příkaz nenalezen