bash
bash - наиболее распространённая командная оболочка UNIX. Используется в Linux, OS X и других операционных системах.
Потоки данных в bash:
0, или stdin (входной поток)
1, или stdout (выходной поток с основными результатами работы)
2, или stderr (выходной поток с дополнительной информацией - сообщениями об ошибках, предупреждениями и т.п.)
Перенаправление потоков данных в bash
Перенаправление потоков данных в bash | |
cmd < file |
взять stdin команды cmd из файла file |
cmd 1> file |
направить stdout команды cmd в файл file |
cmd 1>> file |
дописать stdout команды cmd в конец файла file |
cmd 2> file |
направить stderr команды cmd в файл file |
cmd 2>> file |
дописать stderr команды cmd в конец файла file |
cmd &> file |
направить и stdout и stderr команды cmd в файл file |
cmd &>> file |
дописать и stdout и stderr команды cmd в конец файла file |
2>&1 |
направить stderr в stdout |
cmd1 | cmd2 |
подать stdout команды cmd1 на вход команде cmd2 (конвейер) |
Пример:
usr@home:~/term2$ ls block1 block2 block3 usr@home:~/term2$ ls 1> file usr@home:~/term2$ cat file block1 block2 block3 usr@home:~/term2$ █ |
Метасимволы bash
Метасимволы bash - это символы bash, не несущие текстовой информации.
Метасимволы bash | |
^ |
начало строки |
$ |
конец строки или переменная |
. |
любой символ |
* |
ноль или более повторений |
+ |
одно или более повторений |
? |
ноль или одно повторение |
a|b |
a или b |
(r) |
множество r |
[r] |
один из символов из множества r |
[^r] |
любой символ, кроме символов из множества r |
r{n} |
n повторений последовательности r |
\a |
отменить специальное значение метасимвола a (экранирование) |
'r' |
для последовательности r отменить специальное значение всех метасимволов |
"r" |
для последовательности r отменить специальное значение всех метасимволов кроме $ и \ |
!n |
n-ая команда из history |
cmd1 ; cmd2 |
выполнить команду cmd1, а затем команду cmd2 |
cmd & |
выполнять команду cmd в фоновом режиме |
# |
начало комментария |
Литература:
О bash в WikipediAО регулярных выражениях в WikipediA
О bash в файле "Bash reference card" Наверх