π§ Linux Junior. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Linux.
ΠΡΠΊΡΡΡΡ Π² Telegram
ΠΠ°Π½Π°Π» Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Ρ Linux. ΠΠΎΡΡΠΈ Π²ΡΠ΅ Python Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅ΡΡ Ρ Π½Π°ΠΌΠΈ Π½Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΠΆΠ΅ ΠΏΠΎΠ΄ΡΡΠ½ΡΡΡΡ. ΠΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅: @jannytg @anothertechrock
ΠΠΎΠ»ΡΡΠ΅3 095
ΠΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΈ
-124 ΡΠ°ΡΠ°
-37 Π΄Π½Π΅ΠΉ
-1230 Π΄Π΅Π½Ρ
ΠΡΡ
ΠΈΠ² ΠΏΠΎΡΡΠΎΠ²
π©βπ» ΠΠΎΠΌΠ°Π½Π΄Π° 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 ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΠΎΡΠ»ΠΎ Π½Π° ΡΡΠΎ.β ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡΠ°?
ΠΡΠ²Π΅Ρ ΡΠ΅ΡΠ΅Π· ΡΠ°Ρ.
#Π²ΠΎΠΏΡΠΎΡΡ
π©βπ» ΠΠΎΠΌΠ°Π½Π΄Π° kill
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ PID ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
kill.
ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ PID ΠΏΡΠΎΡΠ΅ΡΡΠ°:
kill 279
ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ kill Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΎΠ½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΈΠ³Π½Π°Π» SIGTERM.
Π‘ΠΈΠ³Π½Π°Π» ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ Π² Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠΈΠ³Π½Π°Π» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½.
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ²ΠΎΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Ρ SIGTERM ΠΎΠ½ ΡΠ°Π²Π΅Π½ 15.Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΈ ΠΈΡ Π½ΠΎΠΌΠ΅ΡΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π²Π΅ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
kill -l
Π₯ΠΎΡΡ SIGTERM ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² ΡΠ»ΡΡΠ°Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΈΠ³Π½Π°Π»Π° ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΠ°.
Π§ΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ SIGKILL (Π½ΠΎΠΌΠ΅Ρ 9):
kill β9 279βΉοΈ Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
kill ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ±ΠΈΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΡ
PID ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ±Π΅Π»:
kill β9 267 315 442
ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ?
Π£ΠΊΠ°Π·Π°Π² ΠΈΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ Π΅Π³ΠΎ ΡΠ±ΠΈΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
killall.
killall firefox
Π ΠΊΠΎΠΌΠ°Π½Π΄Π° pkill ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, Π²Π²Π΅Π΄Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ.
pkill fire*β ΠΠ°ΠΊ ΡΠ±ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, Π²Π²Π΅Π΄Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ?
ΠΡΠ²Π΅Ρ ΡΠ΅ΡΠ΅Π· ΡΠ°Ρ.
#Π²ΠΎΠΏΡΠΎΡΡ
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° bash
bash β ΡΡΠΎ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΊΠ°, ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±Π°Ρ Π΄ΡΡΠ³Π°Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π΅Π΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΈΜ ΡΡΡΠΎΠΊΠ΅.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ bash Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² bash Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° -c. Π’ΠΎΠ³Π΄Π° bash Π·Π°ΠΏΡΡΡΠΈΡ ΡΡΡ ΡΡΡΠΎΠΊΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π° ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π²Π΅ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΡ:
$ bash -c "ls -l"
-rw-r--r-- 1 smith smith 325 Jul 3 17:44 animals.txt
π€ ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ?
ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½ΠΎΠ²ΡΠΈΜ ΠΏΡΠΎΡΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ ΡΠΎ ΡΠ²ΠΎΠΈΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ΅ΠΊΡΡΠΈΠΈΜ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΈΜ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠ΅ΠΊΡΡΡΡ:
$ pwd
/home/smith
$ touch /tmp/badfile
$ bash -c "cd /tmp && rm badfile"
$ pwd
/home/smith
ΠΡΠΈΠΌΠ΅Ρ Π²ΡΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½Π° "tmp" ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΈΜΠ», Π° Π·Π°ΡΠ΅ΠΌ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ.
βΌοΈ ΠΠ΄Π½Π°ΠΊΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ bash -c Π²ΠΌΠ΅ΡΡΠ΅ Ρ sudo ΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°. Π’ΠΎΠ³Π΄Π°-ΡΠΎ ΡΡΠ° ΡΠΈΡΠ° ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠΎΠΌ ΠΊ ΡΡΠΏΠ΅Ρ
Ρ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΈΜΠ» ΠΆΡΡΠ½Π°Π»Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ "/var/log", Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ.
ΠΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ sudo, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΈΜΠ» ΠΆΡΡΠ½Π°Π»Π°, Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ:
$ sudo echo "New log file" > /var/log/custom.log bash: /var/log/custom.log: Permission deniedπ€ ΠΠΈΠ½ΡΡΠΎΡΠΊΡ, Π½ΠΎ Π²Π΅Π΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° sudo Π΄ΠΎΠ»ΠΆΠ½Π° Π΄Π°ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ°ΠΈΜΠ»Π° Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅! ΠΠ°ΠΊ ΡΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΉΡΠΈ Π½Π΅ ΡΠ°ΠΊ? ΠΠΎΡΠ΅ΠΌΡ
sudo Π΄Π°ΠΆΠ΅ Π½Π΅ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΡΠΎΠ»Ρ? ΠΡΠ²Π΅Ρ: ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ sudo Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π»Π°ΡΡ.
ΠΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ sudo ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ echo, Π½ΠΎ Π½Π΅ ΠΊ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΎΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΈ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ»ΠΎΡΡ.
βοΈ ΠΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎ:
1) ΠΡ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡΡ Enter.
2) ΠΠ±ΠΎΠ»ΠΎΡΠΊΠ° Π½Π°ΡΠ°Π»Π° Π²ΡΡΠΈΡΠ»ΡΡΡ Π²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
3) ΠΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΏΠΎΠΏΡΡΠ°Π»Π°ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΈΜΠ» custom.log Π² Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ "/var/log".
Π£ Π½Π°Ρ Π½Π΅ Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π·Π°ΠΏΠΈΡΡ Π² "/var/log", ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΡΠΎΠΎΠ±ΡΠΈΠ»Π°, ΡΡΠΎ Π² Π΄ΠΎΡΡΡΠΏΠ΅ ΠΎΡΠΊΠ°Π·Π°Π½ΠΎ (Permission denied).
Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΡΠΆΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅: Β«ΠΡΠΏΠΎΠ»Π½ΠΈ Π²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π°, ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΒ».
ΠΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ° ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΊ Ρ
ΠΎΡΠΎΡΠΎ ΡΠ΅ΡΠ°Π΅Ρ bash -c.
Π‘ΠΎΠ·Π΄Π°ΠΈΜΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ, Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΠΈΜΡΠ΅ Π΅Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ sudo bash -c:
$ sudo bash -c 'echo "New log file" > /var/log/custom.log'
[sudo] password for smith: xxxxxxxx
$ cat /var/log/custom.log
New log file
ΠΠ° ΡΡΠΎΡ ΡΠ°Π· ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ bash, Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ echo.
ΠΠΎ ΠΈΡΠΎΠ³Ρ, bash Π²ΡΠΏΠΎΠ»Π½ΠΈΡ Π²ΡΡ ΡΡΡΠΎΠΊΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ.
ΠΠΎΠΌΠ½ΠΈΡΠ΅ ΠΎ bash -c, ΠΊΠΎΠ³Π΄Π° sudo ΡΠΎΡΠ΅ΡΠ°Π΅ΡΡΡ Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ.1000+ Bash ΡΠΊΡΠΈΠΏΡΠΎΠ² Π΄Π»Ρ DevOps
ΠΠ΅ Π²ΡΠ΅Π³Π΄Π° ΡΠΊΡΠΈΠΏΡΡ Π½Π° Bash Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΡΠΆΠ½Ρ Π² DevOps, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΡΡ ΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ-ΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, Π° Π³ΠΎΡΠΎΠ²ΡΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π½Π΅Ρ ΠΈΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡ.
Π ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΠ°ΠΊΠΈΡ
ΡΠΈΡΡΠ°ΡΠΈΡΡ
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎ Π±ΡΡΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Bash.
Π’Π°ΠΊ ΡΡΠΎ Π΄Π΅ΡΠΆΠΈΡΠ΅ ΡΡΡ Π±ΠΎΠ»ΡΡΡΡ ΠΏΠΎΠ΄Π±ΠΎΡΠΊΡ β ΡΡΠΎ ΡΠΊΡΠΈΠΏΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ AWS, GCP, Kubernetes, Docker, PostgreSQL, MySQL, Hive, Impala, Kafka, Hadoop, Jenkins, GitHub, GitLab, BitBucket, Azure TeamCity, Spotify, LDAP, Python ΠΈ ΡΡΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ
ΠΡΡΡ Π·Π΄Π΅ΡΡ Π΄Π°ΠΆΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ .bashrc, .vimrc, .gitconfig, .screenrc, tmux
β Π‘ΡΡΠ»ΠΊΠ°: https://github.com/HariSekhon/DevOps-Bash-tools
π©βπ» ΠΠΎΠΌΠ°Π½Π΄Ρ zip ΠΈ unzip
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ
zip ΠΈ unzip Π΄Π»Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π°ΡΡ
ΠΈΠ²ΠΎΠ² ΡΠΎΡΠΌΠ°ΡΠ° ZIP.
π¦ Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π°ΡΡ
ΠΈΠ²ΠΎΠ²
Π‘ΠΎΠ·Π΄Π°ΡΠΌ Π°ΡΡ
ΠΈΠ²Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ zip. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
1. Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
zip archive.zip file.txt
2. Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ²:
zip archive.zip file1.txt file2.txt file3.txt
3. Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΏΠΊΠΈ Ρ Π΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
zip -r archive.zip folder
4. Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΏΠΊΠΈ Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ²:
zip -r archive.zip folder -x "folder/file3.txt"
π¦ Π Π°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π°ΡΡ
ΠΈΠ²ΠΎΠ²
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ Π°ΡΡ
ΠΈΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ unzip. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
1. Π Π°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π°ΡΡ
ΠΈΠ²Π° Π² ΡΠ΅ΠΊΡΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ:
unzip archive.zip
2. Π Π°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π°ΡΡ
ΠΈΠ²Π° Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ:
unzip archive.zip -d /path/to/directory
3. ΠΡΠΎΡΠΌΠΎΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π°ΡΡ
ΠΈΠ²Π° Π±Π΅Π· ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ:
unzip -l archive.zip
4. Π Π°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π°ΡΡ
ΠΈΠ²Π° Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ²:
unzip archive.zip "*.txt"Π£ K2 Cloud ΡΠΊΠΎΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΌΠΈΡΠ°ΠΏ ΠΎ ΠΊΠ°ΡΡΠ΅ΡΠ΅ Π² Linux
ΠΠΊΡΠΏΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½Π½ΡΠΉ Π³ΠΎΡΡΡ β Π±Π»ΠΎΠ³Π΅Ρ ΠΠΎΠ½ΡΡΠ°Π½ΡΠΈΠ½ ΠΠΈΠΏΠ΅ΠΆ (DeusOps) β ΠΎΠ±ΡΡΠ΄ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΡΡΡ Linux-ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°.
Π‘ΡΠ΅Π΄ΠΈ ΡΠ΅ΠΌ: ΠΊΠ°ΠΊ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ Β«Π²ΠΊΠ°ΡΠΈΡΡΡΡΒ» Π² Linux, Ρ ΡΠ΅ΠΌ ΠΎΡΠΊΠ»ΠΈΠΊΠ°ΡΡΡΡ Π½Π° Π²Π°ΠΊΠ°Π½ΡΠΈΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π·Π°Π΄Π°ΡΡ Π½Π° ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ ΠΈ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΈ ΠΏΠΎΡΠ»Π΅ ΠΎΡΡΠ΅ΡΠ°. ΠΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
ΡΠΏΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ
ΠΎΡΡΡ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ Π² DevOps ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ.
ΠΡΡΡΠ΅ΡΠ° ΠΏΡΠΎΠΉΠ΄Π΅Ρ ΠΎΠ½Π»Π°ΠΉΠ½, 19 ΠΌΠ°ΡΡΠ° Π² 18:00 (msk). ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅
