π§ Linux Junior. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Linux.
ΠΡΠΊΡΡΡΡ Π² Telegram
ΠΠ°Π½Π°Π» Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Ρ Linux. ΠΠΎΡΡΠΈ Π²ΡΠ΅ Python Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅ΡΡ Ρ Π½Π°ΠΌΠΈ Π½Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΠΆΠ΅ ΠΏΠΎΠ΄ΡΡΠ½ΡΡΡΡ. ΠΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅: @jannytg @anothertechrock
ΠΠΎΠ»ΡΡΠ΅3 115
ΠΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΈ
+124 ΡΠ°ΡΠ°
-17 Π΄Π½Π΅ΠΉ
-530 Π΄Π΅Π½Ρ
ΠΡΡ
ΠΈΠ² ΠΏΠΎΡΡΠΎΠ²
β ΠΠ°ΠΊ Π±ΡΡΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ-ΡΠΎ Π² ΠΈΠΌΠ΅Π½Π°Ρ
Π²ΡΠ΅Ρ
ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ?
ΠΡΠ²Π΅Ρ ΡΠ΅ΡΠ΅Π· ΡΠ°Ρ.
#Π²ΠΎΠΏΡΠΎΡΡ
ΠΠ²ΠΎΠΉΠ½ΡΠ΅ ΡΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ
Linux
ΠΠΎΡΠΎΠΉ ΠΎΠΏΡΡΠ½ΡΠ΅ Π°Π΄ΠΌΠΈΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ssh root@linuxzone.ru --
Π§ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ΅? ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ΠΎ? ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ.
ΠΠ²ΠΎΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΡΠ»Π°Π³ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈΒ». ΠΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ssh ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π½Π΅ ΠΏΡΡΠ°ΡΡΡΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎ, ΡΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ° ΡΠ»ΠΎΠ²Π°Ρ
Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅!
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°:
ssh root@linuzone.ru -- command1 --arg1 --arg2ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ
ssh Π½Π΅ ΠΏΡΡΠ°ΡΡΡΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ arg1 ΠΈ arg2 ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° --. ΠΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° command1 ΠΏΡΠΈΠΌΠ΅Ρ arg1 ΠΈ arg2 Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ ΠΌΡ ΡΠΎΠΎΠ±ΡΠ°Π΅ΠΌ ssh: Π²ΡΠ΅ ΡΠΎ, ΡΡΠΎ ΠΈΠ΄Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ΅, ΡΡΠΎ Π½Π΅ ΡΠ²ΠΎΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ ΠΠ ΠΠΠΠ! Π‘Π’ΠΠ! ΠΠ°Π»ΡΡΠ΅ Π΄Π΅Π»ΠΎ Π·Π° command1 ΠΈ Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ.
ΠΠ²ΠΎΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ΅ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°ΠΌΠΈ bash/zsh/csh/sh/fish ΠΈ Ρ.ΠΏ. ΠΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΡΠ°ΠΌΠΈΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½ΠΎ ΠΠ Π²ΡΠ΅Ρ
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ssh ΡΡΠΎ ΡΠΌΠ΅Π΅Ρ Π΄Π΅Π»Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΡΡΠΈΠ»ΠΈΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ --file ΠΈΠ»ΠΈ -f, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cat. ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ:
cat --file
cat -f
ΠΠΏΠ°. ΠΡΠΈΠ±ΠΊΠ°! cat: unrecognized option --file/f. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΠΌ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ΅:
cat -- --file
cat -- -f
ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΠΏΠ°Π»Π° ΠΈ ΡΠ°ΠΉΠ» ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠ²Π΅Π»ΡΡ Π½Π° ΡΠΊΡΠ°Π½, Π½Ρ Π»ΠΈΠ±ΠΎ Π²ΡΡΠΊΠΎΡΠΈΠ»ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ cat: --file/f: No such file or directory. ΠΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
ΠΠ°ΠΊΡΠ΅ΠΏΠΈΠΌ:
rm --file = ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΡ
rm -- '--file' = Π° Π²ΠΎΡ ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΡ Π° ΡΡΠΎ Π±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² rm, Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΊ:
rm -v -i -- '--file'
rm -f -v -i -- '-f'
ΠΡΠΎΡΡΠΎ, Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΠΌΠ΅Π»ΠΎΠ΄ΠΈΡΠ½ΠΎ. ΠΠΎ ΠΊΠ°ΠΊ Ρ ΠΈ ΡΠΊΠ°Π·Π°Π» Π²ΡΡΠ΅, Π½Π΅ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π²ΠΎΠΉΠ½ΡΠΌ ΡΠΈΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄Π° echo. ΠΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΏΠΎΠ΄ΡΡΠΆΠΈΡΡ Π΅Ρ Ρ Π΄Π²ΠΎΠΉΠ½ΡΠΌ ΡΠΈΡΠ΅ ΠΏΡΠΎΡΡΠΎ-Π½Π°ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ²Π°Π»ΡΡΡΡ:
/usr/bin/echo -- -n
echo -- --test
ΠΡΠ²Π΅Π΄Π΅ΡΡΡ ΡΡΠΎ:
-- -n -- --test
π₯ Π₯ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Linux Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΄ΡΠ°?
ΠΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Β«Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΄ΡΠ° LinuxΒ» β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π² Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΎΡΠ»Π°Π΄ΠΊΡ, ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ.
π» ΠΡ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
ΡΠ΄ΡΠ°, ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ dmesg ΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΡ Π½Π° Linux-ΡΠ΄ΡΠ΅.
π ΠΡΡΡ Π²Π΅Π΄ΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΡΡΠΈΠ΅ ΡΠΊΡΠΏΠ΅ΡΡΡ Ρ ΡΠ΅Π°Π»ΡΠ½ΡΠΌ ΠΎΠΏΡΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ ΡΠ΄ΡΠΎ.
πΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ.
πΠΠΈΠ²ΡΠ΅ Π»Π΅ΠΊΡΠΈΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π°ΡΡΠ°Π²Π½ΠΈΠΊΠΎΠ², ΠΈΡΠΎΠ³ΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° β Π²ΡΡ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΎΡΠ²ΠΎΠΈΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠ΅ΠΌΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΡΠ°Π²ΡΡΠ΅ Π·Π°ΡΠ²ΠΊΡ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576ΠΠ°ΠΊ Π±ΡΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΡ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Linux?
ΠΠΎΡ Π±ΡΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΎΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠ»Π΅ΡΠ΅Π»Π° ΠΈΠ· Π³ΠΎΠ»ΠΎΠ²Ρ. ΠΡΠΈΡΠ΅ΠΌ ΠΏΡΠΈΡ
Π²Π°ΡΠΈΠ»Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ. Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ? ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ
man Ρ Π½ΡΠΆΠ½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ:
man -k <ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ>
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ Π·Π°Π±ΡΠ»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΎΠ½Π° ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ²ΡΠ·Π°Π½Π° Ρ Π΄ΠΈΡΠΊΠΎΠΌ. ΠΠΎΡΡΠΎΠΌΡ Π²Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»:
man -k disk
Π Π²ΡΡ
Π»ΠΎΠΏ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π΄ΠΈΡΠΊΠ°ΠΌΠΈ. ΠΠ΅Π³ΠΊΠΎ Π½Π°ΠΉΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ, Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ Π΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ Π½ΡΠΆΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ. ΠΡΠ°Π²Π΄Π°, Π²ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ? Π’Π°ΠΊ ΡΡΠΎ, ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°Π΅ΠΌΡΡ!Π¨Π°Π±Π»ΠΎΠ½Ρ a?b* Π±ΡΠ΄ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ...
ΠΠ»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΡΠ°Π·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°
wall (ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ write to all, Ρ.Π΅. βΠ½Π°ΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅ΠΌβ).
$ wall I'm going to reboot the server at 14:00!ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Ctrl+D ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ.
β ΠΠ°ΠΊ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ?
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ΅Π±ΡΡΠ½ΡΡΡ ΡΠ΅ΡΠ²Π΅Ρ, Π½ΠΎ Π½Π° Π½Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ Π²Π°ΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π»ΡΠ΄ΠΈ. ΠΠ°ΠΊ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅?
ΠΡΠ²Π΅Ρ ΡΠ΅ΡΠ΅Π· ΡΠ°Ρ.
#Π²ΠΎΠΏΡΠΎΡΡ
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π·Π°Π΄Π°Ρ Ρ xargs
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Linux Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ»ΡΡΠ°Π»ΠΈ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅
xargs, Ρ
ΠΎΡΡ ΡΡΠΎ ΠΌΠΎΡΠ½ΡΠΈΜ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π΄Π°Ρ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ.
Π£ΡΠΈΠ»ΠΈΡΠ° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π²Π²ΠΎΠ΄Π° (STDIN). ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠ΄Π° ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π»ΠΈΠ±ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π»ΠΈΠ±ΠΎ ΠΎΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ |.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΈΜ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ ΡΡΠ΅ΠΌΡ ΡΠ°ΠΈΜΠ»Π°ΠΌΠΈ:
$ ls -1
file1.txt
file2.txt
file3.txt
ΠΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΠΌ Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π² xargs, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠ»ΡΠΆΠΈΠ» Π²Ρ
ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΈ wc -l Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ ls -1 | xargs wc -l
3 file1.txt
4 file2.txt
1 file3.txt
8 total
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ xargs ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ» ΡΠ°Π±Π»ΠΎΠ½ ΠΊΠΎΠΌΠ°Π½Π΄Ρ wc -l ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΡΡΡΠΎΠΊ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ xargs ΡΡΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΈΜΠ»ΠΎΠ² Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ:
$ wc -l *
3 file1.txt
4 file2.txt
...
ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ xargs?
ΠΠ΅ ΠΌΠΎΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠΈΜ, ΠΊΠΎΠ³Π΄Π° Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΠ±ΠΎΠΉΡΠΈ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ Π²ΠΎ Π²ΡΠ΅Ρ
python ΡΠΊΡΠΈΠΏΡΠ°Ρ
Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΎΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΠΈΠΌΠΈΡΡ Π½Π° ".py".
Π’Π°ΠΊΠΎΠΈΜ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΡΠ΅ΠΈΜ ΠΊ ΡΠ°ΠΈΜΠ»Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ find:
$ find . -type f -name \*.py -print
/usr/lib/bup/bup/options.py
/usr/lib/bup/bup/xstat.py
...
Π’Π΅ΠΏΠ΅ΡΡ xargs ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ°ΠΈΜΠ»Ρ:
$ find / -type f -name \*.py -print | xargs wc -l
292 /usr/lib/bup/bup/options.py
112 /usr/lib/bup/bup/xstat.py
...
ΠΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΡ find ΠΈ xargs, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π»ΡΠ±ΠΎΠΈΜ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Ρ ΠΎΠ±Ρ
ΠΎΠ΄ΠΎΠΌ Π²ΡΠ΅ΠΈΜ ΡΠ°ΠΈΜΠ»ΠΎΠ²ΠΎΠΈΜ ΡΠΈΡΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ΅ΡΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ.
ΠΠΏΡΠΈΠΈ xargs
ΠΠΎΠΌΠ°Π½Π΄Π° xargs ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΡΠΈΠΈΜ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅: -n, -I ΠΈ -0.
1οΈβ£ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ "-n" ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ Π½Π° 1 Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ ls | xargs echo
file1.txt file2.txt
$ ls | xargs -n1 echo
file1.txt
file2.txt
ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° echo Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ 2 ΡΠ°Π·Π°: ΠΏΠΎ Π²ΡΠ·ΠΎΠ²Ρ Π½Π° Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
2οΈβ£ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ -I ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ΅ΡΡΠΎ Π²Ρ
ΠΎΠ΄Π½ΡΡ
ΡΡΡΠΎΠΊ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ½ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² ΠΊΠΎΠ½Π΅Ρ, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈΡ
ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
ΠΠΎΡΠ»Π΅ -I Π²Π²Π΅Π΄ΠΈΡΠ΅ Π»ΡΠ±ΡΡ ΡΡΡΠΎΠΊΡ, ΠΈ ΠΎΠ½Π° ΡΡΠ°Π½Π΅Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠΌ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΌ, ΠΊΡΠ΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΡΠ°Π²Π»ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ:
$ ls | xargs -I XYZ echo XYZ is OK
file1.txt is OK
file2.txt is OK
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ -I ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ xargs ΠΎΠ΄Π½ΠΎΠΈΜ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΈΜ ΡΡΡΠΎΠΊΠΎΠΈΜ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ "ΡΠΏΠ»ΠΎΡΠ½ΡΠΊΠΎΠΌ", Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° ΡΡΡΠΎΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΎΡΡΠ°Π±ΠΎΡΠ°Π»Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΈΠ½Π°ΡΠ΅ Π²Π΅ΡΡ ΠΏΠΎΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ»ΡΠΆΠΈΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ.
3οΈβ£ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ -0 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» "\0" Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π΄Π°Π½Π½ΡΡ
Π²ΠΌΠ΅ΡΡΠΎ "\n" ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π΅Π»Π°. ΠΠ½ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ find ΠΈ xargs, Ρ.ΠΊ., ΠΎΠ±ΡΡΠ½ΠΎ xargs ΠΎΠΆΠΈΠ΄Π°Π΅Ρ, ΡΡΠΎ ΡΡΡΠΎΠΊΠΈ Π±ΡΠ΄ΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ.
Π Π΅ΡΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΡΡΡΠΎΠΊΠ°Ρ
ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π΅Π»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΈΜΠ»ΠΎΠ²?
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΈΡ
ΠΊΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΠΈ Π²Π²ΠΎΠ΄Π° ΠΈ, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π½Π΅ΠΏΠΎΠ»Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ "file num 1.txt", xargs ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²ΡΠ΅ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ:
$ find ./ -type f -name \*.txt -print | xargs wc -l
wc: ./file: No such file or directory
wc: num: No such file or directory
wc: 1.txt: No such file or directory
ΠΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π½ΡΠ»ΡΠΌΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π½ΠΎΠ²ΠΎΠΈΜ ΡΡΡΠΎΠΊΠΈ? Π ΡΡΠ°ΡΡΡΡ, Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ find Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³Π° -print0:
$ find ./ -name \*.txt -print0
./file1.txt./file num 1.txt
Π’Π΅ΠΏΠ΅ΡΡ xargs Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ "\0" ΠΈ ΠΏΠΎ Π½Π΅ΠΌΡ ΡΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ wc -l:
$ find ./ -name \*.txt -print0 | xargs -0 wc -l
0 ./file1.txt
0 ./file num 1.txt
0 totalπ©βπ» ΠΠΎΠΌΠ°Π½Π΄Π° sync
Π£ΡΠΈΠ»ΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ
sync ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΊΡΡΠ° Π² ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΡ Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ.
1οΈβ£ Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΊΡΡΠ° ΡΠ·Π΅ΡΠ°
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΊΡΡΠ° Ρ ΠΆΠ΅ΡΡΠΊΠΈΠΌ Π΄ΠΈΡΠΊΠΎΠΌ:
$ sync
2οΈβ£ Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΡΠ·Π΅ΡΡΠΊΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠΎΠ³Π΄Π° Π²Ρ Π΄Π°Π΅ΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ sudo ΠΊΠΎΠΌΠ°Π½Π΄Π΅ sync, ΠΎΠ½Π° ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΠΆΠ΅ΡΡΠΊΠΎΠΌ Π΄ΠΈΡΠΊΠ΅:
$ sudo sync
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ·Π΅ΡΠ°:
$ df
ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΡ
ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ "/", Π² ΡΠ°Π·Π΄Π΅Π» - "/dev/sda3".
3οΈβ£ Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»Π°
ΠΠΎΠΌΠ°Π½Π΄Π° sync ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠΏΡΠΈΠΈ -d ΠΈΠ»ΠΈ -data Π΄Π»Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ/ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΊΡΡΠ° ΡΠ°ΠΉΠ»Π° Π½Π° ΠΆΠ΅ΡΡΠΊΠΈΠΉ Π΄ΠΈΡΠΊ:
$ sync -d /home/testfile1.txt
4οΈβ£ Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ
Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠ»Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
ΠΊΡΡΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
$ sync -d /home/testfile1.txt ~/Desktop/Samplevideo.mp4
5οΈβ£ Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΠΏΡΠΈΠΈ -f ΠΈΠ»ΠΈ -file-system ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ·Π΅ΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ:
$ sync -f /home/Downloads/testfile2.txt
6οΈβ£ Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ
ΡΠΈΡΡΠ΅ΠΌ
ΠΠΎΠΌΠ°Π½Π΄Π° sync ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ/ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ
ΡΠΈΡΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ sync -f /home/file1.txt ~/Desktop/Samplevideo.mp4
7οΈβ£ Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° ΡΠΈΡΡΠ΅ΠΌΡ:
$ sudo sync /dev/sda3
8οΈβ£ Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ²
ΠΠ»Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ "/var/log/syslog" ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°:
$ sudo sync /var/log/syslogπ₯ ΠΠΎΠ½ΡΡΠ½Π°Ρ, ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Π°Ρ ΠΈ Π΄ΠΎΡ
ΠΎΠ΄ΡΠΈΠ²Π°Ρ ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² Π² ΡΠ΅ΡΠ΅Π²ΡΡ
ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°Ρ
PID ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² Linux
Π ΠΠ‘ Linux ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Process ID ΠΈΠ»ΠΈ PID. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΅ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ PID.
βΆοΈΠΠ½Π°ΡΠ΅Π½ΠΈΡ PID
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ PID, ΡΠΈΠ³Π½Π°Π» Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
ΠΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ PID Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΈΠ³Π½Π°Π»Π°:
Β«PID > 0Β» - Π‘ΠΈΠ³Π½Π°Π» Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Β«PID = 0Β» - ΠΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Ρ
ΠΎΠ΄ΡΡ Π² ΠΎΠ΄Π½Ρ Π³ΡΡΠΏΠΏΡ, ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠΈΠ³Π½Π°Π».
Β«PID = β1Β» - Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΈΠ³Π½Π°Π» Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ (Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ root, ΡΠΎ ΡΠΈΠ³Π½Π°Π» Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ Π²ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ init ΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ kill). ΠΠ»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (UID).
Β«PID < β1Β» - Π‘ΠΈΠ³Π½Π°Π» ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ
ΠΎΠ΄ΡΡ Π² Π³ΡΡΠΏΠΏΡ Ρ GID (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π³ΡΡΠΏΠΏΡ), ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ PID (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°) ΠΈΠΌΠ΅Π΅Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
βΆοΈΠΠΎΠΈΡΠΊ PID
Π§ΡΠΎΠ±Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ.
ps - ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π°ΠΊΡΠΈΠ²Π½ΡΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ
.
grep - Π·Π°Π΄Π°ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ps, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΏΠΎ ΡΠΏΠΈΡΠΊΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΌΡ ΠΎΡ ps.
ΠΠ·Π²Π»Π΅ΡΡ Π²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ:
ps axuΠΡΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»ΠΈΠ½Π½ΡΠΉ, ΡΠΎ Π½Π°ΠΉΡΠΈ PID ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎΠΈΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ps axu | grep bash
ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΠΎ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄:
root 447 0.0 0.4 7932 4708 tty1 S 11:26 0:00 -bash
root 477 0.0 0.0 6268 640 tty1 S+ 11:27 0:00 grep bash
ΠΠ΄Π΅ΡΡ Π²Π°ΠΆΠ½Π° ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΡΠΊΠ°. Π§ΠΈΡΠ»ΠΎ ΠΏΠΎΡΠ»Π΅ username ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ PID.
ΠΠΎΠΏ.Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠΎΠΈΡΠΊΠ°:
β«οΈ pgrep - ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈ Π²ΡΠ΄Π°Π΅Ρ PID ΡΠ΅Ρ
, ΡΡΠΈ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ Π·Π°ΠΏΡΠΎΡΡ.
pgrep firefox
β«οΈ pidof - ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ°Ρ Π½Π° Π²Ρ
ΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.
pidof gcalctool
π©βπ» ΠΠΎΠΌΠ°Π½Π΄Π° grep
grep - ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Linux, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ΅ΠΊΡΡΠ° Π² ΡΠ°ΠΉΠ»Π°Ρ
. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ Π²Π°ΠΌ Π½Π°ΠΉΡΠΈ ΡΡΡΠΎΠΊΡ Π² ΠΊΠΎΠ΄Π΅, ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Π² Π»ΠΎΠ³Π°Ρ
ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π΅ΡΠ΅, grep Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π±ΡΡΡΡΠΎ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
β
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
1. ΠΡΠΎΡΡΠΎΠΉ ΠΏΠΎΠΈΡΠΊ:
grep "word" ΡΠ°ΠΉΠ».txt
2. ΠΠΎΠΈΡΠΊ Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΎΠΉ:
grep --color=auto "pattern" file.txt
3. Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠΈΡΠΊ:
grep -r "pattern" /ΠΏΡΡΡ/ΠΊ/Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ
4. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²:
grep "pattern" --exclude="*.log" /ΠΏΡΡΡ/ΠΊ/Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ
5. ΠΠΎΠΈΡΠΊ Ρ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΡΡΠΎΠΊ:
grep -n "pattern" file.txtΠΠ°ΠΊΡΡ ΠΎΠΏΡΠΈΡ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ rmdir a/b/c, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ a, b, c?
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡΠ° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π½Π°ΡΠ°Π»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
time:
$ time ls -aΠΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
time ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΠΎΡΠ»ΠΎ Π½Π° ΡΡΠΎ.
Π£ΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ! ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Telegram 2025 β ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΈΠ½ΡΠ°ΠΉΡΡ Π³ΠΎΠ΄Π° 
