[methody@localhost methody]$ stty - a localhost 38400 baud; rows 30; columns 80; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ; eol2 = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke |
Пример 8.1. Настройки терминальной линии |
Закрыть окно |
[methody@localhost methody]$ cat | hexdump -C Сейчас нажмем Ctrl+C [methody@localhost methody]$ cat | hexdump -C Теперь Ctrl+V, Ctrl+C, enter и Ctrl+D^ C 00000000 f4 c5 d0 c5 d2 d8 20 43 74 72 6c 2b 56 2c 20 43 |Теперь Ctrl+V, C| 00000010 74 72 6c 2b 43 2c 20 45 6e 74 65 72 20 c9 20 43 |trl+C, enter и C| 00000020 74 72 6c 2b 44 03 0a |trl+D..| 00000027 |
Пример 8.2. Экранирование управляющих символов |
Закрыть окно |
[methody@localhost methody]$ ^R | (reverse-i-search)`': i | (reverse-i-search)`i': ls i n | (reverse-i-search)`in': info f | (reverse-i-search)`inf': info o | (reverse-i-search)`info': info ^R | (reverse-i-search)`info': man info ^R | (reverse-i-search)`info': info "(bash.info.bz2) Commands For History" |
Пример 8.3. Поиск по истории команд |
Закрыть окно |
[methody@localhost methody]$ alias alias cd..='cd ..' alias cp='cp -i' alias l='ls -lapt' alias ll='ls -laptc' alias ls='ls --color=auto' alias md='mkdir' alias mv='mv -i' alias rd='rmdir' alias rm='rm -i' |
Пример 8.4. Просмотр заранее определенных сокращений |
Закрыть окно |
[methody@localhost methody]$ unalias cp rm mv [methody@localhost methody]$ alias pd=pushd [methody@localhost methody]$ alias pp=popd [methody@localhost methody]$ pd /bin /bin ~ [methody@localhost bin]$ pd /usr/share/doc /usr/share/doc /bin ~ [methody@localhost doc]$ cd /var/tmp [methody@localhost tmp]$ dirs /var/tmp /bin ~ [methody@localhost tmp]$ pp /bin ~ [methody@localhost bin]$ pp ~ [methody@localhost methody]$ pp -bash: popd: directory stack empty |
Пример 8.5. Использование сокращений и pushd/popd |
Закрыть окно |
[methody@localhost methody]$ ls -al /bin/base Tab | [methody@localhost methody]$ ls -al /bin/basename -rwxr-xr-x 1 root root 12520 Июн 3 18:29 /bin/basename [methody@localhost methody]$ base Tab | [methody@localhost methody]$ basename Tab | [methody@localhost methody]$ basename ex Tab | [methody@localhost methody]$ basename examples/ Tab | [methody@localhost methody]$ basename examples/-filename-with- -filename-with- |
Пример 8.6. Использование достраивания |
Закрыть окно |
[methody@localhost methody]$ ls .bash* .bash_history .bash_logout .bash_profile .bashrc [methody@localhost methody]$ /bin/e* /bin/ed /bin/egrep /bin/ex [methody@localhost methody]$ ls *a* -filename-with- [methody@localhost methody]$ ls -dF *[ao]* Documents/ examples/ loop to.sort* |
Пример 8.7. Использование шаблона в командной строке |
Закрыть окно |
[methody@localhost methody]$ echo *o* Documents loop to.sort [methody@localhost methody]$ echo \*o\* *o* [methody@localhost methody]$ echo "*o*" *o* [methody@localhost methody]$ echo *y* *y* [methody@localhost methody]$ ls *y* ls: *y*: No such file or directory |
Пример 8.8. Экранирование специальных символов и обработка "пустых" шаблонов |
Закрыть окно |
[methody@localhost methody]$ date Птн Ноя 5 16:20:16 MSK 2004 [methody@localhost methody]$ LC_TIME=C date Fri Nov 5 16:20:23 MSK 2004 |
Пример 8.9. Утилита date пользуется переменной окружения LC_TIME |
Закрыть окно |
[methody@localhost methody]$ A=dit [methody@localhost methody]$ C=dah [methody@localhost methody]$ echo $A $B $ C dit dah [methody@localhost methody]$ B=" " [methody@localhost methody]$ echo $A $B $C dit dah [methody@localhost methody]$ echo "$A $B $C" dit dah [methody@localhost methody]$ echo '$A $B $C' $A $B $C |
Пример 8.10. Подстановка значений переменных |
Закрыть окно |
[methody@localhost methody]$ echo "$Qwe -- $LANG" -- ru_RU.KOI8-R [methody@localhost methody]$ Qwe="Rty" LANG=C [methody@localhost methody]$ echo "$Qwe -- $LANG" Rty -- C [methody@localhost methody]$ sh sh-2.05b$ echo "$Qwe -- $LANG" -- C sh-2.05b$ exit [methody@localhost methody]$ echo "$Qwe -- $LANG" Rty -- C [methody@localhost methody]$ export Qwe [methody@localhost methody]$ sh sh-2.05b$ echo "$Qwe -- $LANG" Rty -- C sh-2.05b$ exit |
Пример 8.11. Экспорт переменных shell в окружение |
Закрыть окно |
[methody@localhost methody]$ echo $PATH /home/methody/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/usr/games [methody@localhost methody]$ mkdir /home/methody/bin [methody@localhost methody]$ mv to. sort loop script bin/ [methody@localhost methody]$ script Hello, Methody! |
Пример 8.12. Использование PATH |
Закрыть окно |
[methody@localhost methody]$ cd examples/ [methody@localhost examples]$ echo $PS1 [\u@\h \W]\$ [methody@localhost examples]$ PS1="--> " --> --> PS1="\t \w " 22:11:47 ~ 22:11:48 ~ 22:11:48 ~ PS1="\u@\h:\w \$ " methody@localhost:~/examples $ methody@localhost:~/examples $ methody@localhost:~/examples $ cd methody@localhost:~ $ methody@localhost:~ $ |
Пример 8.13. Использование переменной окружения PS1 |
Закрыть окно |
[methody@localhost methody]$ grep Methody bin/script echo 'Hello, Methody!' [methody@localhost methody]$ grep -q Methody bin/script ; echo $? 0 [methody@localhost methody]$ grep -q Shogun bin/script ; echo $? 1 [methody@localhost methody]$ if grep -q Shogun bin/script ; then echo "Yes"; fi [methody@localhost methody]$ if grep -q Methody bin/script ; then echo "Yes"; fi Yes |
Пример 8.14. Оператор if использует код возврата программы grep |
Закрыть окно |
[methody@localhost methody]$ if test -f examples ; then ls -ld examples ; fi [methody@localhost methody]$ if [ -d examples ] ; then ls -ld examples ; fi drwxr-xr-x 2 methody methody 4096 Окт 31 15:26 examples [methody@localhost methody]$ A=8; B=6; if [ $A -lt $B ] ; then echo "$A<$B" ; fi [methody@localhost methody]$ A=5; B=6; if [ $A -lt $B ] ; then echo "$A<$B" ; fi 5<6 |
Пример 8.15. Оператор test |
Закрыть окно |
[methody@localhost methody]$ A=8; B=6 [methody@localhost methody]$ expr $A + $ B 14 [methody@localhost methody]$ echo "$A + $B = `expr $A + $B`" 8 + 6 = 14 [methody@localhost methody]$ A=3.1415; B=2.718 [methody@localhost methody]$ echo "$A + $B = `expr $A + $B`" expr: нечисловой аргумент 3.1415 + 2.718 = [methody@localhost methody]$ echo "$A + $B" | bc 5.8595 [methody@localhost methody]$ C=`echo "$A + $B" | bc` [methody@localhost methody]$ echo "$A + $B = $C" 3.1415 + 2.718 = 5.8595 |
Пример 8.16. Подстановка вывода команды |
Закрыть окно |
[methody@localhost methody]$ cat > bin/two #!/bin/sh echo "Running $0: $*" $1 $3 $2 $3 [methody@localhost methody]$ chmod +x bin/two [methody@localhost methody]$ bin/two file "ls -ld" examples Running bin/two: file ls -ld examples examples: directory drwxr-xr-x 2 methody methody 4096 Окт 31 15:26 examples [methody@localhost methody]$ two "ls -s" wc "bin/two bin/loop" junk Running /home/methody/bin/two: ls -s wc bin/two bin/loop junk 4 bin/loop 4 bin/two 4 9 44 bin/two 1 5 26 bin/loop 5 14 70 итого |
Пример 8.17. Использование позиционных параметров в сценарии |
Закрыть окно |
[methody@localhost methody]$ for Var in Wuff-Wuff Miaou-Miaou; do echo $Var; done Wuff-Wuff Miaou-Miaou [methody@localhost methody]$ for F in `date`; do echo -n "<$F>"; done; echo <Сбт><Ноя><6><12:08:38><2004> [methody@localhost methody]$ cat > /tmp/setvar QWERTY="$1" [methody@localhost methody]$ sh /tmp/setvar 1 2 3; echo $QWERTY [methody@localhost methody]$ . /tmp/setvar 1 2 3; echo $QWERTY 1 |
Пример 8.18. Использование for и операции "." |
Закрыть окно |
"\e[5~": backward-word "\e[6~": forward-word |
Пример 8. 19. Настройка .inputrc |
Закрыть окно |
PS1="\u@\h:\w \$ " EDITOR="/usr/bin/vim" export PS1 EDITOR # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi |
Пример 8.20. Пример файла .bash_profile |
Закрыть окно |
# User specific aliases and functions if [ -r ~/.alias ]; then . ~/.alias fi # Source global definitions if [ -r /etc/bashrc ]; then . /etc/bashrc fi |
Пример 8.21. Пример файла .bashrc |
Закрыть окно |
alias > ~/.alias |
Пример 8.22. Пример файла .bash_logout |
Закрыть окно |
alias l='ls -FAC' alias ls='ls --color=auto' alias pd='pushd' alias pp='popd' alias v='ls -ali' alias vi='/usr/bin/vim' |
Пример 8.23. Пример файла .alias |
Закрыть окно |