# ΠΡΠΎ Π΄ΡΡΠ³Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ.
^D
$
ΠΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ Ctrl+D Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ Π²Π²ΠΎΠ΄ ΠΈ Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ», ΠΈ Π²Ρ ΡΠ½ΠΎΠ²Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ.
ΠΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠΉΡΡ ΡΠ°ΠΉΠ» ΡΡΠ΅Π½Π°ΡΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ (ΠΏ.2.1.4):
$ chmod Π°+x myscript
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΡΠ°Π»ΠΎΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ hello ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ:
$ hello="Hello from local"
$ echo $hello
Hello from local
$ ./myscript
Env variable: Hello from environment!
Local variable:
$
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΠΠΎΠ³Π΄Π° ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ, ΠΎΠ½Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΄Π»Ρ ΡΠ΅Π±Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. ΠΠΌΠ΅Π½Π° ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Ρ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΡΠ°ΡΡΡΡ Π²ΡΡΡΠ½ΠΈΡΡ Π½ΡΠΆΠ½ΡΡ ΠΈΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 3.2.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ bash Π’Π°Π±Π»ΠΈΡΠ° 3.2
ΠΠΌΡ ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ BASH_VERSION ΠΠ΅ΡΡΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ USER ΠΠΌΡ. ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ UID, EUID Π Π΅Π°Π»ΡΠ½ΡΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ userID HOME ΠΡΡΡ ΠΊ Π²Π°ΡΠ΅ΠΌΡ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ HOSTNAME ΠΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° HOSTTYPE Π’ΠΈΠΏ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (i386 ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ) OSTYPE ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° (linux-gnu) HISTFILE, HISTSIZE Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ LANG Π―Π·ΡΠΊ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅Π°Π½ΡΠ° LINES, COLUMNS Π§ΠΈΡΠ»ΠΎ ΡΡΡΠΎΠΊ ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π½Π° ΡΠΊΡΠ°Π½Π΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ PS1, PS2, PS3, PS4 ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ Π²ΠΈΠ΄ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ PATH ΠΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π² ΠΏΠΎΠΈΡΠΊΠ°Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π²Π°ΠΌΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ Π½Π΅ΠΌΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅Π°Π½ΡΠ°, ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π²Π°ΠΌΠΈ, ΡΠ°ΠΊ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ set.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ PATH: ΡΡΠ΅Π΄ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ bash ΠΈΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», Π½Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ. ΠΠΎΡΡΠΎΠΌΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π»ΠΈΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ myscript, ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΎΡΠ²Π΅ΡΠΈΠ»Π° Π±Ρ Β«Command not foundΒ». ΠΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ, ΠΈ ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, ΡΡΠΈΡΠ°Ρ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°: ./myscript.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ PS1 Ρ ΠΌΠ΅Π½Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ: [\ [email protected]\h \W]\$. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Ρ ΠΌΠ΅Π½Ρ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ (username), ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ°ΡΠΈΠ½Ρ (hostname), ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° (working dir) ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° $. Π― ΠΌΠΎΠ³Ρ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ:
[ [email protected] ~]$ pssave=$PS1 # ΡΠΎΡ ΡΠ°Π½ΡΡ ΡΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
[ [email protected] PS1="\W>"
~> # Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° >
-> cd My* MyDownloads>
MyDownloads > PS1=$pssave # ΠΏΠΎΠΈΠ³ΡΠ°Π»ΠΈ, ΠΈ Ρ Π²Π°ΡΠΈΡ
[ [email protected] MyDownloads]$
Π£Π΄Π°Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ unset <ΠΈΠΌΡ>.
ΠΡΡΡΡΠ°Ρ ΡΠΌΠ΅Π½Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ CDPATH Π·Π°Π΄Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΠΈΡΠΊ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° (ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cd). ΠΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ½ΠΈΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ CDPATH, Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΡΡΡΡ Π² ΠΌΠΎΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /home/denis/books/linux-server Π΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ chapter1 ... chapter20. ΠΡΠ»ΠΈ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ chapter2, ΡΠΎ Ρ ΠΌΠΎΠ³Ρ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π½Π° Π½Π°Π±ΠΎΡΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π²Π½Π΅ΡΡ ΡΡΠΎ ΠΈΠΌΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ CDPATH:
$ export CDPATH=:.:/home/denis/books/linux-server
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ cd chapter2 Ρ ΠΏΠΎΠΏΠ°Π΄Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /home/denis/books/linux-server/chapter2 ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° chapter2 Π½Π΅Ρ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π£ΡΠΈΠ»ΠΈΡΠ° tputΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, ΠΌΠ½ΠΎΠ³ΠΈΠΌ Ρ ΠΎΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π½Π΅ Π±ΡΠ» ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ Π·Π° ΡΠΎΡΠ΅Π΄Π½ΠΈΠΌ ΡΡΠΎΠ»ΠΎΠΌ. ΠΡΠΎ-ΡΠΎ ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ΅ΠΌΡ, ΠΊΡΠΎ-ΡΠΎ β ΠΎΠ±ΠΎΠΈ. ΠΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π² ΠΏΡΠ°Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ β ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎΡ ΡΠ³ΠΎΠ» ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΡΠ΅ΠΊΡΡΠ° ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΌ. ΠΠ»Ρ ΡΠ΅Π³ΠΎ? Π ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ β ΡΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ Π½Π΅ ΠΊΠ°ΠΊ Ρ Π²ΡΠ΅Ρ .
ΠΠ»Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ ΠΊΡΡΡΠΎΡΠΎΠΌ ΠΈ ΡΠ²Π΅ΡΠΎΠΌ Π±ΡΠΊΠ² ΠΈ ΡΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΈΠ»ΠΈΡΠ° tput. Π ΠΏ.2.1.4 Π²Ρ ΡΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΅Π΅ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Β«ΡΠ±ΠΈΡΠΎΠΉΒ» ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π° ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½Π° ΡΠΌΠ΅Π΅Ρ Π΅ΡΠ΅. Π ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ man-ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠΈΡΡΠΈΠ½Π³ 3.1. ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΡΠΈΠ»ΠΈΡΡ tput
#!/bin/bash
function prompt_command {
# ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ°
tput sc
# Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ Π΄Π»ΠΈΠ½Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°
# ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pwd
let backwash=$(tput cols)-$(echo $(pwd) | wc -m)-2
# ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΠΌ ΠΊΡΡΡΠΎΡ Y=0, X=Π΄Π»ΠΈΠ½Π°
tput cup 0 ${backwash}
# ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ²Π΅ΡΠ° Π±ΡΠΊΠ², Π½Π°ΡΠ΅ΡΡΠ°Π½ΠΈΠ΅ β ΠΆΠΈΡΠ½ΠΎΠ΅
tput setaf 4 ; tput bold
# Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ
echo -n " ["
# ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²Π΅Ρ
tput setaf 6
# ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ΠΏΡΡΡ
echo -n "$(pwd)"
# ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²Π΅Ρ Π΄Π»Ρ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠ΅ΠΉ ΡΠΊΠΎΠ±ΠΊΠΈ
tput setaf 4 ; tput bold
# ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ]
echo -n "]"
# Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΠΊΡΡΡΠΎΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ
tput rc
}
PROMΠ Π’_Π‘ΠΠΠAND=prompt_ΡΠΎmmand
GREEN="\[$(tput setaf 2 ; tput bold)\]"
WHITE="\[$(tput setaf 7 ; tput bold)\]"
NO_COLOUR="\[$(tput sgr0)\]"
case $TERM in
xterm*|rxvt*)
TITLEBAR='\[\033]0;\ [email protected]\h \007\]'
;;
*)
TITLEBAR=""
;;
esac
PS1="${titleBAR}\
$GREEN\ [email protected]\h \
$WHITE\$$NO_COLOUR "
PS2='> '
PS4='+ '
ΠΠΎΠΌΠ°Π½Π΄Ρ ΡΡΠΈΠ»ΠΈΡΡ tput:
tput setaf [1-7] ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ²Π΅ΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ANSI ESC-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ;
tput setab [1-7] ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ²Π΅ΡΠ° ΡΠΎΠ½Π°;
tput rev ΠΎΠ±ΡΠ°ΡΠΈΡΡ ΡΠ²Π΅ΡΠ° ΡΠΎΠ½Π° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π°;
tput bold ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΆΠΈΡΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠ΅ΡΡΠ°Π½ΠΈΡ;
tput dim ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΆΠΈΡΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠ΅ΡΡΠ°Π½ΠΈΡ;
tput smul ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΠΎΠ³ΠΎ Π½Π°ΡΠ΅ΡΡΠ°Π½ΠΈΡ;
tput rmul ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΠΎΠ³ΠΎ Π½Π°ΡΠ΅ΡΡΠ°Π½ΠΈΡ.
3.4.4. ΠΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π°, ΡΠ°ΡΡΠΈ ΠΈΠΌΠ΅Π½ ΠΈΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Π·Π°ΠΌΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΡΠΈΡΠ²ΠΎΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ cwd Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΡΠΈ ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΡΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅
$ cd $cwd
ΠΡΠ²Π΅ΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½ ΡΠ°ΠΉΠ» README ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΌΠΎΠΆΠ½ΠΎ, Π²Π²Π΅Π΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
$ more ${cwd}/README
ΠΡΠ°ΡΡ ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΡΠΊΠΎΠ±ΠΊΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ΄Π΅Π»ΠΈΡΡ ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π΅ΠΌΡ ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π° Π½ΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ bash ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠΎ Π΅ΡΡΡ Π·Π°ΠΌΠ΅Π½Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π’Π°ΠΊ, ΡΡΠΈΡΠ°Ρ /home/den/ΠΡDownloads/packages ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ cwd ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅:
$ cwd=`pwd` # Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° pwd Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ
# ΠΏΡΡΡ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ
ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π²Π°ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π½ΠΎ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. Π’Π°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΊΡΠ°Π½Π½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, Π²Π²Π΅Π΄ΠΈΡΠ΅:
$ ps -ef | grep $USER | less
3.4.5. Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π²ΡΠ³Π»ΡΠ΄ΡΡΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², Π° ΡΠΊΠ°Π·Π°ΡΡ Π½Π° ΡΠ΅Π»ΡΡ Π³ΡΡΠΏΠΏΡ ΠΈΠΌΠ΅Π½, Π·Π°Π΄Π°Π² ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ°Π·Π΅Ρ. ΠΠ΅ΡΠ΅Π΄ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΡΠ°ΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ°Π±Π»ΠΎΠ½, ΡΠΎ Π΅ΡΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π·Π΅Ρ Π²ΡΠ΅ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌΠΈ ΠΏΠΎΠ΄ ΡΡΠΎΡ ΠΎΠ±ΡΠ°Π·Π΅Ρ, ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΈΠ· ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΡ. Π¨Π°Π±Π»ΠΎΠ½Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 3.3. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅.
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π’Π°Π±Π»ΠΈΡΠ° 3.3
Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΡΠΈΠΌΠ΅Ρ * ΠΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΡΡΡΠ°Ρ ~/*.png β Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ png; Glava* β ΡΠ°ΠΉΠ»Ρ Glava, Glava03 ΠΈ Glava.old ? ΠΡΠ±ΠΎΠΉ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Glava?? β ΡΠ°ΠΉΠ»Ρ Glava03 ΠΈ GlavaXZ, Π½ΠΎ Π½Π΅ Glava ΠΈ Π½Π΅ Glava.old [m,M,x] ΠΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΈΠ² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ Glava0[3,8] β ΡΠ°ΠΉΠ»Ρ Glava03 ΠΈ Glava08, Glava?[3,8] β ΡΠ°ΠΉΠ»Ρ Glava03, Glava08, Glava13, Glava18, Glava23 [a-nA-N] ΠΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΈΠ² ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ² Glava0[2-4,9] β Glava02, Glava03, Glava04, Glava09 [^a-n,x,y] ΠΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ», Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ Glava[^0]* β Π²ΡΠ΅ Π³Π»Π°Π²Ρ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ 11Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΠΈΠΌΠ΅Π½Π°Ρ ΡΠ°ΠΉΠ»ΠΎΠ². Π’ΠΎΠ³Π΄Π° ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Π½Π΅ ΠΏΡΠΈΡΡΡΠΏΠΈΠ»Π° ΠΊ ΠΈΡ ΡΠ°ΡΠΊΡΡΡΠΈΡ: