������ ���������������� ������ � UNIX

����������

���������� 1

���������� ����� ����������

��������� ���������� ����� �������� ������������������ �������, ������� ���������� ������������� shell. �� �������� ���������������, ����� �� ��������������� � �������. ������ ���������� ������������ ���������� ������� ������� ������� UNIX. ���� ��� ����� ������ ������, �� ������ ���������, ��� ��� ����������� ���������� ����������. ����� ���������� ����� ������������� � System V, BSD � XENIX. ����� ��������� ����� ��� System V.
��� shell-���������� �������� ������ ����� ������ ���������������� �������������� shell. ��� �������� � ���� ���������� �����, � ���� �� ��� �����������, �� ��� ������ ����������. ������ ������������� �� �������� �� ������ ������ ����� ��������� �� �����������. ����� �������� �������� ����������, ����� �������� �������� ��� �������� �������������� shell �� ��� ���, ���� ��� �� ����� ��������������.


���������� 2

������������������ �������� �������������� SHELL

Shell ��������� ������������ ������������������ �������� �� ������������� ������ ��� ������ ����������� �� ������. ���� ��� ������������������, �� ������ ����������� ������ �������� �� ��������������� ������. ������ �� ������������ ���� ���� ������������������ ����� ��������� �������� ��������� ��������. ������� ����� �����, ����� ���������� �������� ����������.
���� �� �������� ��������� � ��������� ����� ����� � ������� ���������. Shell �� ���������� ����������� �� ����� ���������� ��������. �������� F=* �������� � ����������������, ��� ���������� F ������������� ���� ������. ����� ����������� ��� 7 ������������������ ��������, ��������� ������������ ��� ���������� ����� �����, ����������� �� ��� ����� ������ � ������� ��������. ��� ����� ������������������ �� ������� ������� "echo $F". ��� ���� ����� ��������� ����������� �������� ���������, ��� ����� ������������ ��, ��� ������� �� �� ���� 7. ���������� ������� echo "$F". � ��� ���� ����� ������ �������� �������� ���������� F, ��� ������� ��������� ��� 3 - ����������� ����������. �������� ������� echo '$F', �� ��������� ����� $F, � �� �������� ���������� F.
�������� ����������� � ����� �������:
  1. ������ ����� � �������������� ������
  2. ��������� ������������� �������
  3. ����������� ����������
  4. ����������� ������
  5. �������������� �����-������
  6. ��������� ���������� ������������ �����
  7. ��������� ����� �����
  8. ����������� ����������
  9. ��������� ���������� �����
  10. ���������� �������
����� ��� ���� ��������������� ����� ��������. ����� �� �������������� �� ����� shell, ����������� ����������� ����, ����� ��� �� ����������� ��� ������ ������ ������ ���������. ��������, �� ������� ���-��� ���� ����� �����. ���� ������� �����, �� ������ ����� ���������� ������ �� �������� ����� ������ � ��������� ����� ��������� ������.
1. ��������� ������ ��� ���������� ����������� �������� � ��������� ��� �� ����� ������. ������ ��������������� ��� ����������� ��������� ��������: ����� � ������� (;), ������� ������� ������ (&), ����������� � (&&), ����������� ��� (||) ���� ������� ����� ������ (\n). ����������� ������ ��������� ������ �� ����� � ������ �������� � ���������.
2. ���� � ������� �������������� shell ���������� ���� �������������� (-v), �� ����������� ������ ������������ �� ����������� ���������� ����������� ������.
����������� ����������� ����������. ���� ������ ����������� ����������� ����������, ����������� ���������� � ����������� ����������� ���������. ��������� ������ ����� ������� � ���� ��������� ����� ($).
4. ����������� ����������� ������. ��� ��������� �� ���� ��������, ������ � ������� �������� (`). ����� ������� ����������� � �����������, � �������������� ����� �������� �������� ��������� � ������ ��������� ������. ����������� ������� ����� ��������� ���������������� �������, ��������� ��� �������, ��������������� � �������. ����� ������ �������, ��������� ��� ������� ����� ������, ����������� � ���������� ���������� �������, ������������ ��������� ��� ��������� ���������� ������������ �����. ���� ����� ��������� ��� ������ �������, ��������� ������� ������� ������ ����� ���������.
5. ����������� �������������� �����-������. ���� ������� �������, �������� ���������� ����� (0, 1 ��� 2) �����������, � ����� ����������� �������� � ����� ���������. ����� �������� ���������� ����� �������� � �������� �����-������ �� �� �����, ��� � �������� �������� ����������. ������� �������������� ��������� �� ��������� ������.
6. ��������� ��������� ������ ����� ���������� �� ��������� �� ����� �������� ���������� � ���������� �����������, ��� ����� ����������� �� ����� � ������ ���������� ����� IFS. ��� ���������� �������� ����������� ����� ������, ������� �������� ����� ���� �� ����� � ��������� ������. ������ ������ ��������� ������, ������� ������� � IFS, ���������� �� ������, ����� ������������ �����. ��� ���������������� �������, ���������, ������� ����� ������ � ������� ��������� ��������� �� ��������� ������. ��� �������������� �������� ���������� �������� �� �������, ������������ � ������������ � IFS. ��� ���� ����� ������� �������� IFS, ������� ����� �������� ������:
echo "<$IFS>" | od -bc
7. ����� shell ���� ��� �����, ��� ������� ��������� ��������� ����� ����� (�����������). �������� ������� ����������� ������� � ������� �������� ��������. ���� ���������� ����� �������, ��� �������� ��������� � ��������� ������. ���� ������������ �� ����������, ����������� �������� � ���� ���������. ��� ���������� ���������� �������� �� ��������� ������������. �������� �������� �������� ������� "ls z*". ���� ����� �����-���� ������ ���������� � ����� z, ��� ����� �������������. � ��������� ������ ���������� ��������� "z* not found".
8. ���� ���������� ���� ����������� ���������� (-x), �� ��������� ������ ������������ �� ����������� ���������� ����������� ������ ����� ���, ��� ��� ����� ���������� ���������. ���� ��� ��������� ������, �� ��� ��������� � ��������� "+", ���� �� ��� ������ ���������� �������� ����������, �������� ���.
9. �� ���� ���� ���� ���������� ������������� ��������, ����� � ������������ � ���������� ����� PATH ������ ��������������� �������. ���������� �������� ���������� ���������� ������ ������ ����� ��������� ������. ����� �� ���������� PATH, ��������, ���������� ����� �������. ���� ��� �������, �� ������ ���������� ��� �������� ����� ������� � ��������� ������. ���� ���������� PATH ����� ������ ��������, ��������������� ������� �������. ���� � �����-���� ����� ��������� ����� ������� ������� ����� ����� (/), �� ���������� PATH �� ���������������, � ���������, ��� ������� ������ ���������� ���.
10. �������, ������� �����������. ���� ��� ���������� �������, ������� shell ������������ ��. � ��������� ������ �������� ������� ��������� ������� � ������, ��� ���� �� ��� ���� ���������������� ���������. ���� ��� ������� �������, ������� ����������� ����������� ���������� ������ exec(2). ���� �������� ������� �� �������, �� ���������, ��� ��� ��������� ���� ��� ������ �������������� shell, � ����������� shell ������ ���� ��������� ���� � �������� ����� ������.


���������� 3

����������� ������� SHELL-����������

����������� ����� ������� ��������������� shell-����������� ��� �����������, ��� ��� ��� �������� ���������� �����. ��� ���� ����� ������������ ������ � ��� ������� ��������, � �� � �������� ����������� �������, ����� ������������ ��� �������� ����� ������ (\) ��� ����� � ��������� �������.


���������� 4

����������� ������� SHELL-����������

��� ������� ����������� � ���������� ���������� ����� shell. �� ������� ������������� ��� �����������������. ��������� ������� ����� �������������� ��-�������. ��������, ������ # �������� ������������ � ���������, � ����� ����� ���� ����������, ��� � ������ $#, ���������� ���������� ���������� � ��������� ������.


���������� 5

���������� ��������� ����� SHELL

������������� ���� ������� ������������� � ���������� �� ����� shell. ����� ������� � ���� System V Bourne shell.
� System V.2 - ����� ����� ������ System V - ������������� shell ����� ��������� �������������� �������, ������������� � ��������� ������.
������� ����� ������������� ksh (���������� ��� ���������� Bourne shell), ���������� ������������� ��������� �����, ������������ ��� csh (��-shell). ������������� ksh ����� �� ���������������.
����������. �� ���������� ������� exec ����� ��� � �����. ��� �� �� �� �����, ��� ������� exec(2). ������ ������� exec �������������� �������������� shell, � exec(2) �������� ��������� �������.

������� System V Bourne Shell

�������������� ������� System V.2