en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels πŸ‘‰ If you want to see the tag, subscribe

🐧 Linux Junior. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Linux.

🐧 Linux Junior. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Linux.

Open in Telegram

Канал для программистов Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с Linux. ΠŸΠΎΡ‡Ρ‚ΠΈ всС Python Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅Ρ€Ρ‹ с Π½Π°ΠΌΠΈ Π½Ρƒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΎΠΆΠ΅ подтянутся. По Ρ€Π΅ΠΊΠ»Π°ΠΌΠ΅: @jannytg @anothertechrock

Show more
3 072
Subscribers
+224 hours
+17 days
-1030 days
Posts Archive
Для Π·Π°ΠΌΠ΅Π½Ρ‹, замСщСния ΠΈΠ»ΠΈ удалСния символов ΠΈΠ· стандартного Π²Π²ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ консольная ΠΊΠΎΠΌΠ°Π½Π΄Π° tr. Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ символы:
tr -cd '\11\12\15[:print:]' < bad.txt > clean.txt
ΠžΠΏΡ†ΠΈΠΈ: πŸ”΄-c β€” ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π°Π±ΠΎΡ€, Ρ‚.Π΅. всС символы, Π½Π΅ входящиС Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ πŸ”΄-d β€” удаляСт Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ символы (вмСсто Π·Π°ΠΌΠ΅Π½Ρ‹) Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ символов для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ: πŸ”΄ \11, \12, \15 β€” это табуляция (\t), ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки (\n) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ (\r), записанныС Π² Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ (octal) Π²ΠΈΠ΄Π΅. КаТдоС число β€” это ASCII-ΠΊΠΎΠ΄ символа. πŸ”΄ [:print:] β€” всС Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ символы. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° оставит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стандартныС ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Π΅ символы, Ρ‚Π°Π±Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ строк. #вопросы

❓ Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ тСкст ΠΎΡ‚ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Ρ… символов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ· PDF? ΠžΡ‚Π²Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· час. #вопросы

πŸ”₯ Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок (brace expansion) Π€ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки {} Π² Bash ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ выраТСния Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:
echo {1..10}
# 1 2 3 4 5 6 7 8 9 10
МоТно Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ сторону:
echo {10..1}
# 10 9 8 7 6 5 4 3 2 1
βš™οΈ Π¨Π°Π³ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π·Π°Π΄Π°Ρ‘Ρ‚ шаг:
echo {1..501..100}
# 1 101 201 301 401 501
МоТно ΠΈ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ сторону:
echo {501..1..100}
# 501 401 301 201 101 1
βš™οΈ ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΡƒΠΊΠ² Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ seq, Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки ΡƒΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π±ΡƒΠΊΠ²Π°ΠΌΠΈ:
echo {A..P}
# A B C D E F G H I J K L M N O P
Π¨Π°Π³ Ρ‚ΠΎΠΆΠ΅ поддСрТиваСтся:
echo {A..P..2}
# A C E G I K M O
βš™οΈ ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ практичСскиС ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ сразу нСсколько Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ:
mkdir ~/Sources/{test1,test2,test3}
Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» ΠΈ ΠΏΠ°Ρ‚Ρ‡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
diff {orig,patched}/path/to/prog.c
Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ бэкап Ρ„Π°ΠΉΠ»Π°:
cp -p file.txt{,.bak}
# создаст file.txt ΠΈ file.txt.bak
πŸ’‘ Если ΠΏΠ΅Ρ€Π΅Π΄ запятой Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅Ρ‚, Bash просто подставляСт ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ⚠️ Π’Π°ΠΆΠ½ΠΎ: ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ {} Π»ΠΎΠΌΠ°ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅!
echo file{1.. 2}.txt  # Π½Π΅ сработаСт
βš™οΈ Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° МоТно ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π²Ρ‹Π²ΠΎΠ΄ Π² tr:
echo {A..P..2} | tr -d " "
# ACEGIKMO
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ псСвдоним для получСния n-ΠΉ Π±ΡƒΠΊΠ²Ρ‹ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°:
alias nth="echo {A..Z} | tr -d ' ' | cut -c"
nth 10
# J
βš™οΈ {} vs [] ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки [] β€” это сопоставлСниС с шаблоном ΠΈΠΌΡ‘Π½ Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ {} β€” просто гСнСрация ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
ls file[1-9].txt
# ΠΎΡ‚Π±Π΅Ρ€Ρ‘Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹
ls file{1..9}.txt
# попытаСтся вывСсти всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π΄Π°ΠΆΠ΅ Ссли ΠΈΡ… Π½Π΅Ρ‚
βš™οΈ Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ Π½Π°Π±ΠΎΡ€ΠΎΠ²:
touch {a,b,c}.{hpp,cpp}
# создаст a.cpp a.hpp b.cpp b.hpp c.cpp c.hpp
Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ:
mkdir -p {source,help{/pages,/yelp,/images}}
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° получится такая:
.
β”œβ”€β”€ help
β”‚   β”œβ”€β”€ images
β”‚   β”œβ”€β”€ pages
β”‚   └── yelp
└── source

πŸ‘©β€πŸ’» Команда watch Π² Linux Π’Π°ΠΌ Π·Π½Π°ΠΊΠΎΠΌΠ° ситуация, ΠΊΠΎΠ³Π΄Π° ТдСшь Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ FTP? ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎ приходится Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. А это ΠΏΠΎΡ€ΠΎΠΉ Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Для Ρ‚Π°ΠΊΠΈΡ… случаСв ΠΈ пригодится ΠΊΠΎΠΌΠ°Π½Π΄Π° watch. Она ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для пСриодичСского запуска Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ отобраТСния Π΅Ρ‘ Π²Ρ‹Π²ΠΎΠ΄Π° Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для "ΠΆΠΈΠ²ΠΎΠ³ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°" ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² систСмС. βš™οΈ Бинтаксис:
watch [ΠΎΠΏΡ†ΠΈΠΈ] ΠΊΠΎΠΌΠ°Π½Π΄Π°
По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ watch запускаСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 2 сСкунды. βš™οΈ ΠžΠΏΡ†ΠΈΠΈ: -n <сСк> β€” Π·Π°Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» обновлСния Π² сСкундах (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 2). -d β€” ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ измСнСния ΠΌΠ΅ΠΆΠ΄Ρƒ обновлСниями. -t β€” ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ (Π±Π΅Π· отобраТСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹). -g β€” Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Π²ΠΎΠ΄ измСнится. βš™οΈ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования: 1️⃣ ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ свободного мСста Π½Π° дискС. ΠšΠ°ΠΆΠ΄Ρ‹Π΅ 5 сСкунд обновляСтся информация ΠΎ дисках:
watch -n 5 df -h
2️⃣ НаблюдСниС Π·Π° процСссами. ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ процСссов apache, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 2 сСкунды:
watch -n 2 ps aux | grep apache
3️⃣ ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² /proc/meminfo ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅ строки Π±ΡƒΠ΄ΡƒΡ‚ подсвСчСны:
watch -d cat /proc/meminfo
4️⃣ ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ использования CPU ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ процСссом. ΠšΠ°ΠΆΠ΄ΡƒΡŽ сСкунду выводится Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° CPU ΠΈ памяти процСссом firefox:
watch -n 1 "ps -C firefox -o %cpu,%mem,cmd"
5️⃣ Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ. watch Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° состояниСм Ρ„Π°ΠΉΠ»Π° ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ измСнятся:
watch -g ls -l file.txt

Каким Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ссли Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ cat file1 file2 1>2 2>&1
Anonymous voting

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° cat Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄ ⬆️
ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° cat Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄ ⬆️

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ 10 Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ IP-адрСсов Π² Ρ„Π°ΠΉΠ»Π΅ access.log:
grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' access.log | sort | uniq -c | sort -nr | head
ΠŸΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ‚ΠΎΠΏ IP ΠΏΠΎ количСству ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ. НСзамСнимо для Π°Π½Π°Π»ΠΈΠ·Π° Π²Π΅Π±-сСрвСров. #вопросы

❓ Как Π½Π°ΠΉΡ‚ΠΈ самыС часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ IP-адрСса Π² Π»ΠΎΠ³Π°Ρ…? ΠžΡ‚Π²Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· час. #вопросы

πŸ”₯ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅ΠΌΠΎΠ½Ρ‹ (daemons) Π² Linux? Π”Π΅ΠΌΠΎΠ½Ρ‹, ΠΈΠ»ΠΈ "daemons", Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ слСдят Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ аспСктами систСмы для обСспСчСния Π΅Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Они ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ подсистСмы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡΠ΅Ρ‚ΡŒ. Π’ Linux ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ слуТбам Π² Windows ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя ΠΈΠ»ΠΈ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° события. Π”Π΅ΠΌΠΎΠ½Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΏΡ€ΠΈ стартС систСмы ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² качСствС систСмных слуТб. Они Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для своСго запуска ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π‘ΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ процСссом ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° fork(), создавая копию ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ процСсса. Π”Π΅ΠΌΠΎΠ½Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² систСмС ΠΏΠΎ ΠΈΡ… процСссам, ΠΈΡ… ΠΈΠΌΠ΅Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° "d". Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ps, top, htop ΠΈ pstree. Команда pstree ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ процСссы Π² Π²ΠΈΠ΄Π΅ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π΅ΠΌΠΎΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² систСмС. ℹ️ Π’ систСмС ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π΅ΠΌΠΎΠ½Ρ‹, Π²ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…: πŸ”΄ systemd: Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ всСх процСссов с PID=1, Π°Π½Π°Π»ΠΎΠ³ init. πŸ”΄ rsyslogd: рСгистрируСт систСмныС сообщСния с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ функциями ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с syslogd. πŸ”΄ udisksd: ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с устройствами хранСния Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. πŸ”΄ logind: управляСт Π²Ρ…ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² систСму.

πŸ‘©β€πŸ’» Команда shred ΠžΠ±Ρ‹Ρ‡Π½ΠΎ для удалСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Linux ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° rm. Но Ρ„Π°ΠΉΠ»Ρ‹, ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ с диска. Π˜Ρ… содСрТимоС остаСтся Π½Π° дискС Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° занятоС ΠΈΠΌΠΈ пространство Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ пСрСзаписано Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ. Но Ρ‡Ρ‚ΠΎ, Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ восстановил? Для этого сущСствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π° shred. Она пСрСзаписываСт содСрТимоС Ρ„Π°ΠΉΠ»Π° случайными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ нСсколько Ρ€Π°Π·, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎ ТСланию удаляСт Π΅Π³ΠΎ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ восстановлСниС практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ. βš™οΈ Команда:
shred [ΠΎΠΏΡ†ΠΈΠΈ] Ρ„Π°ΠΉΠ»
ΠžΠΏΡ†ΠΈΠΈ: -n β€” ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» n Ρ€Π°Π· -z β€” Π΄Π΅Π»Π°Π΅Ρ‚ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ нулями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ сам Ρ„Π°ΠΊΡ‚ использования shred. -u, --remove β€” послС пСрСзаписи удаляСт Ρ„Π°ΠΉΠ» (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ„Π°ΠΉΠ» Π½Π΅ удаляСтся). -v β€” Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ прогрСсс Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» -f β€” ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ снимаСт Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ записи (Ссли Ρ„Π°ΠΉΠ» read-only). βš™οΈ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования: 1️⃣ ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° мСстС:
shred secret.txt
2️⃣ ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» 5 Ρ€Π°Π· ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ:
shred -n 5 -u secret.txt
3️⃣ ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» 1 Ρ€Π°Π·, Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нулями ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ:
shred -n 1 -z -u secret.txt

Бколько ссылок создаСтся ΠΏΡ€ΠΈ создании Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ?
Anonymous voting

Π“Ρ€ΠΈΠ½Π°Ρ‚ΠΎΠΌ β€” ИВ-ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ‚ΠΎΡ€ Росатома β€” ΠΈΡ‰Π΅Ρ‚ экспСрта инфраструктуры Linux Π² Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³Π΅! πŸ‘¨β€πŸ’»Π’Π°ΠΌ прСдстоит администрированиС ОБ Linux ΠΈ Windows, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… сСрвисов ΠΈ обСспСчСниС ΠΈΡ… ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ, настройка ΠΈ сопровоТдСниС систСм ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ логирования, автоматизация развСртывания ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сСрвисов ΠΈ Π·Π°Π΄Π°Ρ‡, Π° Ρ‚Π°ΠΊΠΆΠ΅ организация систСм Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования ΠΈ восстановлСния. πŸ€ΠœΡ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π°ΠΊΠΊΡ€Π΅Π΄ΠΈΡ‚ΠΎΠ²Π°Π½Π½ΠΎΠΉ ИВ-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Β«Π±Π΅Π»ΡƒΡŽ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚ΡƒΒ» 2 Ρ€Π°Π·Π° Π² мСсяц, ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π·Π° счёт ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ВК ΠΈ Π”ΠœΠ‘ (со стоматологиСй) с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ дня. ΠžΡ‚ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² ΠΆΠ΄Ρ‘ΠΌ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами ΠΈ ΠΎΠΏΡ‹Ρ‚ Π² ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ·Π°ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ отСчСствСнных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

Каким Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹?
Anonymous voting

πŸ’» Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ 2>&1? Π­Ρ‚ΠΎ ΠΏΡ€ΠΎ стандартныС ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°. Они ΠΈΠΌΠ΅ΡŽΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ дСскрипторы: stdout β€” 1 (ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°) stderr β€” 2 (ΠΏΠΎΡ‚ΠΎΠΊ с ошибками) ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ (2>&1) = stderr > stdout β€” направляСм ΠΏΠΎΡ‚ΠΎΠΊ с ошибками Π² стандартный ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°. Ошибки Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° экран Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅. πŸ€” Π›ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ 2>1. Но ΡƒΠ²Ρ‹, эта схСма ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. ΠŸΠΎΡ‚ΠΎΠΊ с ошибками stderr Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ всС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ», Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ 1. Для этого ΠΈ трСбуСтся ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ символ & (ампСрсанд) ΠΏΠ΅Ρ€Π΅Π΄ stdout. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор, Π° Π½Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». πŸ€” А ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚ΠΎΠ³Π΄Π° Π½Π΅ &2>&1 ? Π‘ΠΈΠΌΠ²ΠΎΠ» & интСрпрСтируСтся ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² контСкстС пСрСнаправлСния. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ command &2>&1 анализируСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. command & 2>&1 β€” ΠΊΠΎΠΌΠ°Π½Π΄Π° command Π±ΡƒΠ΄Π΅Ρ‚ выполнятся Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. А Π·Π°Ρ‚Π΅ΠΌ Π½Π°Ρ‡Π½Π΅Ρ‚ выполнятся ΠΊΠΎΠΌΠ°Π½Π΄Π° 2 с ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° стандартный Π²Ρ‹Π²ΠΎΠ΄ stdout. Π•ΡΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ |&. |& это сокращСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΡ‚ 2>&1 | ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
script.sh |& tee -a /var/log/script.log
ВсС Ρ‡Ρ‚ΠΎ script.sh Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π² ΠΏΠΎΡ‚ΠΎΠΊΠΈ stdout ΠΈ stderr, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π² Ρ„Π°ΠΉΠ» script.log. Π’ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ эту ΡˆΡ‚ΡƒΠΊΡƒ.

ΠŸΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ хранится Π²:
Anonymous voting

Какая ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² (Π½Π° ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π΅)?
Anonymous voting