Site icon Записки Линуксоида

Программы Оболочки

После входа пользователя в систему запускается программа, предоставляющая пользователю командную строку. Это так называемая оболочка (shell). Задача оболочки — дать возможность пользователю запускать на выполнение программы. Кроме того, в шелл встроен язык программирования, так называемый shell script. На этом языке можно писать командные файлы аналоги BAT файлов Windows. В дальнейшем я буду называть программы, написанные на этом языке просто скриптами.

За время существования UNIX было написано большое количество программ оболочек. Самая первая — это Bourne Shell (программа называется sh). Но когда господин Борн написал эту программу, все очень удивились. Язык программирования, встроенный в нее не был похож на привычный всем язык С! В дальнейшем мы будем изучать этот язык и Вы поймете, что он очень не однозначен. Но его знание является обязательным для любого администратора Linux.

Компания, разработавшая систему BSD, написала свой вариант оболочки — С shell (csh). И с тех пор существуют два направления в программах оболочках: sh и csh.

Время не стоит на месте. В базовые программы вносились дополнения. Сейчас существует много разнообразных вариантов на тему той или иной разновидности оболочек. Если посмотреть на классический sh, то его дальнейшее развитие — это ksh (Корн шелл) и bash (Еще один шелл Борна). Последний написан сообществом GNU и входит в Linux как оболочка по умолчанию. Среди последователей csh наиболее известен tcsh. Эта оболочка по умолчанию применяется в BSD системах. Tcsh так же может использоваться в Linux.

Несмотря на то, что основные принципы работы пользователей одинаковы во всех разновидностях оболочек, все-таки существуют различные нюансы. В некоторых вариантах оболочек были добавлены новые возможности, которые отсутствуют в других вариантах. И это может накладывает ограничения на Вашу работу.

Вам всегда необходимо точно знать в какой оболочке Вы работаете. Существует несколько способов узнать это. Самый простой — это посмотреть специальную переменную среды окружения. В Linux как и в Windows, а если говорить точнее, то в Windows как и в UNIX1, существует такое понятие, как переменные среды окружения. Наиболее известная переменная — это PATH. В Linux есть специальная переменная в которой хранится имя оболочки в которой Вы сейчас работаете — SHELL. Для того, что бы посмотреть ее содержимое можно воспользоваться программой echo, которой в качестве аргумента в командной строке следует указать переменную, перед именем которой стоит специальный символ «$».

Внимание! В Linux учитывается регистр букв. То есть если Вы напишите file или File — это будут два разных слова.

Внимание! В командной строке Linux, аргументы командной строки обязательно отделяются друг от друга пробелами или табуляциями. Нельзя, как это принято в Windows, писать параметр сразу после имени программы.

Итак, что бы посмотреть содержимое переменной среды окружения SHELL, необходимо выполнить следующую команду:


$ echo $SHELL
/bin/bash
$

В результате, на экран терминала был выведен полный путь к файлу шелл.

Внимание! Символ «$» в начале строки — это приглашение командной строки. Если Вы будете вводить команды в командной строке, «$» писать не надо. В Вашей системе приглашение командной строки может выглядеть по другому, все зависит от настроек.

Еще один способ определить шелл в котором Вы работаете — это посмотреть список процессов, выполняемых текущим пользователем на текущем терминале. Для этого можно воспользоваться программой ps.


$ ps
    ID  TTY        TIME     CMD
    96  tty1       00:00:00 bash
    194 tty1       00:00:00 ps
$

На экран выводится список процессов. Самый первый процесс — это обычно шелл в котором Вы сейчас работаете.

Для завершения работы в системе, можно воспользоваться одной из перечисленных ниже команд:

  • logout
  • exit
  • комбинация клавиш «Ctrl+D».

Logout — это классическая команда, которую можно использовать в любой оболочке. Будет ли работать команда exit или комбинация клавиш «Ctrl+D», зависит от реализации оболочки.

После выхода из системы, сама система продолжает работать. Просто еще один пользователь вышел. Для выключения Linux необходимо иметь соответствующие права для использования совсем другой программы.

 

Exit mobile version