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

🐧 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Β» β€” это ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅
πŸ”₯ Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Linux Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра? ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ядра LinuxΒ» β€” это ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. πŸ’» Π’Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ структуры Π΄Π°Π½Π½Ρ‹Ρ… ядра, ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ dmesg ΠΈ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° Linux-ядрС. πŸ’š ΠšΡƒΡ€Ρ Π²Π΅Π΄ΡƒΡ‚ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΡŽΡ‰ΠΈΠ΅ экспСрты с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ ядро. πŸ’šΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° обновляСтся ΠΏΠΎΠ΄ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ стандарты ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ индустрии. πŸ’šΠ–ΠΈΠ²Ρ‹Π΅ Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° наставников, итоговая Ρ€Π°Π±ΠΎΡ‚Π° β€” всё, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ освоили слоТныС Ρ‚Π΅ΠΌΡ‹ систСмного программирования. ΠžΡΡ‚Π°Π²ΡŒΡ‚Π΅ заявку прямо сСйчас Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576

Как Π±Ρ‹Ρ‚ΡŒ, Ссли Π½Π΅ моТСшь Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² Linux? Π’ΠΎΡ‚ Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π»Π΅Ρ‚Π΅Π»Π° ΠΈΠ· Π³ΠΎΠ»ΠΎΠ²Ρ‹. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΡ€ΠΈΡ…Π²Π°Ρ‚ΠΈΠ»Π° Π½Π΅ Ρ‚ΠΎ
Как Π±Ρ‹Ρ‚ΡŒ, Ссли Π½Π΅ моТСшь Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² Linux? Π’ΠΎΡ‚ Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π»Π΅Ρ‚Π΅Π»Π° ΠΈΠ· Π³ΠΎΠ»ΠΎΠ²Ρ‹. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΡ€ΠΈΡ…Π²Π°Ρ‚ΠΈΠ»Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ своС Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ. Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ? Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ man с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ:
man -k <ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово>
НапримСр, Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΊΠ°ΠΊ-Ρ‚ΠΎ связана с диском. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»:
man -k disk
Π’ Π²Ρ‹Ρ…Π»ΠΎΠΏ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, связанныС с дисками. Π›Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ, Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ. ΠŸΡ€Π°Π²Π΄Π°, всС ΠΎΡ‡Π΅Π½ΡŒ просто? Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΈ наслаТдаСмся!

Π¨Π°Π±Π»ΠΎΠ½Ρƒ a?b* Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹...
Anonymous voting

Для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСния всСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ сразу ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° 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?
Anonymous voting

ΠŸΡ€ΠΈ запускС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ»ΠΈ скрипта Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ time:
$ time ls -a
ПослС окончания Ρ€Π°Π±ΠΎΡ‚Ρ‹ основной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ time ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚, сколько рСсурсов пошло Π½Π° это.