#* ΠΠΎΠ½Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°
cd $LOG_DIR
if [ `pwd` != "$LOG_DIR" ] # ΠΈΠ»ΠΈ if [ "$PWD" != "$LOG_DIR" ]
# ΠΠ΅ Π² /var/log?
then
echo "ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ $LOG_DIR."
exit $E_XCD
fi # ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠΈΡΡΠΊΠΎΠΉ Π»ΠΎΠ³-ΡΠ°ΠΉΠ»ΠΎΠ².
# Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
#
# cd /var/log || {
# echo "ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³." >&2
# exit $E_XCD;
# }
tail -$lines messages > mesg.temp # Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Π² Π»ΠΎΠ³-ΡΠ°ΠΉΠ»Π΅.
mv mesg.temp messages
# cat /dev/null > messages
#* ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΠΏΠ°Π»Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΡΠΈΡΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΡΠ΅.
cat /dev/null > wtmp # ΠΊΠΎΠΌΠ°Π½Π΄Ρ ': > wtmp' ΠΈ '> wtmp' ΠΈΠΌΠ΅ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡ.
echo "ΠΠΎΠ³-ΡΠ°ΠΉΠ»Ρ ΠΎΡΠΈΡΠ΅Π½Ρ."
exit 0
# ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0
#+ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡ.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΆΠ΅Π»Π°Π΅ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΡΡΠΈΡΠ°ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π»ΠΎΠ³ΠΈ, ΡΠΎ Π²ΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΡΠ»ΡΡΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ. ΠΠ΄Π΅ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ (ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ -- 50).
ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΡΡΠ΅Π½Π°ΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ #!, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΠΌΠΈΡΠ΅ UNIX Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ sha-bang, ΡΠΎ ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΡ. ΠΡΠΎ Π΄Π²ΡΡ Π±Π°ΠΉΡΠΎΠ²Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΈΠ»ΠΈ[ 4 ] -- ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΠΊΠ΅Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΡΠΈΠΏ ΡΡΠ΅Π½Π°ΡΠΈΡ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ -- ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ (ΡΠΌ. man magic). ΠΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΠΎ, sha-bang ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° (shell), ΠΈΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΈΠ»ΠΈ ΡΡΠΈΠ»ΠΈΡΠ°[ 5 ].
#!/bin/sh
#!/bin/bash
#!/usr/bin/perl
#!/usr/bin/tcl
#!/bin/sed -f
#!/usr/awk -f
ΠΠ°ΠΆΠ΄Π°Ρ, ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡ, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π²ΡΠ·ΠΎΠ²Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ², Π±ΡΠ΄Ρ ΡΠΎ /bin/sh -- ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (bash Π΄Π»Ρ Linux-ΡΠΈΡΡΠ΅ΠΌ), Π»ΠΈΠ±ΠΎ ΠΈΠ½ΠΎΠΉ[ 6 ]. ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Ρ ΡΠΈΠ³Π½Π°ΡΡΡΠΎΠΉ #!/bin/sh Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ UNIX ΡΠΈΡΡΠ΅ΠΌΡ, Π³Π΄Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Π·Π°Π΄Π°Π½ Π΄ΡΡΠ³ΠΎΠΉ shell, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈΡΠΈΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ, ΠΏΡΠΈΡΡΡΠΈΡ bash. ΠΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ POSIX ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌΠΈ[ 7 ].
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΈΠ³Π½Π°ΡΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΡΡΡ ΠΊ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ -- ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΡΠΎ "Command not found".
Π‘ΠΈΠ³Π½Π°ΡΡΡΠ° #! ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΡΠ΅Π½Π°, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ (ΡΠΌ. Π²ΡΡΠ΅) ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΡ #! ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ lines=50. ΠΡΠ΅ ΡΠ°Π· Π·Π°ΠΌΠ΅ΡΡ, ΡΡΠΎ ΡΠΈΠ³Π½Π°ΡΡΡΠ° #!/bin/sh Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ -- /bin/bash Π² Linux-ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π². ΠΠ°ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅, ΡΠΎΠ±ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ²ΠΎΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΡΠ°ΡΡΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π²ΡΡΡΠ΅ΡΠΈΡΡΡΡ. Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ Π²Ρ ΡΠΎΠ±Π΅ΡΠ΅ΡΠ΅ ΡΠ²ΠΎΡ "Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ" ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ΅ΠΌ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠ²ΠΎΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΡΡΡΠ²ΠΎΠΊ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
if [ $# -ne Number_of_expected_args ]
then
echo "Usage: `basename $0` whatever"
exit $WRONG_ARGS
fi
2.1. ΠΠ°ΠΏΡΡΠΊ ΡΡΠ΅Π½Π°ΡΠΈΡ
ΠΠ°ΠΏΡΡΡΠΈΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ sh scriptname[ 8 ] ΠΈΠ»ΠΈ bash scriptname. (ΠΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠΊ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ sh <scriptname>, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° stdin Π² ΡΠΊΡΠΈΠΏΡΠ΅). ΠΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ -- ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΉΠ» ΡΠΊΡΠΈΠΏΡΠ° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ, ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ chmod.
ΠΡΠΎ:
chmod 555 scriptname (Π²ΡΠ΄Π°ΡΠ° ΠΏΡΠ°Π² Π½Π° ΡΡΠ΅Π½ΠΈΠ΅/ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅)[ 9 ]
ΠΈΠ»ΠΈ
chmod +rx scriptname (Π²ΡΠ΄Π°ΡΠ° ΠΏΡΠ°Π² Π½Π° ΡΡΠ΅Π½ΠΈΠ΅/ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅)
chmod u+rx scriptname (Π²ΡΠ΄Π°ΡΠ° ΠΏΡΠ°Π² Π½Π° ΡΡΠ΅Π½ΠΈΠ΅/ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ "Π²Π»Π°Π΄Π΅Π»ΡΡΡ" ΡΠΊΡΠΈΠΏΡΠ°)
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ ΡΠ°ΠΉΠ» ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ./scriptname.[ 10 ] ΠΡΠ»ΠΈ, ΠΏΡΠΈ ΡΡΠΎΠΌ, ΡΠ΅ΠΊΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠΈΠ³Π½Π°ΡΡΡΡ ("sha-bang"), ΡΠΎ Π΄Π»Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ.
Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π·Π°Π²Π΅ΡΡΠΈΠ² ΠΎΡΠ»Π°Π΄ΠΊΡ ΡΡΠ΅Π½Π°ΡΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /usr/local/bin (Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΏΡΠ°Π²Π°ΠΌΠΈ root), ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π΄Π»Ρ ΡΠ΅Π±Ρ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ, ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π² Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈ Π½Π°ΠΆΠ°Π² ΠΊΠ»Π°Π²ΠΈΡΡ [ENTER].
2.2. Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
1. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΡΠ°ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΡΠ΄Π°. ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅, Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΈ.
2. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΄Π°ΡΡ, Π²ΡΠ΅ΠΌΡ, ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π²ΡΠΈΡ ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΈ uptime ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΠΆΡΡΠ½Π°Π»Π΅.
Π§Π°ΡΡΡ 2. ΠΡΠ½ΠΎΠ²Ρ
ΠΠ»Π°Π²Π° 3. Π‘Π»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ
Π‘Π»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΡΠ΅ΠΊΡΡΠ°Ρ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π².
#
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. Π‘ΡΡΠΎΠΊΠΈ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° # (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ #!) -- ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ.
# ΠΡΠ° ΡΡΡΠΎΠΊΠ° -- ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
echo "ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ." # ΠΡΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ±Π΅Π»Ρ (ΠΏΡΠΎΠ±Π΅Π», ΡΠ°Π±ΡΠ»ΡΡΠΈΡ).
# ΠΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ ΡΡΠΎΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ» ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ.
ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π·Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ Π² ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΠΎΠΊΠ° ΡΡΠΎ Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΡ "ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°", ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π·Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ Π² ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠΎΠΊΠ΅.
Π‘Π°ΠΌΠΎ ΡΠΎΠ±ΠΎΠΉ ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» # Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ echo Π½Π΅ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ .
echo "Π‘ΠΈΠΌΠ²ΠΎΠ» # Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ."
echo 'Π‘ΠΈΠΌΠ²ΠΎΠ» # Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.'
echo Π‘ΠΈΠΌΠ²ΠΎΠ» \# Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
echo Π Π·Π΄Π΅ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» # ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
echo ${PATH#*:} # ΠΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° -- Π½Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ.
echo $(( 2#101011 )) # ΠΠ°Π·Π° ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ -- Π½Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ.
# Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, S.C.
ΠΠ°Π²ΡΡΠΊΠΈ " ' ΠΈ \ ΡΠΊΡΠ°Π½ΠΈΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° #.
Π ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΠΈΠΌΠ²ΠΎΠ» # ΡΠ°ΠΊ ΠΆΠ΅ Π½Π΅ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
;
Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄. [Π’ΠΎΡΠΊΠ°-Ρ-Π·Π°ΠΏΡΡΠΎΠΉ] ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π²Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
echo hello; echo there
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ» ";" ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ # Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ.
;;
ΠΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»Ρ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ Π²ΡΠ±ΠΎΡΠ° case . [ΠΠ²ΠΎΠΉΠ½Π°Ρ-ΡΠΎΡΠΊΠ°-Ρ-Π·Π°ΠΏΡΡΠΎΠΉ]
case "$variable" in
abc) echo "$variable = abc" ;;
xyz) echo "$variable = xyz" ;;
esac
.
ΠΊΠΎΠΌΠ°Π½Π΄Π° "ΡΠΎΡΠΊΠ°". ΠΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ source (ΡΠΌ. ΠΡΠΈΠΌΠ΅Ρ 11-18). ΠΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° bash.
.
"ΡΠΎΡΠΊΠ°" ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° . ΠΡΠ»ΠΈ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΎΡΠΊΠΈ, ΡΠΎ ΡΡΠΎ "ΡΠΊΡΡΡΡΠΉ" ΡΠ°ΠΉΠ», Ρ.Π΅. ΠΊΠΎΠΌΠ°Π½Π΄Π° ls ΠΏΡΠΈ ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ.
bash$ touch .hidden-file
bash$ ls -l
total 10
-rw-r--r-- 1 bozo 4034 Jul 18 22:04 data1.addressbook
-rw-r--r-- 1 bozo 4602 May 25 13:58 data1.addressbook.bak
-rw-r--r-- 1 bozo 877 Dec 17 2000 employment.addressbook
bash$ ls -al
total 14
drwxrwxr-x 2 bozo bozo 1024 Aug 29 20:54 ./
drwx------ 52 bozo bozo 3072 Aug 29 20:51 ../
-rw-r--r-- 1 bozo bozo 4034 Jul 18 22:04 data1.addressbook
-rw-r--r-- 1 bozo bozo 4602 May 25 13:58 data1.addressbook.bak
-rw-r--r-- 1 bozo bozo 877 Dec 17 2000 employment.addressbook
-rw-rw-r-- 1 bozo bozo 0 Aug 29 20:54 .hidden-file
ΠΡΠ»ΠΈ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΈΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΡΠΎ ΠΎΠ΄Π½Π° ΡΠΎΡΠΊΠ° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈ Π΄Π²Π΅ ΡΠΎΡΠΊΠΈ -- ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΡΠΎΠ²Π½Π΅ΠΌ Π²ΡΡΠ΅, ΠΈΠ»ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
bash$ pwd
/home/bozo/projects
bash$ cd .
bash$ pwd
/home/bozo/projects
bash$ cd ..
bash$ pwd
/home/bozo/
Π‘ΠΈΠΌΠ²ΠΎΠ» ΡΠΎΡΠΊΠ° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ/ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ².
bash$ cp /home/bozo/current_work/junk/* .
Π‘ΠΈΠΌΠ²ΠΎΠ» "ΡΠΎΡΠΊΠ°" Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ ΠΏΠΎΠΈΡΠΊΠ°. ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ , Π² ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ , ΡΠΈΠΌΠ²ΠΎΠ» "ΡΠΎΡΠΊΠ°" ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ».