BashMaster
Open in Telegram
Π£Π΄ΠΎΠ±Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ Π½Π°ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π΄Π΅Π²ΠΎΠΏΡΠΎΠ² ΠΈ ΡΠΈΡΠ°Π΄ΠΌΠΈΠ½ΠΎΠ². Π Π΅ΠΊΠ»Π°ΠΌΠ°: @Kone4noVasya ΠΠ°Π½Π°Π» Π½Π° Π±ΠΈΡΠΆΠ΅: https://telega.in/c/bash_help
Show more8 880
Subscribers
+224 hours
-117 days
+730 days
Posts Archive
8 880
2 ΠΊΠ°Π½Π°Π»Π° Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ IT-ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΠ:
π» @admguides β Π°Π²ΡΠΎΡΡΠΊΠΈΠ΅ Π³Π°ΠΉΠ΄Ρ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΠΠ‘ Windows/Linux.
π @admbooks β ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠΌ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
8 880
ΠΠ°ΠΊ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ls Π² Bash
ΠΠ»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ
ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΏΠΎΠΊ Π±Π΅Π· ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ°Π»Π΅Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
1. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ls ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ ΠΊΡΠΎΠΌΠ΅ ΡΠΊΡΡΡΡΡ
*/ - ΡΡΠΎ ΡΠ°Π±Π»ΠΎΠ½, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ (* Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌ; / ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌΠΈ). Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΡΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π² /home/mial/bin/aur, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
ls -d /home/mial/bin/aur/*/Π§ΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅:
ls -d */Π§ΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΠΎΠ»Π±ΠΈΠΊ:
ls -1 -d */2. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ls ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΡΠΊΡΡΡΡΠΌΠΈ ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ */ Π½Π΅ Π½Π°ΠΉΠ΄ΡΡ Π»ΡΠ±ΡΠ΅ ΡΠΊΡΡΡΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ. Π§ΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈ ΠΈΡ , ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΈΡ ΡΠ²Π½ΠΎ:
ls -d .*/ */3. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ls ΠΈ cut Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅, Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π² Π²ΠΈΠ΄Π΅ ΡΡΠΎΠ»Π±ΠΈΠΊΠ°:
ls -d */ | cut -f1 -d'/'Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΡΠΊΡΡΡΡΠΌΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌΠΈ:
ls -d .*/ */ | cut -f1 -d'/'Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π² ΠΏΠ°ΠΏΠΊΠ΅ /home/mial/bin/aur:
ls -d /home/mial/bin/aur/*/ | cut -f1 -d'/'4. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ls ΠΈ grep Π ΡΡΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ grep. ΠΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ β ΠΏΠ°ΠΏΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°:
ls -l | grep "^d"Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΡΠΊΡΡΡΡΠΌΠΈ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ:
ls -al | grep "^d"ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡΠ½ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π΅Π»Ρ Π² Π½Π°Π·Π²Π°Π½ΠΈΡΡ ):
ls -l | grep "^d" | cut -f 10 -d ' 'π¨ bash_help
8 880
Bash ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΏΠΎΡΡΠΎΠ²
ΠΠ°Ρ ΡΠΊΡΠΈΠΏΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° β IP-Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠΎΡΡΠΎΠ² Π΄Π»Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
#!/bin/bash
ip=$1
startport=$2
endport=$3
function portscan {
for ((counter=$startport; counter<=$endport; counter++))
do
(echo > /dev/tcp/$ip/$counter) > /dev/null 2>&1 && echo "$counter open"
done
}
portscan
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΅ΠΌΡ ΠΏΡΠ°Π²Π° Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ Ρ IP-Π°Π΄ΡΠ΅ΡΠΎΠΌ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΠΏΠΎΡΡΠΎΠ² Π΄Π»Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡ Π² ΡΠ°ΠΉΠ», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ portscan.sh
- Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠΊΡΠΈΠΏΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ: chmod +x portscan.sh
- ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡ Ρ IP-Π°Π΄ΡΠ΅ΡΠΎΠΌ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΠΏΠΎΡΡΠΎΠ²: ./portscan.sh 192.168.1.1 20 80
- ΠΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠΎΠ² Ρ 20 ΠΏΠΎ 80 Π½Π° IP-Π°Π΄ΡΠ΅ΡΠ΅ 192.168.1.1.
π¨ bash_help8 880
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ OSINT. 2 ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
ΠΈ ΠΊΡΡΠΏΠ½ΡΡ
ΡΠ΅ΡΡΡΡΠ° Π² TG:
π @it_secur β Π Π΅Π΄ΠΊΠ°Ρ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ° Π΄Π»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π§ΠΈΡΠ°ΠΉΡΠ΅, ΡΠ°Π·Π²ΠΈΠ²Π°ΠΉΡΠ΅ΡΡ, ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠΉΡΠ΅.
π¨π»βπ» @infosecurity β Π‘Π°ΠΌΡΠΉ ΠΊΡΡΠΏΠ½ΡΠΉ ΡΠ΅ΡΡΡΡ Π² Telegram, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΠΉ ΡΡΠΈΡΠ½ΠΎΠΌΡ Ρ
Π°ΠΊΠΈΠ½Π³Ρ, OSINT ΠΈ CΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΠ½ΠΆΠ΅Π½Π΅ΡΠΈΠΈ.
8 880
Π£ΡΠΎΠΊΠΈ ΠΏΠΎ Bash ΡΠΊΡΠΈΠΏΡΠ°ΠΌ
ΠΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠΈ:
1 β ΠΡΠΈΠ²Π΅Ρ ΠΠΈΡ
2 β ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
3 β ΠΠΎΠΌΠ°Π½Π΄Π° read ΠΈ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
4 β Π£ΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ if
5 β Π£ΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ case
6 β ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ
7 β ΠΠ°ΡΡΠΈΠ²Ρ
8 β Π¦ΠΈΠΊΠ»Ρ
9 β Π€ΡΠ½ΠΊΡΠΈΠΈ
10 β Π Π΅ΠΊΡΡΡΠΈΡ
11 β ΠΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°
πΉ ΠΠ»Π΅ΠΉΠ»ΠΈΡΡ Π½Π° YouTube
π¨ bash_help
8 880
Π₯ΠΎΡΠ΅ΡΡ Π±ΡΡΡ Π½Π° ΡΠ°Π³ Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ ΠΊΠΈΠ±Π΅ΡΠΏΡΠ΅ΡΡΡΠΏΠ½ΠΈΠΊΠΎΠ²?
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΡ ΠΊ ΠΊΠ°Π½Π°Π»Ρ Hack Proof ΠΈ ΡΠ·Π½Π°Π²Π°ΠΉ ΠΎ ΡΠ΅Π°Π»ΡΠ½ΡΡ
ΠΊΠ΅ΠΉΡΠ°Ρ
Π² ΡΡΠ΅ΡΠ΅ ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
ΠΡ ΠΏΠΎΠ³ΡΡΠΆΠ°Π΅ΠΌΡΡ Π² ΠΌΠΈΡ OSINT, ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΠΈ ΠΈ ΠΎΠ±ΠΎΠ·ΡΠ΅Π²Π°Π΅ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Ρ github, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠ΅Π±Π΅ Π·Π°ΡΠΈΡΠΈΡΡΡΡ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΡΡΡ Π² ΡΠ΅ΡΠΈ!
8 880
ΠΠ°ΠΊ Π² Bash ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Β«ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π»ΡΠ±ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡΒ»
ΠΠ½ΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ Π² ΡΠΊΡΠΈΠΏΡΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ²ΠΈΠ΄Π΅Π» Π΅Ρ (ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΅Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ).
Π Bash ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ
read. ΠΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° ΡΠΈΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
read -p "ΠΠ°ΠΆΠΌΠΈΡΠ΅ ENTER Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ"
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡΡ Π΄Π°Π»Π΅Π΅ (Π° ΡΠΊΡΠΈΠΏΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅) ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΌΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ENTER.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π½Π°ΠΆΠ°ΡΡ Π»ΡΠ±ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ:
read -n 1 -s -r -p "ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π»ΡΠ±ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ"
Π ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΉ:
-n ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΡΡΠ΅Π½ΠΈΠ΅. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΡΡΠΎΠΊ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ENTER). Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° read ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ ΡΡΠΈΡΡΠ²Π°ΡΡ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°
-s ΡΠΊΡΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄
-r ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΡΡΠΎΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ Β«ΡΡΡΠ°ΡΒ» (Π±Π΅Π· ΡΡΡΡΠ° ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠ»ΡΡΠ°ΠΌΠΈ). Π’ΠΎ Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ ΡΠ»ΡΡΠ°ΠΌ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ
-p ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
π¨ bash_help8 880
Π£ Skillfactory Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΊΡΡΡ Ρ ΠΏΡΠΎΡΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ Π² IT.
ΠΠ°Π±Π΅Π³Π°ΠΉΡΠ΅: free.skillfactory.ru/itrentgen
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ "Π‘ΠΠΠΠ€ΠΠΠ’ΠΠ Π". ΠΠΠ 9702009530. erid: 2RanynDRnaL
8 880
ΠΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ
Π ΡΡΠΎΠΉ Π·Π°ΠΌΠ΅ΡΠΊΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ (ΡΡΡΠΎΡΠ½ΡΠ΅ Π±ΡΠΊΠ²Ρ).
Π§ΡΠΎΠ±Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ Π² ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠ΄Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
a="Hi all"
echo "${a,,}"
hi all
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Bash 5.1 ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ L, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ:
${var@L}
ΠΡΠΈΠΌΠ΅Ρ:
v="heLLo"
echo "${v@L}"
hello
π¨ bash_help8 880
ΠΠ°ΠΊ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ bash Π² Linux
ΠΠ±ΠΎΠ»ΠΎΡΠΊΠ° bash ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ Π²Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ°ΠΉΠ» ΠΈΡΡΠΎΡΠΈΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄, Π²Π²Π΅Π΄Π΅Π½Π½ΡΡ
ΡΠ°Π½Π΅Π΅. ΠΠΎΠΌΠ°Π½Π΄Π° history ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ bash, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΡΠ°Π½Π΅Π΅. ΠΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· 500 ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ°ΠΌΡΡ
ΡΠ°Π½Π½ΠΈΡ
ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΡΠ°ΠΌΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
HISTSIZE ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΡΠ»Π° ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ.
ΠΠ°ΠΊ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΈΡΡΠΎΡΠΈΡ?
ΠΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ history:
history
history | less
history | more
history | grep 'find'
ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡ
ΡΠ°Π½Π΅Π½Π½ΡΡ
Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ echo ΠΈΠ»ΠΈ printf :
echo "$HISTSIZE"
ΠΈΠ»ΠΈ
printf "%d\n" $HISTSIZE
ΠΠ΄Π΅ Ρ
ΡΠ°Π½ΠΈΡΡΡ ΠΈΡΡΠΎΡΠΈΡ bash ΠΊΠΎΠΌΠ°Π½Π΄?
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ HISTFILE. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ» ~/.bash_history. ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠ΅ΠΊΡΡΠΈΡ
Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
echo "$HISTFILE"
ΠΈΠ»ΠΈ
printf "%s\n" "$HISTFILE"
ΠΠ°ΠΊ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ BASH Π½Π° Linux ΠΈΠ»ΠΈ Unix?
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ HISTFILE ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ, Π½Π°Π±ΡΠ°Π² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ±ΡΠΎΡΠ°:
unset HISTFILEΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²ΡΡΠ΅ ΡΡΡΠΎΠΊΡ Π² ΠΊΠΎΠ½Π΅Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° /etc/profile.d/disable.history.sh ΠΈΠ»ΠΈ
~/.bash_profile:
echo 'unset HISTFILE' >> /etc/profile.d/disable.history.sh
ΠΈΠ»ΠΈ
echo 'unset HISTFILE' >> ~/.bash_profileΠΠ°ΠΊ Π½Π°Π²ΡΠ΅Π³Π΄Π° ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ bash Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ set? ΠΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ +o history Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ set:
set +o historyΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ set +o history Π² ΠΊΠΎΠ½Π΅Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° /etc/profile.d/disable.history.sh ΠΈΠ»ΠΈ ~/.bash_profile. ΠΠ°ΠΊ ΠΎΡΠΈΡΡΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ bash? ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ΅Π°Π½ΡΠ΅:
history -cΠ§ΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 42 ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ Π² Linux / Unix:
history -d 42
π¨ bash_help8 880
ΠΠ°ΡΠ° ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
ΠΊΠ°Π½Π°Π»ΠΎΠ² Π΄Π»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ ΡΠ²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΊΠΈΠ±Π΅ΡΠ±Π΅Π·ΠΎΠΌ:
π§βπ» ΠΡΠΈΡΠ½ΡΠΉ Π₯Π°ΠΊΠ΅Ρ - ΠΠ²ΡΠΎΡΡΠΊΠΈΠΉ ΠΊΠ°Π½Π°Π» c ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ ΠΏΠΎ ΠΏΠ΅Π½ΡΠ΅ΡΡΡ, Π΄Π΅Π°Π½ΠΎΠ½Ρ, Π‘Π, Π·Π°ΡΠΈΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΌΠΈ ΠΊΡΡΡΠ°ΠΌΠΈ ΠΏΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
π³οΈ Mr. Robot - Π Π΅Π°Π»ΡΠ½ΡΠ΅ ΠΊΠ΅ΠΉΡΡ, OSINT, ΠΎΠ±Π·ΠΎΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Ρ github, Π³Π°ΠΉΠ΄Ρ ΠΏΠΎ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΡΡΠΈ.
8 880
ΠΠΌΠΏΠΎΡΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Linux
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΡΠΎ Ρ Π½Π°Ρ Ρ
ΡΠ°Π½ΡΡΡΡ ΡΠΎΡΠ½ΠΈ ΡΠΎΠ½Π½ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΡΠ½ΠΈΠΌΠΊΠΎΠ² Π² ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ°Π·Π½ΡΡ
ΠΌΠ΅ΡΡΠ°Ρ
, Π½Π° ΡΠ°Π·Π½ΡΡ
Π½ΠΎΡΠΈΡΠ΅Π»ΡΡ
. ΠΠ΄Π΅-ΡΠΎ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½Ρ ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ ΠΈ ΠΌΠ΅ΡΡΡΠ°ΠΌ, Π° Π³Π΄Π΅-ΡΠΎ ΠΏΡΠΎΡΡΠΎ βΡΠ²Π°Π»Π΅Π½Ρβ Π² ΠΊΡΡΡ ΠΈ ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π΄ΠΎ Π»ΡΡΡΠΈΡ
Π²ΡΠ΅ΠΌΠ΅Π½.
ΠΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π΅ΠΉ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠΊΡ, ΠΎΡΠΊΡΠ΄Π° Π½Π°ΡΠΈΠ½Π°ΡΡ, ΠΈ ΠΈΠ΄Π΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ Π΄Π΅Π»Π°ΠΌΠΈ. Π‘ΠΊΡΠΈΠΏΡ ΡΠΊΠ°Π½ΠΈΡΡΠ΅Ρ Π²ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π²ΡΡΡΠ΅ΡΠΈΡ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΡΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅, Π² ΠΏΠΎΠΈΡΠΊΠ°Ρ
ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ.
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΎΡΠΎΠ°Π»ΡΠ±ΠΎΠΌ Ρ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠ½ΠΈΠΌΠΊΠ°ΠΌΠΈ ΠΏΠΎ Π³ΠΎΠ΄Π°ΠΌ ΠΈ ΠΌΠ΅ΡΡΡΠ°ΠΌ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π³ΠΎΠ΄Ρ, Ρ.Π΅. Π² Π²ΠΈΠ΄Π΅: Π³ΠΎΠ΄ / ΠΌΠ΅ΡΡΡ / ΡΠ½ΠΈΠΌΠΊΠΈ. ΠΠ° Π΅ΡΠ΅ ΠΈ Π±Π΅Π· Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΎΠ² ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ. Π ΡΠ°ΠΌΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Ρ ΠΈΠ· Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΡ
ΡΠΈΠΏΠ° IMG_654372984.jpg ΠΈΠ»ΠΈ AB54645456.jpg Π²ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠ΅ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π²ΠΈΠ΄Π° YYYYMMDD_hhmmss.jpg. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΏΠΎΡΡΡΠ°Π΄Π°Π΅Ρ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π» ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ.
π Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΡΠΊΡΠΈΠΏΡ
π¨ bash_help
8 880
ΠΠ°ΠΊ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ bash-script-Ρ ΠΏΠΎ ΡΠ°Π³Π°ΠΌ
ΠΠΎΠ»ΡΠ΅Π±Π½Π°Ρ ΡΡΡΠΎΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ #!/bin/bash, ΡΡΠΎΠ± ΡΠΊΡΠΈΠΏΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎ ΡΠ°Π³Π°ΠΌ
#!/bin/bash
trap 'echo "# $BASH_COMMAND";read' DEBUG
echo line1
echo line2
echo line3
ΠΡΠΎΡΠ΅ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠΊΡΠΈΠΏΡ, ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, Π·Π°ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ <ENTER>.
ΠΡΠ»ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ, Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Ctrl+C ΠΈ Π²ΡΡ
ΠΎΠ΄ΠΈΠΌ ΠΈΠ· ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
ΠΠ½Π³ΡΠ΅Π΄ΠΈΠ΅Π½ΡΡ
- ΠΊΠΎΠΌΠ°Π½Π΄Π° trap, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΌΠ΅Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ ΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΡΠ²Π°Π΅Ρ ΡΠΈΠ³Π½Π°Π» DEBUG, ΠΏΠΎΡΡΠ»Π°Π΅ΠΌΡΠΉ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
- ΠΊΠΎΠΌΠ°Π½Π΄Π° read, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΌΠ΅Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π²Π²ΠΎΠ΄Π° ΡΠ΅Π³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΈΠ±ΠΎ ENTER Π»ΠΈΠ±ΠΎ Ctrl+C
- ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ $BASH_COMMAND, Π²Π°Π»ΠΈΠ΄Π½Π°Ρ Π²Π½ΡΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ trap.
π¨ bash_help8 880
ΠΠ°ΠΊ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Bash-ΡΠΊΡΠΈΠΏΡΠΎΠ²
Bash-ΡΠΊΡΠΈΠΏΡΡ β ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠΈΠ½Π½ΡΡ
Π·Π°Π΄Π°Ρ, Π½ΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅. ΠΠ±ΡΠ΅ΠΌΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΡΡΡΡ Π½ΠΈΠ·ΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈ ΡΠ»ΠΎΠΆΠ½Ρ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ, ΡΠΏΡΠΎΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡ sed ΠΈ awk ΠΈ Π½Π΅ ΡΠΎΠ²Π΅ΡΡΠ°ΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΡ
ΠΎΡΠΈΠ±ΠΎΠΊ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ².
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΠΊΡΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΈΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ bash. ΠΠΎ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ sed ΠΈ awk ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΈ ΡΠ°ΠΉΠ»Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΠΌΠΈ ΡΠΊΡΠΈΠΏΡΡ. Π£ΡΠΈΠ»ΠΈΡΡ ΡΠ»ΡΠΆΠ°Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
Π·Π°Π΄Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
Sed β ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΡΡΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ: ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅, Π·Π°ΠΌΠ΅Π½Π°, Π²ΡΡΠ°Π²ΠΊΠ° ΡΠ΅ΠΊΡΡΠ°.
Awk β ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΡΠ·ΡΠΊΠΈ C ΠΈ Perl. Π₯ΠΎΡΡ awk ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ Β«ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎΠΌΡΒ» ΠΏΡΠΈΠ½ΡΠΈΠΏΡ, Π½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π²ΠΎΡΡ
ΠΎΠ΄ΠΈΡ sed ΠΏΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ. ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ bash-ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ awk Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎΠ»Ρ (ΠΎΠ±Π»Π°ΡΡΡ ΡΠ΅ΠΊΡΡΠ°, ΠΎΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ°Π±ΡΠ»ΡΡΠΈΠ΅ΠΉ), ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π΄Ρ.
π Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠ°ΡΡΡ
π¨ bash_help
8 880
ΠΠ΄Π΅ Π½Π°ΠΉΡΠΈ Π»ΡΡΡΠΈΠ΅ ΠΊΡΡΡΡ Π΄Π»Ρ ΡΠΈΡΠ°Π΄ΠΌΠΈΠ½ΠΎΠ²?
Tutortop β ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΠΊΠ΅ΡΠΏΠ»Π΅ΠΉΡ β1, Π³Π΄Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΡΠ²ΡΡΠ΅ 5000 ΠΊΡΡΡΠΎΠ² ΠΎΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 300 ΡΠΊΠΎΠ» ΠΈ Π²ΡΠ΅ ΠΈΡ
ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΏΠΎ ΡΠ΅ΠΉΡΠΈΠ½Π³Ρ, ΡΠ΅Π½Π΅ ΠΈ ΠΎΡΠ·ΡΠ²Π°ΠΌ, Π° Π΅ΡΠ΅ ΠΊΡΠΏΠΈΡΡ Π΄Π΅ΡΠ΅Π²Π»Π΅, ΡΠ΅ΠΌ Π½Π°ΠΏΡΡΠΌΡΡ π₯
Π Π΅Π±ΡΡΠ° ΠΈΠ· tutortop ΡΠΎΠ±ΡΠ°Π»ΠΈ Π΄Π»Ρ Π²Π°Ρ ΠΏΠΎΠ΄Π±ΠΎΡΠΊΡ ΠΈΠ· Π»ΡΡΡΠΈΡ
ΠΊΡΡΡΠΎΠ² ΠΏΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΠΈΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ:
β Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π½Π° Linux Ρ ΡΠ³Π»ΡΠ±Π»Π΅Π½Π½ΡΠΌ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΠ ΠΎΡ ΠΠΊΠ°Π΄Π΅ΠΌΠΈΠΈ ΠΠΉΠ’ΠΈ. Π Π΅ΠΉΡΠΈΠ½Π³ 4.7 ΠΈΠ· 5.
β Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ DevSecOps ΠΎΡ ΠΠΊΠ°Π΄Π΅ΠΌΠΈΡ ΠΠΉΠ’ΠΈ. Π Π΅ΠΉΡΠΈΠ½Π³ 4.7 ΠΈΠ· 5.
β SQL Ρ Π½ΡΠ»Ρ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΡ
ΠΎΡ Eduson. Π Π΅ΠΉΡΠΈΠ½Π³ 4.8 ΠΈΠ· 5.
Π‘ΠΊΠΈΠ΄ΠΊΠ° 5% ΠΏΠΎ ΠΏΡΠΎΠΌΠΎΠΊΠΎΠ΄Ρ TUTORTOP Π΄ΠΎ 01.08
β ΠΡΡΡ Β«ΠΠ΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Ρ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠΌ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΠ΅ΠΉ ΡΡΡΠ΄ΠΎΡΡΡΡΠΎΠΉΡΡΠ²Π°Β» ΠΎΡ SkyPro. Π Π΅ΠΉΡΠΈΠ½Π³ 4.9 ΠΈΠ· 5.
Π‘ΠΊΠΈΠ΄ΠΊΠ° 15% ΠΏΠΎ ΠΏΡΠΎΠΌΠΎΠΊΠΎΠ΄Ρ TUTORTOP Π΄ΠΎ 01.08
β‘οΈΠΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΊΠΈΠ΄ΠΊΡ Π΄ΠΎ 10 000 β½ Π½Π° Π²ΡΠ΅ ΡΡΠΈ ΠΈ Π΄Π΅ΡΡΡΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ
ΠΊΡΡΡΠΎΠ² ΠΏΠΎ IT Π½Π° ΠΌΠ°ΡΠΊΠ΅ΡΠΏΠ»Π΅ΠΉΡΠ΅ tutortop!
8 880
Π‘ΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ <, << ΠΈ <<<
ΠΠ΅ΡΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ "<" ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»Π°. ΠΠ°Π²Π½ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΈ Π³ΠΎΠ΄Π°ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΡΡΡΡΠΎΠ΅ ΠΌΠΎΠ·ΠΎΠ»ΡΠΌΠΈ ΡΡΡΠΎΠ²ΡΡ
Π°Π΄ΠΌΠΈΠ½ΠΎΠ². ΠΠΎΡΡΠΎΠΌΡ ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π΄Π²ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΠ΅ΠΆΠ΅.
<<, ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ here document. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΏΡΡΠΌΠΎ Π² ΡΠΊΡΠΈΠΏΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ, ΡΠ»ΠΎΠ²Π½ΠΎ ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
$ cat <<EOF
\ hello,
\ World
\ EOF
hello,
World
Cat ΡΠΈΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»Π°. ΠΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π΅ΠΌΡ Π² STDIN ΡΠ°ΠΉΠ» β ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ here document Π³Π΅Π½Π΅ΡΠΈΡ Π΅Π³ΠΎ ΠΏΡΡΠΌΠΎ Π½Π° ΠΌΠ΅ΡΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ».
ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±, ΡΡΠΎΠ±Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ Π²Π½Π΅ΡΠ½ΡΡ ΡΡΠΈΠ»ΠΈΡΡ ΠΈ ΡΠΊΠΎΡΠΌΠΈΡΡ Π΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΡΡ
.
ΠΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈ <<<. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, <<< Π»ΡΡΡΠ΅ ΡΠΈΡΠ°Π΅ΡΡΡ, Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ
ΡΠ΅ΡΠ΅Π· <<< ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ Π΄Π²Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π° ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ:
#!/bin/bash
. load_credentials
sqlplus -s $connstring << EOF
set line 1000
select name, lastlogin from users;
exit;
EOF
#!/bin/bash
. load_credentials
SLQ_REQUEST="
set line 1000
select name, lastlogin from users;
exit;"
sqlplus -s ${connstring} <<<"${SQL_REQUEST}"
ΠΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½Π΅Π΅. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ Π΄Π»Ρ Π½Π°Ρ ΠΌΠ΅ΡΡΠ΅, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Π² <<<.
Π ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΊΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ:
#!/bin/bash
. load_credentials
sqlplus -s ${connstring} <<<"select name, lastlogin from users;exit;"
ΠΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ ΠΏΠΎΠ±ΠΎΠ»ΡΡΠ΅, ΠΈ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½Π΅Π΅, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ <<< Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΈΠΌ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
(Π° ΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π·Π°ΡΠ°Π½Π΅Π΅, Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΈ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ ΠΌΠ΅ΡΡΠ΅), ΡΠΎ ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½Π΅Π΅.
π¨ bash_help8 880
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ hardlink Π½Π° ΠΏΠ°ΠΏΠΊΡ?
ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ! ΠΠΎ Π½Π΅ Π²ΡΠ΅ΠΌ. POSIX ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Ρ
Π°ΡΠ΄Π»ΠΈΠ½ΠΊΠ°ΠΌΠΈ ΠΈ ΠΌΡ ΠΈΡ
Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ! ΠΡΠΈΠΌΠ΅Ρ:
# ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ test
$ mkdir test
# Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΡΡΡΠ»ΠΎΠΊ ΠΈ Π½ΠΎΠΌΠ΅Ρ iNode Π΄Π»Ρ test
$ stat -c "LinkCount:%h iNode:%i" test
LinkCount:2 iNode:522366
ΠΠ°ΠΊ? Π’ΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΈ ΡΠΆΠ΅ Π΄Π²Π° Π»ΠΈΠ½ΠΊΠ°?
# Π·Π°Ρ
ΠΎΠ΄ΠΈΠΌ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ test
$ cd test
# Π²Π½ΡΡΡΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ "."
$ stat -c "LinkCount:%h iNode:%i" .
LinkCount:2 iNode:522366
Π ΠΎΠ±ΠΎΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΠΎΡ ΠΆΠ΅ Π½ΠΎΠΌΠ΅Ρ iNode. Π’ΠΎ Π΅ΡΡΡ test ΠΈ "." Π²Π½ΡΡΡΠΈ Π½Π΅Π³ΠΎ β ΡΡΠΎ ΡΠ° ΠΆΠ΅ ΡΠ°ΠΌΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ. Π "." ΡΡΠΎ Π½Π΅ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π°Π»ΠΈΠ°Ρ Π±Π°ΡΠ°, ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΆΠ΅ΡΡΠΊΠ°Ρ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΎΠ²Π΅ΡΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ:
# ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ test2 Π²Π½ΡΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ test
$ mkdir test2
# Π·Π°Ρ
ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ test2
$ cd test2
# ΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ".."
$ stat -c "LinkCount:%h iNode:%i" ..
LinkCount:3 iNode:522366
".." ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΡ ΠΆΠ΅ iNode 522366, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ test. Π ΡΡΠ΅ΡΡΠΈΠΊ ΡΡΡΠ»ΠΎΠΊ ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΡΡ.8 880
Π Telegram Π½Π°Π±ΠΈΡΠ°Π΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΠΊΠ°Π½Π°Π» ΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Ρ IT-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΡΠΈΡΡ Π½Π°ΡΡΠΎΡΡΡΡ ΠΆΠΈΠ·Π½Ρ Π°ΠΉΡΠΈΡΠΊΠΈ.
ΠΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ΡΡ Π½Π° ΠΊΠ°Π½Π°Π» CEO, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΠ½ΡΠ°ΠΉΠ΄Ρ.
8 880
Π‘ΠΊΡΠΈΠΏΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΡΡΠ΅Π½Ρ-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΠΎΡ ΠΌΠ°ΡΠΈΠ½Ρ
#!/bin/bash
IDLE=600000
STOPCMD="transmission-remote -S"
STARTCMD="transmission-remote -s"
STOPPED="yes"
while true; do
if [ `xprintidle` -gt $IDLE ]; then
if [ $STOPPED = "yes" ]; then
$STARTCMD
STOPPED="no"
fi
else
if [ $STOPPED = "no" ]; then
$STOPCMD
STOPPED="yes"
fi
fi
sleep 60
done
Π‘ΠΊΡΠΈΠΏΡ ΡΡ
ΠΎΠ΄ΠΈΡ Π² Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ», ΠΊΠ°ΠΆΠ΄ΡΡ ΠΌΠΈΠ½ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ ΠΏΡΠΎΡΠ»ΠΎ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π΄Π° ΡΠ·Π΅Ρ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ Π΄Π΅Π»Π°Π» (Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° xprintidle). ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠ»ΠΎ ΡΠΆΠ΅ 600 000 ΠΌΡ (Π΄Π΅ΡΡΡΡ ΠΌΠΈΠ½ΡΡ), ΡΠΊΡΠΈΠΏΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ STARTCMD. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ STOPCMD, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎ Π½Π΅Π΅ Π±ΡΠ»Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° STARTCMD. ΠΡΠ»ΠΈ ΠΊΡΠ°ΡΠΊΠΎ: Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅ΡΡ Π·Π° ΠΊΠΎΠΌΠΏΠΎΠΌ Π΄Π΅ΡΡΡΡ ΠΌΠΈΠ½ΡΡ β Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ STARTCMD, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°ΠΏΡΡΠΊΠ° Π²ΡΠ΅Ρ
Π·Π°ΠΊΠ°ΡΠ΅ΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Transmission, Π΅ΡΠ»ΠΈ Π½Π΅Ρ β ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π²ΡΠ΅Ρ
Π·Π°ΠΊΠ°ΡΠ΅ΠΊ. ΠΠ΅ Π»ΡΠ±ΠΈΡΡ Transmission? ΠΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Deluge:
STOPCMD="deluge-console pause \*"
STARTCMD="deluge-console resume \*"8 880
ΠΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΡΠ΅Π·Π°ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°ΠΉΠ»Π°?
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ basename, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΠ΅Π·Π°Π΅Ρ Π²Π΅ΡΡ ΠΏΡΡΡ ΡΠ»Π΅Π²Π°, Π° Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΡΠ΅ΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π° ΠΈ ΡΡΡΡΠΈΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΈΡΠ΅ΠΌ file.txt ΠΈ ΡΡΡΡΠΈΠΊΡ .txt
$ basename file.txt .txt
file
ΠΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅Π»ΡΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π»Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΈ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ Π² bash (bash variable expansions):
$ filename=file.txt; echo ${filename%.*}
file
ΠΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΎΡΡΠ΅Π·Π°ΡΡ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅:
filename=file.txt; echo ${filename##*.}
txt
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ?
% β ΠΎΡΡΠ΅Π·Π°Π΅Ρ Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Ρ ΠΊΠΎΠ½ΡΠ° Π΄ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° (ΠΏΠΎΠΈΡΠΊ ΠΈΠ΄Π΅Ρ ΡΠΏΡΠ°Π²Π° Π½Π°Π»Π΅Π²ΠΎ)
%% β ΠΎΡΡΠ΅Π·Π°Π΅Ρ Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Ρ ΠΊΠΎΠ½ΡΠ° Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° (ΡΠΏΡΠ°Π²Π° Π½Π°Π»Π΅Π²ΠΎ)
# β ΠΎΡΡΠ΅Π·Π°Π΅Ρ Ρ Π½Π°ΡΠ°Π»Π° Π΄ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° (ΠΏΠΎΠΈΡΠΊ ΠΈΠ΄Π΅Ρ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ)
## β ΠΎΡΡΠ΅Π·Π°Π΅Ρ Ρ Π½Π°ΡΠ°Π»Π° Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° (ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ)
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, "${filename%.*}" ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ β Π½Π°ΡΠΈΠ½Π°Ρ ΡΠΏΡΠ°Π²Π° Π½Π°Π»Π΅Π²ΠΎ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΠΌ Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (*) ΠΈ Π΄ΠΎΡ
ΠΎΠ΄ΠΈΠΌ Π΄ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΎΡΠΊΠΈ. ΠΡΡΠ΅Π·Π°Π΅ΠΌ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅.
ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ "${filename%%.*)", ΡΠΎ Π² ΡΠ°ΠΉΠ»Π°Ρ
, Π³Π΄Π΅ ΡΠΎΡΠΊΠ° Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π°, Ρ Π½Π°Ρ Π±Ρ ΠΎΠ½ΠΎ Π΄ΠΎΡΠ»ΠΎ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΎΡΠΊΠΈ, ΠΎΡΡΠ΅Π·Π°Π² Π»ΠΈΡΠ½Π΅Π΅.
$ filename="file.hello.txt"; echo "${filename%%.*}"
file