bash$ sleep 100 &
[1] 1384
bash $ jobs
[1]+ Running sleep 100 &
"1" -- ΡΡΠΎ Π½ΠΎΠΌΠ΅Ρ Π·Π°Π΄Π°Π½ΠΈΡ (ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΡΠΌΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ), Π° "1384" -- Π½ΠΎΠΌΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° (ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ). ΠΠ°Π²Π΅ΡΡΠΈΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅/ΠΏΡΠΎΡΠ΅ΡΡ ("ΠΏΡΠΈΡ Π»ΠΎΠΏΠ½ΡΡΡ") ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ kill %1, Π»ΠΈΠ±ΠΎ kill 1384.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ S.C.
disown
Π£Π΄Π°Π»ΡΠ΅Ρ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΡ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ.
fg, bg
ΠΠΎΠΌΠ°Π½Π΄Π° fg ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΈΠ· ΡΠΎΠ½Π° Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π½ΠΈΠΉ ΠΏΠ»Π°Π½. ΠΠΎΠΌΠ°Π½Π΄Π° bg ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΡΠ»ΠΈ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ»ΠΈ Π²ΡΠ·Π²Π°Π½Ρ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½ΠΎΠΌΠ΅ΡΠ° Π·Π°Π΄Π°Π½ΠΈΡ, ΡΠΎ ΠΎΠ½ΠΈ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΡΡΡ Π½Π° ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΠ΅Π΅ΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅.
wait
ΠΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Ρ Π²ΡΠ΅ ΡΠΎΠ½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ Π·Π°Π΄Π°Π½ΠΈΠ΅/ΠΏΡΠΎΡΠ΅ΡΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ Π·Π°Π΄Π°Π½ΠΈΡ/PID ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ/ΠΏΡΠΎΡΠ΅ΡΡΠ°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ wait Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°Π²Π΅ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅.
ΠΡΠΈΠΌΠ΅Ρ 11-22. ΠΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΡ
#!/bin/bash
ROOT_UID=0 # Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ $UID = 0 ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ root.
E_NOTROOT=65
E_NOPARAMS=66
if [ "$UID" -ne "$ROOT_UID" ]
then
echo "ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ root."
exit $E_NOTROOT
fi
if [ -z "$1" ]
then
echo "ΠΠΎΡΡΠ΄ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ: `basename $0` ΠΈΠΌΡ-ΡΠ°ΠΉΠ»Π°"
exit $E_NOPARAMS
fi
echo "ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ 'locate'..."
echo "ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ."
updatedb /usr & # ΠΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root.
wait
# Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ 'updatedb'.
# ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠΈΡΠΊ ΡΠ°ΠΉΠ»Π°.
locate $1
# Π Ρ ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, Π±Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ wait, ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π·Π°Π²Π΅ΡΡΠΈΠ» Π±Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ,
# ΠΊΠ°ΠΊ Π·Π°Π²Π΅ΡΡΠΈΠ»Π° Π±Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠΈΠ»ΠΈΡΠ° 'updatedb',
# ΡΠ΄Π΅Π»Π°Π² ΠΈΠ· Π½Π΅Π΅ "ΠΎΡΠΈΡΠΎΡΠ΅Π²ΡΠΈΠΉ" ΠΏΡΠΎΡΠ΅ΡΡ.
exit 0
ΠΠΎΠΌΠ°Π½Π΄Π° wait ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -- Π½ΠΎΠΌΠ΅Ρ Π·Π°Π΄Π°Π½ΠΈΡ/ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, wait %1 ΠΈΠ»ΠΈ wait $PPID. Π‘ΠΌ. ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π·Π°Π΄Π°Π½ΠΈΠΉ.
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠΎΠ½Π΅ ΠΈΠ· ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° ENTER. ΠΡΠΎ, ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, Π΄Π΅Π»Π°ΡΡΠΈΠΌΠΈ Π²ΡΠ²ΠΎΠ΄ Π½Π° stdout. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
#!/bin/bash
# test.sh
ls -l &
echo "Done."
bash$ ./test.sh
Done.
[ [email protected] test-scripts]$ total 1
-rwxr-xr-x 1 bozo bozo 34 Oct 11 15:09 test.sh
_
Π Π°Π·ΠΌΠ΅ΡΡΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ wait, ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡ.
#!/bin/bash
# test.sh
ls -l &
echo "Done."
wait
bash$ ./test.sh
Done.
[ [email protected] test-scripts]$ total 1
-rwxr-xr-x 1 bozo bozo 34 Oct 11 15:09 test.sh
ΠΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π° Π² ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ /dev/null ΡΠ°ΠΊΠΆΠ΅ ΡΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
suspend
ΠΠ΅ΠΉΡΡΠ²ΡΠ΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ Control+-Z, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½Π° ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ.
logout
ΠΠ°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ΅Π°Π½Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ.
times
ΠΡΠ΄Π°Π΅Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅:
0m0.020s 0m0.020s
ΠΠΌΠ΅Π΅Ρ Π²Π΅ΡΡΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ ΡΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ΅Π΄ΠΊΠΎ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°ΡΡΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
kill
ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΅ΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° (ΡΠΌ. ΠΡΠΈΠΌΠ΅Ρ 13-4).
ΠΡΠΈΠΌΠ΅Ρ 11-23. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ, Π·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΠΉ ΡΠ΅Π±Ρ ΡΠ°ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ kill
#!/bin/bash
# self-destruct.sh
kill $$ # Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ΅Π±Ρ ΡΠ°ΠΌ.
# ΠΠ°Π΄Π΅ΡΡΡ Π²Ρ Π΅ΡΠ΅ Π½Π΅ Π·Π°Π±ΡΠ»ΠΈ, ΡΡΠΎ "$$" -- ΡΡΠΎ PID ΡΡΠ΅Π½Π°ΡΠΈΡ.
echo "ΠΡΠ° ΡΡΡΠΎΠΊΠ° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½Π°."
# ΠΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ Π½Π° stdout Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ "Terminated".
exit 0
# ΠΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²Π΅ΡΠ½Π΅Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΉ?
#
# sh self-destruct.sh
# echo $?
# 143
#
# 143 = 128 + 15
# ΡΠΈΠ³Π½Π°Π» TERM
ΠΠΎΠΌΠ°Π½Π΄Π° kill -l Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΠΈΠ³Π½Π°Π»ΠΎΠ². ΠΠΎΠΌΠ°Π½Π΄Π° kill -9 -- ΡΡΠΎ "ΠΆΠ΅ΡΡΠΊΠΈΠΉ kill", ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠΎΡΠ½ΠΎ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ "ΡΠΌΠΈΡΠ°ΡΡ", ΠΎΡΠ²Π΅ΡΠ³Π°Ρ ΠΏΡΠΎΡΡΠΎΠΉ kill. ΠΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ΄Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ kill -15. "ΠΡΠΎΡΠ΅ΡΡΡ-Π·ΠΎΠΌΠ±ΠΈ", Ρ.Π΅. ΠΏΡΠΎΡΠ΅ΡΡΡ, "ΡΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ" ΠΊΠΎΡΠΎΡΡΡ ΡΠΆΠ΅ Π·Π°Π²Π΅ΡΡΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΡ, Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ "ΡΠ±ΠΈΡΡ" ΡΠ°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ (Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ "ΡΠ±ΠΈΡΡ" "ΠΌΠ΅ΡΡΠ²ΠΎΠ³ΠΎ"), ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Ρ Π½ΠΈΠΌΠΈ "ΡΠ°ΡΠΏΡΠ°Π²ΠΈΡΡΡ" ΠΏΡΠΎΡΠ΅ΡΡ init.
command
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° command COMMAND Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠ² ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ "COMMAND".
ΠΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡΠ΅Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΡΡΠ³ΠΈΠ΅ Π΄Π²Π΅ -- builtin ΠΈ enable.
builtin
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ builtin BUILTIN_COMMAND Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ "BUILTIN_COMMAND", Π½Π° Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΠ΅ΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ.
enable
ΠΠΈΠ±ΠΎ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ, Π»ΠΈΠ±ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π²ΡΠ·ΠΎΠ² Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, enable -n kill Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ kill, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π²ΡΡΡΠ΅ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ kill, ΡΠΎ ΠΎΠ½ Π²ΡΠ·ΠΎΠ²Π΅Ρ Π²Π½Π΅ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ kill, Ρ.Π΅. /bin/kill.
ΠΠΎΠΌΠ°Π½Π΄Π° enable -a Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ -- Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈ ΠΎΠ½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π°. ΠΠΎΠΌΠ°Π½Π΄Π° enable -f filename Π·Π°Π³ΡΡΠ·ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ (DLL) ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°[ 26 ].
autoload
ΠΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½Π° Π² Bash ΠΈΠ· ksh. ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΠΊΠ°ΠΊ autoload, ΡΠΎ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π° ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠ°ΠΉΠ»Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°[ 27 ]. Π’Π°ΠΊΠΎΠΉ ΠΏΡΠΈΠ΅ΠΌ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: autoload Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΡΠ΄ΡΠ° Bash. ΠΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ enable -f (ΡΠΌ. Π²ΡΡΠ΅).
Π’Π°Π±Π»ΠΈΡΠ° 11-1. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠΉ
ΠΠΎΡΠ°ΡΠΈΡ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ %N ΠΠΎΠΌΠ΅Ρ Π·Π°Π΄Π°Π½ΠΈΡ [N] %S ΠΡΠ·ΠΎΠ² (ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ°) Π·Π°Π΄Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠΈ S %?S ΠΡΠ·ΠΎΠ² (ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ°) Π·Π°Π΄Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠΎΠΊΡ S %% "ΡΠ΅ΠΊΡΡΠ΅Π΅" Π·Π°Π΄Π°Π½ΠΈΠ΅ (ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π½Π΅ΠΌ ΠΏΠ»Π°Π½Π΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ΅ Π² ΡΠΎΠ½Π΅) %+ "ΡΠ΅ΠΊΡΡΠ΅Π΅" Π·Π°Π΄Π°Π½ΠΈΠ΅ (ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π½Π΅ΠΌ ΠΏΠ»Π°Π½Π΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ΅ Π² ΡΠΎΠ½Π΅) %- ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ $! ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΠ»Π°Π²Π° 12. ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΡΠΈΠ»ΠΈΡΡ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ UNIX-ΡΠΈΡΡΠ΅ΠΌ, ΡΡΠ΅Π½Π°ΡΠΈΠΈ, Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠΎΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΡΠΊΠ»Π°Π΄ΡΠ²Π΅ΡΡΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠ² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Ρ ΠΏΡΠΎΡΡΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ.
12.1. ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΠ΅ΡΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Π½ΠΎΠ²ΠΈΡΠΊΠΈ
ls
ΠΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠ²ΠΎΠ΄Π° "ΡΠΏΠΈΡΠΊΠ°" ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ½ΠΎΠ³ΠΈΠ΅ Π½Π΅Π΄ΠΎΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ Π²ΡΡ ΠΌΠΎΡΡ ΡΡΠΎΠΉ ΡΠΊΡΠΎΠΌΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΊΠ»ΡΡΠΎΠΌ -R, ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΠΎΠ±Ρ ΠΎΠ΄ Π΄Π΅ΡΠ΅Π²Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΠΌΠ°Π½Π΄Π² ls Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ. ΠΠΎΡ Π΅ΡΠ΅ ΡΡΠ΄ Π»ΡΠ±ΠΎΠΏΡΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ (ΠΎΠΏΡΠΈΠΉ) ΠΊΠΎΠΌΠ°Π½Π΄Ρ ls: -S -- ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², -t -- ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° ΠΈ -i -- Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΈΡ inode (ΡΠΌ. ΠΡΠΈΠΌΠ΅Ρ 12-3).
ΠΡΠΈΠΌΠ΅Ρ 12-1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΈΡΠΊΠ° Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ CDR, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ls