GNU/Linux >> Znalost Linux >  >> Linux

Linux lsof Command Tutorial pro začátečníky (15 příkladů)

lsof příkaz v Linuxu zobrazuje ve svém výstupu informace o souborech, které procesy otevírají. V tomto článku probereme nástroj lsof pro Linux pomocí 15 snadno srozumitelných příkladů. Vezměte prosím na vědomí, že všechny příklady uvedené v tomto tutoriálu byly testovány na Ubuntu 20.04 LTS, ale budou fungovat i na jiných distribucích Linuxu, jako je Debian, Fedora a CentOS.

O příkazu lsof

Pokud chcete rychle zobrazit názvy souborů, které byly otevřeny konkrétním procesem (nebo všemi procesy), příkaz lsof vám to umožní. Otevřeným souborem může být běžný soubor nebo adresář, knihovna, speciální soubor nebo blokové zařízení, znakový speciální soubor, spouštěcí textový odkaz nebo dokonce proud nebo síťový soubor. Procesy můžete také vypsat podle čísla portu. Pokud nejste přihlášeni jako uživatel root, možná budete muset před příkazy přidat 'sudo'.

Instalovat Linux příkaz lsof

Většina distribucí Linuxu je dodávána s předinstalovanými lsof. Pokud ve vašem systému ještě není nainstalován, použijte následující příkazy:

Na Ubuntu a Debianu:

$ sudo apt install lsof

Ond CentOS a Fedora:

$ dnf install lsof

1. Jak vypsat všechny otevřené soubory

Chcete-li zobrazit seznam všech otevřených souborů, spusťte příkaz lsof bez jakýchkoli argumentů:

lsof

Zde je například screengrab části výstupu výše uvedeného příkazu vytvořeného v mém systému:

První sloupec představuje proces, zatímco poslední sloupec obsahuje název souboru. Podrobnosti o všech sloupcích najdete na manuálové stránce příkazu.

2. Jak vypsat soubory otevřené procesy patřící konkrétnímu uživateli

Nástroj také umožňuje zobrazit soubory otevřené procesy, které patří konkrétnímu uživateli. K této funkci lze přistupovat pomocí -u možnost příkazového řádku.

lsof -u [jméno uživatele]

Například:

lsof -u správce

3. Jak vytvořit seznam souborů na základě jejich internetové adresy

Tento nástroj umožňuje seznam souborů na základě jejich internetové adresy. To lze provést pomocí -i možnost příkazového řádku. Pokud chcete, můžete si například nechat zobrazit soubory IPv4 a IPv6 samostatně. Pro IPv4 spusťte následující příkaz:

lsof -i 4

Například:

Podobně pro IPv6 spusťte následující příkaz:

lsof -i 6

Například:

lsof -i 6

4. Jak vypsat všechny soubory podle názvu aplikace

Volba -c příkazového řádku vám umožňuje otevřít všechny soubory podle názvu programu.

$ lsof -c apache

Nemusíte používat celý název programu, protože jsou zobrazeny všechny programy, které začínají slovem 'apache'. V našem případě tedy vypíše všechny procesy aplikace 'apache2'.

Volba -c je v podstatě jen zkratka pro dva příkazy:

$ lsof | grep apache

5. Jak vypsat soubory specifické pro proces

Nástroj také umožňuje zobrazit otevřené soubory na základě identifikačních čísel procesů (PID). To lze provést pomocí -p možnost příkazového řádku.

lsof -p [PID]

Například:

lsof -p 856

Postupně můžete také vyloučit konkrétní PID ve výstupu přidáním ^ symbol před nimi. Chcete-li vyloučit konkrétní PID, můžete spustit následující příkaz:

lsof -p [^PID]

Například:

lsof -p ^1

Jak můžete vidět na výše uvedeném snímku obrazovky, proces s ID 1 je ze seznamu vyloučen.

6. Jak vypsat ID procesů, které otevřely konkrétní soubor

Nástroj umožňuje vypsat ID procesů, které otevřely konkrétní soubor. To lze provést pomocí -t možnost příkazového řádku.

$ lsof -t [file-name]

Například:

$ lsof -t /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0

7. Jak vypsat všechny otevřené soubory v adresáři

Pokud chcete, můžete také pomocí lsof vyhledat všechny otevřené instance adresáře (včetně všech souborů a adresářů, které obsahuje). K této funkci lze přistupovat pomocí +D možnost příkazového řádku.

$ lsof +D [cesta-adresáře]

Například:

$ lsof +D  /usr/lib/locale

8. Jak vypsat všechny internetové a x.25 (HP-UX) síťové soubory

To je možné pomocí -i možnost příkazového řádku, kterou jsme popsali dříve. Jen to musíte použít bez jakýchkoli argumentů.

$ lsof -i

9. Zjistěte, který program používá port

Přepínač -i příkazu vám umožňuje najít proces nebo aplikaci, která naslouchá konkrétnímu číslu portu. V níže uvedeném příkladu jsem zkontroloval, který program používá port 80.

$ lsof -i :80

Místo čísla portu můžete použít název služby uvedený v /etc/services soubor. Příklad kontroly, která aplikace naslouchá na portu HTTPS (443):

$ lsof -i :https

Výsledek:

Výše uvedené příklady zkontrolují TCP i UDP. Pokud chcete zkontrolovat pouze TCP nebo UDP, přidejte před slovo 'tcp' nebo 'udp'. Například, která aplikace používá port 25 TCP:

$ lsof -i tcp:25

nebo která aplikace používá port UDP 53:

$ lsof -i udp:53

10. Jak vypsat otevřené soubory na základě rozsahu portů

Nástroj také umožňuje zobrazit seznam otevřených souborů na základě konkrétního portu nebo rozsahu portů. Chcete-li například zobrazit otevřené soubory pro port 1-1024, použijte následující příkaz:

$ lsof -i :1-1024

11. Jak zobrazit seznam otevřených souborů podle typu připojení (TCP nebo UDP)

Nástroj umožňuje vypisovat soubory podle typu připojení. Například pro soubory specifické pro UDP použijte následující příkaz:

$ lsof -i udp

Podobně můžete lsof zobrazit soubory specifické pro TCP.

12. Jak vytvořit seznam lsof Parent PID procesů

K dispozici je také možnost, která lsof přinutí uvést ve výstupu číslo PPID (Parent Process IDentification). Dotyčná možnost je -R .

$ lsof -R

Chcete-li získat informace o PPID pro konkrétní PID, můžete spustit následující příkaz:

$ lsof -p [PID] -R

Například:

$ lsof -p 3 -R

13. Jak najít síťovou aktivitu podle uživatele

Pomocí kombinace voleb příkazového řádku -i a -u můžeme vyhledat všechna síťová připojení uživatele Linuxu. To může být užitečné, pokud kontrolujete systém, který mohl být hacknut. V tomto příkladu kontrolujeme veškerou síťovou aktivitu uživatele www-data:

$ lsof -a -i -u www-data

14. Vypsat všechny soubory mapované v paměti

Tento příkaz zobrazí seznam všech souborů mapovaných v paměti v systému Linux.

$ lsof -d mem

15. Vypsat všechny soubory NFS

Volba -N vám zobrazí seznam všech souborů NFS (Network File System).

$lsof -N

Závěr

Ačkoli lsof nabízí nepřeberné množství možností, ty, které jsme zde probrali, by vám měly stačit, abyste mohli začít. Až budete s procvičováním hotovi, přejděte na manuálovou stránku nástroje, kde se o něm dozvíte více. Jo, a v případě, že máte nějaké pochybnosti a dotazy, napište komentář níže.


Linux
  1. Linux cd command tutorial pro začátečníky (8 příkladů)

  2. Linux Date Command Tutorial pro začátečníky (8 příkladů)

  3. Linux hostname Command Tutorial pro začátečníky (5 příkladů)

  1. Výuka příkazů Linux pro začátečníky (5 příkladů)

  2. Linux df Command Tutorial pro začátečníky (8 příkladů)

  3. Linux du Command Tutorial pro začátečníky (10 příkladů)

  1. Výukový program Linux echo Command pro začátečníky (5 příkladů)

  2. Linux env Command Tutorial pro začátečníky (5 příkladů)

  3. Návod k příkazu velikosti Linuxu pro začátečníky (6 příkladů)