|
���
sh - �������� ��������� ������������� shell.
���������
sh [-ceiknrstuvx] [args]
��������
Shell - ��� c���������� ��������� ���� ����������������, ������� ��������� ������ ������ � ��������� ��� �� �����. ����
�������� �������� ������� ����� (INVOCATION), � ������� ������� �������� ���������� �������������� shell.
�������
������� �������(simple-command) - ��� ������������������
����(words), �� ���������� ������ �������� � ����������� ��������� (������ ������(blank) - ��� ���� ��������� ��� ������).
������ ����� ���������� ��� ����������� �������. �� ����������� ���� ��� ���������� ����, ���������� ����� ���������� ���
��������� � ��������� �������. ��� ������� ���������� ��� �������� 0 (�������� ������� exec(2)). � ������ ����������� ���������� ������ ������� ������� �������� (value) - ��� ��������� �� ������, � � ������ ���������� ���������� (������������
��������)1000+ �������� ��������� (status) (�.�. ���� ��������
����������� �������� ��������� �����). �������� �������
signal(S), ��� �������� ������ ������ ���������.
��������(pipeline) - ��� ������������������ ����� ��� ����� ������, ����������� �������� ������������ ����� (|). (������ ^ ���������� ������� ��� ������� ������������ ����� � ��� �� ������� ������������ � ���������).����������� ����� ������ �������, ����� ���������, ������ ������� pipe(S) c� ����������� ������ ��������� �������. ������ ������� ����������� ��� ��������� �������; ������������� shell ���� ���������� ��������� �������.
������(list) - ��� ������������������ ������ ��� ����� ����������, ����������� ��������� ;,&,&& ��� ||(��� ������������ �����) � ������������� ������������� ��������� ; ��� &. �� ���� ������� ��������, ������� ; � & ����� ���������� ���������, ������� ���� ��� � �������� && � ||. ������� && � || ����� ����� ������ ���������. ����� � ������� (;) �������� ���������������� ���������� ����������� ���������; ��������� (&) �������� ����������� ���������� ����������� ��������� (�.�. ������������� shell �� ���� ���������� ����� ���������). ������ &&(||) �������� ������(list) ��������� �� ��� ��� ����������, ������ ���� ��������� ������ ����������� ��������� ����� ���� (�� ����). ������������ ���������� �������� ����� ����� ����� ��������� � ������ (list) ������ ����� � ������� (;) ��� ���������� ������.
������� (� c�mmand) ������������ ����� ���� ������� �������, ���� ���� �� ������������� ����. ��������,������������ ��������,������������ ��������� ��������� ������� ������� ����������� � �������, ����� �������� ������������� �����.
for name [in word...] do list done
������ ��� ��� ���������� ������� for �������� name ��������������� ��� ���������� �����(word), ������� �� ������ in word. ���� �������� in word... �����������, �� ������� for �������� �������� do list ���� ��� ��� ������� �������������� ������������ ��������� (�������� ���� �������� ������� ����������� ��������� (Parameter Substitution)). ���������� �����������, ����� � ������ ������ ��� ����(words).
case word in [ pattern [|pattern ]...)list ;;] case
������� case ��������� ������ list, ��������� � ������ ��������(pattern), ������� ������������� ��������� word. ����� �������� ��������� � ������, ������������ ��� ��������� ����� ����� (�������� �������� ������� ��������� ����� ����� (Filename Generation)).
if list then list [ elif list then list ] [ else list ] fi
�������� list,��������� �� �������� if ����������� �, ���� ������������ ��������� ������ ����� 0, �� ����������� ������ list ��������� �� ������ ���������� then. �����, ���������� ������ list, ��������� �� elif �, ���� ��� �������� ����� 0, �� ���������� ������ list, ����������� � ���������� then. � ��������� ������, ���������� else list. ���� �� ����������� ��������� else list ��� then list, �� ������� if ���������� ������� ��������� ������.
while list do list done
������� while ������������ ��������� �������� while list �, ���� ��������� ������ ��������� ������� � ������ ����� ����, �� ��������� do list; � ��������� ������, ���� �����������. ���� ������� � ��������� do list �� �����������, �� ������� while ���������� ������� ��������� ������; ������� until ����� ���� ������������ ������ ������� while ��� ������ �������� ���������� �����.
if then else elif fi case esac for while until do done { }
�����������
�����, ������������ � ������� # ��������, ��� ����� � ��� ����������� ������� �� ������� ����� ������ ����� ��������������.
����������� �������
����������� ����� �� �������,����������� � ���� ������� (` `),
����� ���� ����������� ��� ��� �����,��� � ��� ����� �����;
����������� ������� ����� ����� ���������.
����������� ���������
������ $ ������������ ��� ����� ������������� ����������(parameters). ����������� ��������� ����� ���� �����������
���������� ������� set. �������� ���������� ����� ���� ��������� ��������� �������:
name=value[ name=value]... (���-��������)��������� ������� � ��������� ��������� value �� ������������.
echo ${d:-`pwd`}
���� ��������� (:) ������� � ��������������� �������, �� shell ������ �������� ���������� �������� (parameter) ��� ���.
��������� ��������� ������������� ��������������� ��������������� shell:
# | ���������� ����������� ���������� � ���������� ����; |
---|---|
- | ��������� ������,������������� ��� ������ shell ��� �������� set; |
? | ���������� �������� ���� �������� ��������� ��������� ����������� �������; |
$ | ����� �������� �������� shell; |
! | ����� �������� ���������� ��������� ������� �������. |
������������� shell �������� �� ��������� ��������� �������� PATH, PS1, PS2 � IFS, � �� ����� ��� ������ �� ��������������� ������������� shell ��������� HOME � MAIL (���� HOME ��������������� �������� login(5)).
������������� ������� �������
����� ����������� ��������� � �������, ���������� �����������
��������������� ��� ����������� �������� ���������� ������������ ����� (������� ���������� � ��������� IFS) � �����������
�� ��������� ���������, ���� ������� ������� �������. �����
������� ��������� (" " ��� ' ') �����������. ������� �������
��������� ( ����������� �� ����������, ������� �� ����� ��������) ���������.
��������� ����� �����
����� �� ������������, ������ ������� word ��������������� ���
����������� �������� *,?, � [. ���� ���� �� ���� �������� ������������, �� ������� word ��������������� ��� ������
(pattern). ������� word ���������� ������� ������, ���������������� � ���������� �������, ������� ������������� �������.
���� ��� ����� ����� ���������������� �������, �� ������� word
�������� ����������. ������ . � ������ ����� ����� ��� ��������������� ��������� �� �������� /, ��� �� ��� ��� ������ /,
������ ���� ����� ������. ������� � ��������������� ��
�������:
* | ������������� ����� ������, ������� ������� ������. |
---|---|
? | ������������� ������ ���������� ������� |
[...] | ������������� ����� �������� �� ��������� ������. ���� �������� ����������� - (����) ������������� ������ ������������ �������, ������������� ����� ����� ��������. ���� ������ ������, ��������� �� ������������� ���������� ������� "[" ��� ������ "!", �� ��� ������������� ������ ������� �� ����������� � ������. |
���������� � ������� (Quoting)
C�������� ������� ����� ����������� ���������� � �������������� shell � �������� ���������� ������� word (����� �������,
����� ��� ������� ��������� � �������):
; & ( ) | ^ < > ������ ����� ������, ������, ������ ���������
������ ����� ���� �������� � ������� (�.�.����������� ��� ��������� ������ ����) �������������� ��� �������� \. ���������� ���� �������� \ � ���� ����� ������ ������������. ��� �������, ����������� ����� ����� ��������� ������� (' '), �� ����������� ��������� �������(��������), ������� � �������. ������ ������� ������� (" ") �������������� ����������� ��������� � ������� � ������ \ ��������� � ������� ������� \,`," � $. ������ "$ *" ������������ "$1 $2...", ����� ��� ������ "$@" ������������ "$1" "$2"....
���������
����� �� ��������� � ������������� ������, �� ����� �������
������� ������������� shell ������� ���������, �������� ��������� PS1. ���� � ����� ������ ������� ������� ����� ������ �
��������� ����������� ����� ������ ��� ���������� ������ �������, �� ���������� ��������� ���������(�.�.�������� ��������� PS2).
��������� �������� ����������
����� ������������ ������� cd(1) ������������� shell ���������
���������� ��������� �������. ��� �������, ���� �� ����������
� ������ �������, ��������� ������� cd � ������� ��������������� ������ � ����� ��������, ������������� shell �������� �������������� ���������� ������������� ��������. ������� "y" �
������� RETURN (��� ������ ������� RETURN) ��� �������� �
������������ �������. ���� ������������ ���������� �����������, ������� "n", ����� ������� ���������� ��������� ������. �
��������� �������, ������� �������������� shell �� ���� ������� sh(1) �������� ������ �������:
$cd/usr/spol/uucp cd/usr/spool/uucp?y ok
����/�����
����� ����������� �������, �� ���� � ����� ����� ���� ������������� � ������� ����������� ������� ����������� ���������������� shell. ����������� ����� �������� ���-���� � �������
�������, � ����� ����� �������������� ��� ��������� �� �������� (�ommand). ��� �� ��������� � ��������� �������; ����������� ������������� ����� ������ word ��� ������ digit:
���� �����, �� ���� �������������, ����������� ������������ �����, �� ���� ����� ����� ����������, ���������� ���� ������ (������ ������������ �� ��������� ������������ 0 � 1). ��������,
...2>&1������� ������� ���������� ����� 2, ������� �������� ������ ����������� ����� 1.
���� �� �������� ������� ������ &, �� ����������� ���� �� ��������� ��� ������� ��� ������ ���� /dev/null. �����,����� ��� ���������� ������� �������� ����������� ������ ����������� shell, ���������� �������������� �����/������.
�����
����� (environment)(�������� �������� ������� environ(5)) ���
������ ��� "���-��������", ������� ���������� � �����������
��������� ����� ����� ��� � ������� ������ ����������. ������������� shell ��������������� �� ������ ����������� ���������.
��� ������, shell ������������� ����� � ������� �������� ���
������� ���������� �����, �������� ��� ��������������� ��������. ����������� ������� ��������� �� �� ����� �����. ����
������������ �������� �������� ���� ���������� ��� ������� �����, �� ������� �� ���� ���������� �� ������ �� �����, �����
������� export, ������� ������������ ��� ����� ����������
shell �� ������. ����� ������������� ����� ����������� �������� ������� �� ����� ������������ ��� "���-��������" ������������� �������������� ��������������� shell, ����� ����� ����
��������� � ������� ������� unset, ���� ����� ��������� ���
����������, ������ �� ������� ������ ���� �������� � ��������
export.
����� ��� ����� ������� ������� (simple-command) ����� ���� ��������� c ������� ������������� ����� ��� ������ ��� ����� ���������� ����������. ����� �������:
TERM=450cmd args � (export TERM; TERM=450; cmd args)������������ (��� �������� ���������� ���� ����������� ������� �md).
���� ���� -k ����������, �� ��� �������� ��������� ����������� � �����, ���� ���� ��� ������� ����� ����� �������.
C������
������� INTERRUPT(����������) � QUIT(�����) ��� ��������� ������� ������������, ���� �� �������� ������� ������ &; �����,
������� ����� �������� �������������� ��������������� shell ��
��� ������������� ��������, � ��������� ������� 11. ���� �������� �������� ������� trap).
����������
������ ��� ����� ����������� ������� �������������� ��������������� �����������. ���� ��� ������� �� ������������� ����� ��
���������� ������, �� ������������� ����� ������������ �������, �� ������� ����������� � �������� shell (������� ��� ���
���������� �� ���������� �������� shell). ����������� ��������� $1,$2... ��������������� ��� ���������� �������. ���� ���
������� �� ������������� �� ���������� �������, �� ����� ������������ �������, �� ��������� ����� ������� � ��������������
������� ��������� ������� � ������� ������� exec(2).
�������� shell PATH ���������� ���� ������ ��������, ����������� �������. ����� �������������� ��������� ����������� ����������(:). ���� �� ��������� ��� :/bin:/usr/bin (��������� ������� ������� � ����� ������� /bin � /usr/bin). �������, ��� ������� ������� ������������ ������ �������� ����, ������� ����� ��������� ����� ����� ����� ��������� ��� ����� ��������� ���������(:) � ����� ����� � ������ ����. ���� ��� ������� �������� ������ /, �� ���� ������ �� ������������. �����, ������ ������� ��������� � ���� ������ ��������������� ��� ������ ������������ �����. ���� ���� �����������, �� �� �������� ������ a.out, �� �� ����� ������������ ����� ����, ���������� ������� shell. ���������������� sub-shell (�.�.��������� �������) ��������� ��� ��� ������. ����������� � ������ ������� ����� ����������� � ����������������� sub-shell.
�������������� � ���� ������, ��� ���� ������� �������, ������������ shell (����� �������� ������ �������� �������). ���� ������� ���� ������� � ������� ��������, �� �������������� ������ ���� �������������� ������ ���, ����� ���������� ������� �������. ������������� shell �������� ��� ����������� ��������������, ������ ���, ����� ���������� PATH ���������� ��� ����������� ������� hash-r (�������� �� �������� ����).
���������� �������
��� ���� ������ ��������� ������������� �����/������.
���� shell �������� ��� ������� � ��������� � ���������� �������� �� ���������� (��� �� ������� ��������� ����������), ������������ ����������� ���������� ������ ���������� �������� (directory) ��� ������ "�����������" �����, ����� shell ����������� ���� �� �������� ������� �� ������������ ��� ��������, ����� "n" ������������� "���", ����� ������ ����� �������� "��".
\b | ������� �� ���� ������� |
---|---|
\c | �������� ������ ��� ������� ����� ������ |
\f | ������ �������� |
\n | ������ ����� ������ |
\r | ������� ������� |
\t | ��������� |
\v | ������������ ��������� |
\\ | ������ backslash |
\n | 8-������� ������, ��� ��� ASCII ������������ ����� 1,2,3-� ��������� ����� � ������������ �����, ����� n ������ ���������� � ���� |
-� | ���� ������������� shell ���������������,�� �������������� ����������� �����, � ������ ���� ������� ����������� � ��������� ����� ���������� ������. |
---|---|
-f | ������ ������������ ����� �����. |
-h | ���������� � ��������� �������������� ������� ��� �������,������� ���������� (�������������� ������� ������ �����������, ����� ������� ���������). |
-k | ��������� � ����� ��� �������� ��������� ��� �������, � �� ������ ��, ������� ������������ ����� �������. |
-n | ������� �������, �� �� ��������� ��. |
-u | ������� ������� ����������� ��������������� ����������. |
-v | �������� ������� ������ shell �� ���� �� ����������. |
-x | �������� ������� � �� ��������� �� ���� �� ����������. ���� ���� ���� ���������� � ��������������� (sub-shell), �� �� ����� ���� �������� � ���� ������������������. |
-- | �� �������� ����� �����; ������� � ��������� $1 � -. |
��� ������ ���������� ������ ����� ������������ ������ + ������ ������� -. ��� ����� ����� ����� ���������� ��� ������ �������������� shell. ������� ��������� ������ ����� ����� � ��������� $-. ���������� ��������� ��� ����������� ��������� � ������������� �� ������� ���������� $1,$2,... ���� �� ������ �� ������ ���������, �� ����� ����������� �������� ���� ����������.
-f | �������� ����������� ������� ������ n � ������, ��������� ����������-��������� (����� ���� ��������� ����� ������ �������). ����� ������������ ����� ��������� ����������� ������� �����, �� ��������� ����������� ����� ������ ����������������� ������������, ����������� � �������� ��������. ���� ������� ��� ����������, �� ����� ���������� ������� �����������. ���� ����� �� ������, �� ����������� ����� -f. |
---|
�����
���� shell ������ ����� ������� exec(2) � ������ ������ �������� ��������� ��� -, �� ������� ������������� �������� ��
�������� ����� /etc/profile, � ����� �� ����� $HOME/.profile,
���� ����� ����� ����������. ����� �����, ������� �����������
��� ������� ����, ��� ���������� ����� � ������, ����� shell
������ ��� /bin/sh. ����������� ���� ����� ����������������
shell ������ ��� ������. �������, ��� ����� ���� ��� ����������� ���� -� ��� -s, ������� ��������� ����������� ��� �����
����������� �������, � ���������� ��������� ���������� ��� ����������� ��������� � ���� ��������� ����:
-� string | ���� ����� ���� -�, �� ������� ����������� �� ������ string. |
---|---|
-s | ���� ����� ���� -s ��� ���� ��������� �� �����������, �� ������� ����������� �� ������������ �����. ����� ���������� ��������� ���������� ����������� ���������. ����� �������������� shell ������������ � ���� � ������������ 2. |
-t | ���� ����� ���� -t, �� �������� � ����������� ��������� ������� � ������������� shell �����������. ���� ���� ��������������� ��� ������������� ������ ����������� ����������� �� ����� � � ���������� � ������������� ������. |
-i | ���� ����� ���� -i ��� ���� ���� � ����� shell ������� � ����������, �� ���� shell �������� �������������. � ���� ������, ������ ���������� TERMINATE ������������ ( ��� ��� ������� kill 0 �� ������� ����������� ������ �������������� shell) � ������ ���������� INTERRUPT ��������������� � ������������( ��� ��� ������� wait ����������). �� ���� �������, ������ ������ QUIT ������������ shell. |
-r | ���� ����� ���� -r, �� �������� ������������ shell. (�������� �������� ������� rsh(1)). |
���������� ����� � ��������� ��������� � �������� ������� set ����������� ����.
��������� ������
��� ����������� ������ ��������������� shell, ����� ��� �������������� ������, �� ���������� ��������� ��������� ������.
���� shell ������������ � ��������������� ������, ����������
����� shell ������������. �����, shell ���������� ���������
������ ��������� ����������� �������. �������� �������� ������� exit ����������� ����.
�����
/etc/profile ��������� ���� �� ��������� profile,���� ����- ��� ������ �� ������������ $HOME/.profile �������� ���������� ��������������� shell ��� ����������� /tmp/sh* ��������� ���� ��� �������� >> /dev/null �������� ������� �����
��. �����
cd(1), env(1), login(5), newgrp (1), rsh(1), test(1),
umask(1), dup(2), exec(2), fork(2), pipe(2), signal(S),
umask(2), wait(2), a.out(3), profile(5), environ(5).
���������
������� readonly (��� ����������) ������������ ����� �� �����
��� � ������� export.
���� ������������ ������� << ��� ����������� ������������ ����� � ����������� ��������, ��������� � ������� ������� &, �� shell ����� ������� ���������� � ����� �������� ���������; ��������� ���� ���������� "�����" /tmp/sh* � shell �������� � ������������� ����� ���� ���� � ������� ������� �����.
���� ������� ��������� � ������� � ��� �� ����� ������ ����������� � ��������, ��������� � ���� ������, �� ��������, ��� ���� ������� �������� �������, shell ����� ���������� ��������� (exec) �������� �������. ��� ��������� ���� �������� ����������� ������� hash.
���� �� �������� ������� ������� ��� �������, ������������� ���� ��������, �� ������� pwd �� ������ ������ ���������� �����. ����������� ������� cd � ������ ������ ���� ��� ��������� ���� ��������.
����� ������������ ������� sh(1) ������ � �������, �� ��� ������ � ��������� ������� �� ����� /etc/profile �� ���������� ������ �� ����� ������������ $HOME/.profile. �������, �� ������ �������� ����� ��� ���� ������������� ������� sh(1) � �������, �������������� ���� /etc/profile.
|