π§ Linux Junior. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Linux.
ΠΡΠ΄ΠΊΡΠΈΡΠΈ Π² Telegram
ΠΠ°Π½Π°Π» Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Ρ Linux. ΠΠΎΡΡΠΈ Π²ΡΠ΅ Python Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅ΡΡ Ρ Π½Π°ΠΌΠΈ Π½Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΠΆΠ΅ ΠΏΠΎΠ΄ΡΡΠ½ΡΡΡΡ. ΠΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅: @jannytg @anothertechrock
ΠΠΎΠΊΠ°Π·Π°ΡΠΈ Π±ΡΠ»ΡΡΠ΅3 117
ΠΡΠ΄ΠΏΠΈΡΠ½ΠΈΠΊΠΈ
-124 Π³ΠΎΠ΄ΠΈΠ½ΠΈ
ΠΠ΅ΠΌΠ°Ρ Π΄Π°Π½ΠΈΡ
7 Π΄Π½ΡΠ²
-1130 Π΄Π΅Π½Ρ
ΠΡΡ
ΡΠ² Π΄ΠΎΠΏΠΈΡΡΠ²
β ΠΠ°ΠΊ Π±ΡΡΡΡΠΎ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ°ΠΉΠ» Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠ°ΠΌΡΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ?
ΠΡΠ²Π΅Ρ ΡΠ΅ΡΠ΅Π· ΡΠ°Ρ.
#Π²ΠΎΠΏΡΠΎΡΡ
π₯ Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ su ΠΈ su -
ΠΠΈ Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ Π½Π΅ ΡΠ΅ΠΊΡΠ΅Ρ, ΡΡΠΎ Linux - ΡΠΈΡΡΠ΅ΠΌΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡ ΡΠ°Π·Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ ΡΠ΅ΡΡΠΈΡ ΠΎΡ ΠΠ°ΡΠΈ, Π·Π°Π²ΡΡΠ° ΠΎΡ ΠΠ΅ΡΠΈ.
ΠΠΎΠ³Π΄Π° Π²Ρ Π² ΡΠ΅ΡΡΠΈΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π», ΡΡΠ°ΡΡΡΠ΅Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ·Π΅ΡΠ°: Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΊΡΠΈΠΏΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
ΠΡΠ²Π°Π΅Ρ, ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ, ΡΠ°Π±ΠΎΡΠ°Ρ Π² ΡΠ΅ΡΡΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠ³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΡΡΡ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
su (substitute user), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅:
$ su vasya
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΉΠΌΠ΅Ρ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ (USER, HOME ...) ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ "ΠΠ°ΡΠΈΠ½Ρ" ΡΠΊΡΠΈΠΏΡΡ: /home/vasya/.bashrc ΠΈ Ρ.Π΄.:
$ export USER1VAR="vasya"
$ su xoadmin
$ printenv | grep USER
USER=xoadmin
USER1VAR=vasya
ΠΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΊΠ°ΡΠ° Π²ΡΡ
ΠΎΠ΄ΠΈΡ. ΠΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΠ°ΡΠΈΠ½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΡΠ·Π΅ΡΠ° xoadmin. Π’Π°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΅Π³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΠΎΡΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ΅Π΄Ρ, ΠΊΠ°ΠΊ ΠΏΡΠΈ ΡΠΈΡΡΠΎΠΌ Π²Ρ
ΠΎΠ΄Π΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ su -:
$ su - xoadmin
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΌΡ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ ΡΠΈΠΏΠ° "login shell", ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ "/etc/profile", "~/.bash_profile".
Π’Π°ΠΊΠΆΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ su -, Π½Π°Ρ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠΉ Π΄Π»Ρ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ΅Π»ΠΎΡΡ, Π½ΠΎ ΡΠ°ΠΊΡ:
$ pwd
/home/vasya/Music
$ su - xoadmin
$ pwd
/home/xoadminπ₯ ΠΠ΅Π±ΠΈΠ½Π°Ρ ΠΏΠΎ Linux: Π‘ Windows Π½Π° Linux: ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°
ΠΠ° Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅:
- Π ΡΠ΅ΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ Linux ΠΈ Windows
- ΠΠ°ΠΊΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Linux
- ΠΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Linux ΠΈ Π³Π΄Π΅ ΠΈΡΠΊΠ°ΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Π΅Π±ΠΈΠ½Π°ΡΠ° Π²Ρ:
- ΠΠ°ΡΡΠΈΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Linux
- ΠΠΎΠΉΠΌΠ΅ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ
- Π‘ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ
- Π Π°Π·Π±Π΅ΡΠ΅ΡΠ΅ΡΡ, ΠΊΠ°ΠΊ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΊ Linux ΠΏΠΎΡΠ»Π΅ Windows
π ΠΠ»Ρ ΡΡΠ°ΡΡΠΈΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ: https://vk.cc/cUMPNt
π ΠΡΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ Π²Π΅Π±ΠΈΠ½Π°ΡΠ° ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π° ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΡΡΡΠ° "Administrator Linux. Basic"
ΠΡΡΡ ΡΠΎΠ·Π΄Π°Π½ Π΄Π»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ Ρ
ΠΎΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° ΠΊ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΡ ΠΎΡΠ²ΠΎΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Bash, ΠΏΠΎΠΉΠΌΡΡΠ΅, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Ρ ΡΠ΅ΡΠΈ, Π½Π°ΡΡΠΈΡΠ΅ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ MySQL, Docker, Git, Prometheus ΠΈ Grafana. ΠΡΠΎ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½Ρ, Π±Π΅Π· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠΉ ΡΠΎΡΡ.
π ΠΠΎΠ²ΡΡΠΈΡΡ ΡΠ²ΠΎΠΈ Π½Π°Π²ΡΠΊΠΈ: https://vk.cc/cUMPUk
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576
π©βπ» ΠΠΎΠΌΠ°Π½Π΄Ρ apt ΠΈ apt-get
ΠΡΠΎ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅.
β
apt-get
apt-get - ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡ
ΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
Debian ΠΈ Ubuntu.
π© ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° apt-get:
βοΈ Π¨ΠΈΡΠΎΠΊΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°. apt-get ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ Π² Debian ΠΈ Ubuntu, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π΅ ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠΉ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ.
βοΈ ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ. ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ apt-get Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ.
π§ ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ apt-get:
βοΈ ΠΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². apt-get ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈΠ·-Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
βοΈ ΠΠ΅ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ apt-get ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π²ΠΎΠ΄Π° Π΄Π»ΠΈΠ½Π½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ².
β
apt
apt - ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
Debian ΠΈ Ubuntu.
ΠΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° APT (Advanced Package Tool), ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅.
π© ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° apt:
βοΈ Π£ΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅. apt ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.
βοΈ ΠΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². apt Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
π§ ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ apt:
βοΈ ΠΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ. ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ apt Π²ΡΠ²ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ apt-get, ΡΡΠΎ Π·Π°ΡΡΡΠ΄Π½ΡΠ΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°.
βοΈ ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π². apt ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ apt-get, Ρ
ΠΎΡΡ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ.ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»Π°Ρ
(files) ΡΡΡΠΎΠΊ, Π³Π΄Π΅ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ BOB, Bob, BOb ΠΈΠ»ΠΈ BoB.
Π£ΡΠΈΠ»ΠΈΡΠ°
xargs Π² Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΈΡ
Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄. Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ls *.log | xargs rm
Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. Π Π°Π±ΠΎΡΠ°Π΅Ρ Ρ find, grep ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π·ΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ, ΡΠΎ ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ rm:
rm *.log
rm file{1..100}.txt
ΠΡΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ.
ΠΠΎ xargs ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡΠΎΡΡΡ
ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ:
ls | grep "temp" | xargs rm
ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠΈΠ»ΡΡΡΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ fzf, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΡΡΡ ΡΠ°ΠΉΠ»Ρ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎ:
ls | fzf -m | xargs -r rm
ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ², Π²ΡΠ±ΠΈΡΠ°Π΅ΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ, ΠΈ xargs ΠΈΡ
ΡΠ΄Π°Π»ΡΠ΅Ρ. ΠΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ.
#Π²ΠΎΠΏΡΠΎΡΡβ ΠΠ°ΠΊ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ?
ΠΡΠ²Π΅Ρ ΡΠ΅ΡΠ΅Π· ΡΠ°Ρ.
#Π²ΠΎΠΏΡΠΎΡΡ
π₯ Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° (ACL) Π² Linux
ΠΠ±ΡΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠ°Π² Π² Linux ΠΏΡΠΎΡΡΠ°: Π΅ΡΡΡ Π²Π»Π°Π΄Π΅Π»Π΅Ρ, Π³ΡΡΠΏΠΏΠ° ΠΈ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅. ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠΎΠ³ΠΎ Ρ
Π²Π°ΡΠ°Π΅Ρ, Π½ΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π°.
Π ΡΡΠΎ Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ user1 ΠΈ user2 ΠΈΠΌΠ΅Π»ΠΈ ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΠ°Π²Π° ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠ°ΠΉΠ»Ρ? ΠΠ»ΠΈ ΡΡΠΎΠ±Ρ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ» Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ?
Π’ΡΡ Π½Π° ΡΡΠ΅Π½Ρ Π²ΡΡ
ΠΎΠ΄ΠΈΡ ACL β Access Control List.
βοΈ Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ACL
ACL ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΏΡΠ°Π²Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΠΈ Π³ΡΡΠΏΠΏΡ, Π° Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΡ. ΠΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅ Π½Π° βΠ΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ»ΠΎΠΉβ ΠΏΠΎΠ²Π΅ΡΡ
ΠΎΠ±ΡΡΠ½ΡΡ
ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ.
π ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π°Π»ΠΈΡΠΈΡ ACL
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠ°ΠΉΠ»:
ls -l report.txt
-rw-r-----+ 1 marina staff 2048 Oct 22 11:20 report.txt
ΠΠ»ΡΡΠΈΠΊ + ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ°Π² (rw-r-----+) Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ Ρ ΡΠ°ΠΉΠ»Π° Π΅ΡΡΡ ACL.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅:
getfacl report.txtΠ Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
# file: report.txt # owner: marina # group: staff user::rw- user:john:r-- group::r-- mask::r-- other::---ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΊΡΠΎΠΌΠ΅ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΠΈ Π³ΡΡΠΏΠΏΡ, Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ john. βοΈ ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ACL ΠΡΠ΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ john ΠΏΡΠ°Π²Π° Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°:
setfacl -m u:john:r file.txt
ΠΡΠ΄Π°ΡΡ Π³ΡΡΠΏΠΏΠ΅ designers ΠΏΡΠ°Π²Π° Π½Π° Π·Π°ΠΏΠΈΡΡ:
setfacl -m g:designers:rw file.txtβ Π£Π΄Π°Π»ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ ACL:
setfacl -x u:john file.txtΠ‘Π±ΡΠΎΡΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠ°Π²Π° (ΠΎΡΡΠ°Π²ΠΈΠ² ΡΠΎΠ»ΡΠΊΠΎ Π±Π°Π·ΠΎΠ²ΡΠ΅ chmod-ΠΏΡΠ°Π²Π°):
setfacl -b file.txtπ Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ACL ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ACL ΠΌΠΎΠΆΠ½ΠΎ "ΠΏΡΠΈΠΊΡΠ΅ΠΏΠΈΡΡ" ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ, ΡΡΠΎΠ±Ρ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΈ ΠΏΡΠ°Π²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠΈΠΌΠ΅Ρ: Π²ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π³ΡΡΠΏΠΏΡ team ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΈΡΠ°ΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /srv/docs:
setfacl -d -m g:team:rw /srv/docs
Π’Π΅ΠΏΠ΅ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ°ΠΉΠ», ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π²Π½ΡΡΡΠΈ /srv/docs, ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ°Π²Π°.
π’ ΠΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°ΡΡ
mask Π² Π²ΡΠ²ΠΎΠ΄Π΅ getfacl β ΡΡΠΎ "ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»Ρ" ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ
ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ACL. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ΄Π°Π½Ρ ΠΏΡΠ°Π²Π° rwx, Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ mask ΡΡΠΎΠΈΡ rw-, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΎ.
ΠΠ°ΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ:
setfacl -m m:rw file.txtβοΈ ΠΡΠΈΠΌΠ΅Ρ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ ΠΡΡΡΡ Π² /var/www/project Π»Π΅ΠΆΠΈΡ ΡΠ°ΠΉΡ, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π²Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°: admin ΠΈ editor. ΠΠ΄ΠΌΠΈΠ½ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ, Π° ΡΠ΅Π΄Π°ΠΊΡΠΎΡ β ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°:
chown -R admin:admin /var/www/project
setfacl -R -m u:editor:rw /var/www/project/content
setfacl -d -m u:editor:rw /var/www/project/content
ΠΠ΅ΡΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° setfacl Π½Π°Π·Π½Π°ΡΠ°Π΅Ρ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π² /var/www/project/content. ΠΡΠΎΡΠ°Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΡΠ°Π², ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ½Π°ΡΠ»Π΅Π΄ΡΡΡ Π±ΡΠ΄ΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π² /var/www/project/content.
Π’Π΅ΠΏΠ΅ΡΡ editor ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ Π² /content (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π²ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ), Π½ΠΎ Π½Π΅ Π·Π°ΡΡΠΎΠ½Π΅Ρ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.π©βπ» ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ curl
ΠΠΎΠΌΠ°Π½Π΄Π°
curl β ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ
ΠΌΠΎΡΠ½ΡΡ
ΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΡΡΠΈΠ»ΠΈΡ Π² Linux. ΠΠ½Π° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌ (HTTP, HTTPS, FTP ΠΈ Π΄Ρ.) ΠΏΡΡΠΌΠΎ ΠΈΠ· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² curl ΡΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½.
βοΈ ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
βΊΠ£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ. Π§ΡΠΎΠ±Ρ ΠΏΡΠ΅ΡΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cURL ΠΏΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ (Π²ΡΠ΅ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
):
$ curl -m 60 example.com
Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ, Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΠΏΠΎΠΏΡΡΠΎΠΊ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΡΠ·Π»ΠΎΠΌ.
ΠΡΠ° ΠΎΠΏΡΠΈΡ ΡΠΎΠΆΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
. Π ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
$ curl --connect-timeout 60 example.com
βΊΠ£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ
Π£ΡΠΈΠ»ΠΈΡΠ° cURL ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° FTP-ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡ -u.
$ curl -u username:password ftp://example.com
ΠΠ°Π½Π½ΡΡ ΠΎΠΏΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ Π»ΡΠ±ΡΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ, Π½ΠΎ FTP ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΡΠΌ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΌ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΡΠ°ΠΉΠ», Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΡ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ Π½ΡΠΆΠ½ΠΎΠΌΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ:
$ curl -u username:password ftp://example.com/readme.txt
βΊΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΊΡΠΈ
cURL ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ curl ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ HTTP-ΠΏΡΠΎΠΊΡΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. Π§ΡΠΎΠ±Ρ Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠ°ΡΠΈΠΊ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠΊΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡ -x.
$ curl -x 192.168.1.1:8080 http://example.com
ΠΠ°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±ΡΠ·ΡΠ΅Ρ cURL ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΠΏΡΠΎΠΊΡΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ 192.168.1.1 Π½Π° ΠΏΠΎΡΡΡ 8080 ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° example.com
ΠΡΠΎΠΊΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ. ΠΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° Ρ FTP-ΡΠ΅ΡΠ²Π΅ΡΠ°.
$ curl -x 192.168.1.1:8080 ftp://example.com/readme.txtEffective group id ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ°:
Π§ΡΠΎΠ±Ρ Π²ΡΡΠ²ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ, Π·Π°Π½ΠΈΠΌΠ°ΡΡΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
ps, sort ΠΈ head:
ps -eo pid,comm,%mem --sort=-%mem | headΠΡΠΎΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ PID, ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΠΏΡΠΎΡΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ
%mem Π½Π° %cpu, ΡΡΠΎΠ±Ρ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
#Π²ΠΎΠΏΡΠΎΡΡβ ΠΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ?
ΠΡΠ²Π΅Ρ ΡΠ΅ΡΠ΅Π· ΡΠ°Ρ.
#Π²ΠΎΠΏΡΠΎΡΡ
βΉοΈ Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π»ΠΎΠ³ΠΈ Linux
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π»ΠΎΠ³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ /var/log Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
Linux, ΡΠ²Π»ΡΡΡΡΡ Π²Π°ΠΆΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠΎΡ ΠΊΡΠ°ΡΠΊΠΈΠ΅ Π·Π°ΠΌΠ΅ΡΠΊΠΈ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
Π»ΠΎΠ³Π°Ρ
:
π£ syslog: ΠΠΎΠ³ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
ΡΠ»ΡΠΆΠ± ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΠΉΠ» ΠΆΡΡΠ½Π°Π»Π°, Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ
Π΄ΡΡΠ³ΠΈΡ
Π»ΠΎΠ³ΠΎΠ².
π£ auth.log: ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠΏΠ΅ΡΠ½ΡΠ΅ ΠΈ Π½Π΅ΡΠ΄Π°ΡΠ½ΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ Π²Ρ
ΠΎΠ΄Π°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΠΈ ΡΠΎΠ±ΡΡΠΈΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
π£ kern.log: ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ ΡΠ΄ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ° ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ΄ΡΠ°.
π£ messages: Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ Π»ΠΎΠ³-ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ°ΡΡΡ ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ.
π£ dmesg: ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΊΠΎΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΡΠ΄ΡΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±Π·ΠΎΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ ΡΠ΄ΡΠΎΠΌ, ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ.
π£ cron: ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π·Π°Π΄Π°Π½ΠΈΡΠΌΠΈ cron ΠΈ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΡΠ΅ΠΌΡ ΠΈΡ
Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΡΠΈΠ΅ ΠΏΡΠΈ ΠΈΡ
Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ.
π£ secure: ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠΏΡΡΠΊΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
π£ apache/access.log ΠΈ apache/error.log: ΠΠΎΠ³ΠΈ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° Apache. access.log Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π»ΠΎΠ³ΠΈ HTTP-Π΄ΠΎΡΡΡΠΏΠ°, Π° error.log ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Apache.
π£ nginx/access.log ΠΈ nginx/error.log: ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π»ΠΎΠ³Π°ΠΌ Apache, ΡΡΠΈ Π»ΠΎΠ³ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Ρ Π΄Π»Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° Nginx ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ.
π£ mysql/error.log: ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, Π²ΠΎΠ·Π½ΠΈΠΊΡΠΈΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
MySQL, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅, ΡΠ±ΠΎΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΡΠ±ΠΎΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
.
ΠΡΠΈ Π»ΠΎΠ³ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎΠ±ΡΡΠΈΡΡ
Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΏΡΠΈ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ Π°Π½Π°Π»ΠΈΠ· ΡΡΠΈΡ
Π»ΠΎΠ³ΠΎΠ² ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π·Π΄ΠΎΡΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π²ΡΡΠ²Π»ΡΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠ΅ΡΡΡΠ·Π½ΡΠ΅.
π©βπ» ΠΠΎΠΌΠ°Π½Π΄Π° read Π² Linux
ΠΠΎΠΌΠ°Π½Π΄Π°
read Π² Linux ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΈ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΅Π³ΠΎ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΠ½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π° Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ
, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΠΎΡΠΈΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π°Π½Π½ΡΠ΅.
βοΈ Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
read [ΠΎΠΏΡΠΈΠΈ] ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅βοΈ ΠΠΏΡΠΈΠΈ:
-p "ΡΠ΅ΠΊΡΡ" β Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π²Π²ΠΎΠ΄ΠΎΠΌ.
-t <ΡΠ΅ΠΊ> β ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΡΠ°ΠΉΠΌΠ°ΡΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°).
-n <ΡΠΈΡΠ»ΠΎ> β ΡΡΠΈΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (Π±Π΅Π· ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Enter).
-s β ΡΠΊΡΡΡΡΠΉ Π²Π²ΠΎΠ΄ (ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ).
-a ΠΌΠ°ΡΡΠΈΠ² β ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΡΠ»ΠΎΠ²Π° Π²Π²ΠΎΠ΄Π° Π² ΠΌΠ°ΡΡΠΈΠ².
-r β ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΏΠ΅ΡΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΊΠΎΡΠΎΠΉ ΡΠ΅ΡΡΡ (\).
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ read Π½Π΅ Π·Π°Π΄Π°Π½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, Π²ΡΡ ΡΡΡΠΎΠΊΠ° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ REPLY:
echo "Hello, world!" | (read; echo "$REPLY")
βοΈ ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
1οΈβ£ ΠΡΠΎΡΡΠ°Ρ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΡ Π»ΡΠ±ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ:
read -p "Press any key to continue " -n 1
2οΈβ£ ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ:
read -p "Press any key to continue (autocontinue in 30 seconds) " -t 30 -n 1
3οΈβ£ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΈΠΊΠ»Π° Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ:
REPLY=""
until [ "$REPLY" = "y" ]; do
# executing some command
read "Press 'y' to continue or 'n' to break, any other key to repeat this step" -n 1
if [ "$REPLY" = 'n' ]; then exit 1; fi
done
4οΈβ£ Π‘ΠΊΡΡΡΡΠΉ Π²Π²ΠΎΠ΄ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ°ΡΠΎΠ»Ρ):
read -s -p "ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ: " password
echo "Is your password really $password? "
5οΈβ£ Π§ΡΠ΅Π½ΠΈΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ²:
read -a words
echo "ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ: ${words[0]}"
echo "ΠΡΠΎΡΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ: ${words[1]}"
ΠΡΠ»ΠΈ Π²Π²Π΅ΡΡΠΈ Linux Bash, ΠΌΠ°ΡΡΠΈΠ² words Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ["Linux", "Bash"].Π§ΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, Π³Π΄Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
which:
which pythonΠΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ. #Π²ΠΎΠΏΡΠΎΡΡ
β ΠΠ°ΠΊ Π±ΡΡΡΡΠΎ ΡΠ·Π½Π°ΡΡ, Π³Π΄Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ?
ΠΡΠ²Π΅Ρ ΡΠ΅ΡΠ΅Π· ΡΠ°Ρ.
#Π²ΠΎΠΏΡΠΎΡΡ
π₯ ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Π»ΠΈΡΡ Π² ΠΈΡΡΠΎΡΠΈΡ
Π Linux Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π½Π΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΈΡΡΠΎΡΠΈΡ β Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ ΡΠΈΠΏ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ.
1οΈβ£ ΠΡΠΎΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± β ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΠ±Π΅Π» Π² Π½Π°ΡΠ°Π»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ls -la # ΠΠ΅ΡΠ΅Π΄ ls ΡΡΠΎΠΈΡ ΠΏΡΠΎΠ±Π΅Π»
β οΈ ΠΠ°ΠΆΠ½ΠΎ: ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ HISTCONTROL ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ignorespace.
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ:
echo $HISTCONTROL
ΠΡΠ»ΠΈ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ignoredups:ignorespace ΠΈΠ»ΠΈ ignoreboth, Π·Π½Π°ΡΠΈΡ Π²ΡΡ ΠΎΠΊ. ΠΡΠ»ΠΈ Π½Π΅Ρ β ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ:
export HISTCONTROL=ignoredups:ignorespaceΠ’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ ΠΏΡΠΎΠ±Π΅Π»Π°, Π½Π΅ ΠΏΠΎΠΏΠ°Π΄ΡΡ Π² ~/.bash_history. 2οΈβ£ ΠΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ HISTIGNORE ΠΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Bash Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π²ΠΎΠ²ΡΠ΅.
export HISTIGNORE="ls:pwd:exit"
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΡΡΠ΅Π·Π½ΡΡ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡ
Π²ΡΠ·ΡΠ²Π°ΡΡ.
Π¨Π°Π±Π»ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ *:
export HISTIGNORE="ls *:cd *"
ΠΡΡ, ΡΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ls ΠΈΠ»ΠΈ cd, Π±ΡΠ΄Π΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡΡΡ.
3οΈβ£ Π£Π΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ΅ΡΠ΅ΡΡ Π΅Ρ "Π·Π°Π΄Π½ΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌ". ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΠ΅ΡΠ²Π° ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΅Π΅ Π½ΠΎΠΌΠ΅Ρ Π² ΠΈΡΡΠΎΡΠΈΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ, ΡΠΊΠ°Π·Π°Π² ΡΡΠΎΡ Π½ΠΎΠΌΠ΅Ρ:
history
history -d <Π½ΠΎΠΌΠ΅Ρ>
β οΈ ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² Bash ΠΈΡΡΠΎΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² Π΄Π²ΡΡ
ΠΌΠ΅ΡΡΠ°Ρ
:
π΄ Π ΠΏΠ°ΠΌΡΡΠΈ β ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ°Ρ ΡΠ΅ΡΡΠΈΡ (ΡΠΎ, ΡΡΠΎ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, Π²ΡΠΏΠΎΠ»Π½ΡΡ history)
π΄ Π ΡΠ°ΠΉΠ»Π΅ ~/.bash_history β ΡΡΠΎ ΡΠΎΡ
ΡΠ°Π½ΡΠ½Π½Π°Ρ ΠΈΡΡΠΎΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ Π²ΡΡ
ΠΎΠ΄Π΅ ΠΈΠ· shell.
ΠΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ history -d <Π½ΠΎΠΌΠ΅Ρ> Bash ΡΠ΄Π°Π»ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠ»ΠΈ Π½Π° ΡΡΠΎΠΌ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΉΡΠΈ ΠΈΠ· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΡΡΠ°ΡΠ°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Π΅ΡΠ½ΡΡΡΡ.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΉΠ» Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΡΠΈΡ -w (write):
history -wΠΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ Π·Π°ΠΊΡΡΠ²Π°ΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ. Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ°ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
history -d, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ:
history -d $((HISTCMD-1)); history -w
Π’.ΠΎ., ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
history # ΠΠ°ΠΉΡΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
history -d <Π½ΠΎΠΌΠ΅Ρ> # Π£Π΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ
history -d $((HISTCMD-1)); history -w # Π£Π΄Π°Π»ΠΈΡΡ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ°ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ history -d ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΉΠ» ΠΈΡΡΠΎΡΠΈΠΈ
4οΈβ£ ΠΡΠΊΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ "Π² ΡΠ΅Π½ΠΈ", ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ:
set +o history # Π²ΡΠΊΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΠΈΡΡΠΎΡΠΈΡ
set -o history # Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ
ΠΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ! ΠΠΎΡΠ»ΡΠ΄ΠΆΠ΅Π½Π½Ρ Telegram Π·Π° 2025 β Π³ΠΎΠ»ΠΎΠ²Π½Ρ ΡΠ½ΡΠ°ΠΉΡΠΈ ΡΠΎΠΊΡ 
