**103.1** Работа в командной строке

Студент должен уметь работать с командными оболочками и командами в командной строке

**Изучаем** :

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

**Термины и утилиты:****        **

- bash
- echo
- env
- export
- pwd
- set
- unset
- man
- uname
- history
- .bash\_history

Работа администратора с Linux заключается прежде всего в оперировании в командной строке. Командная строка, или консоль — это отдельная программируемая среда со своими настройками, возможностями и инструментами. Существует множество различных оболочек, в данном уроке рассматривается bash, используемая в большинстве современных ОС.

Увидеть название оболочки, используемой пользователем по умолчанию, можно в конце каждой строки файла **/**** etc ****/**** passwd **. Глобальные настройки командной строки находятся в файле** / ****etc**** / ****profile** , а настройки для каждого пользователя в файлах его домашней директории.

При этом существует несколько вариантов расположения настроек, в зависимости от семейства ОС. В общем виде поиск настроек осуществляется в следующем порядке:   **~/.bash\_profile, ~/.bash\_login** , и **~/.profile** (настройки берутся из первого обнаруженного файла).

При работе в консоли используются следующие распространенные команды (их больше, но в данной теме LPI почему-то заостряет внимание на этих):

- **cat**          –  вывод содержимого файла в консоль;
- **cd**         – переход в каталог;
- **ls**         – вывод содержимого каталога;
- **echo**         – вывод текста в консоль;
- **touch**         – обновление времени редактирования файла или создание нового пустого файла;
- **uname       ** – вывод имени ОС;

Консоль, как отдельная рабочая среда содержит свои переменные: переменные среды (глобальные переменные, использующиеся в ОС) и обычные переменные (работают в пределах запущенного сеанса консоли). Для просмотра переменных доступны команды:

- **env** – вывод переменных среды;
- **export** – превращение переменной в переменную среды;
- **unset** – отключение переменной;

Для создания переменной используется простой синтаксис **имя\_переменной=значение\_переменной**. Для обращения к переменной указывается знак **$** , например:

**X**** =12               ** _(задать переменной_ _X_ _значение 12);_

**echo**   **$**** X ****               ** _(вывести значение переменной_ _X__);_

Для выполнения команды в текущем каталоге (его можно узнать командой **pwd** ), нужно указывать полный путь к команде (_например, / __home__ / __semaev__ /__script_), если текущий каталог не перечислен в значениях переменной среды **PATH**.

Для получения справочной информации доступны команды:

- **man**         – справка по команде;
- **file**         – справка по файлу;
- **whatis** – справка по названию;
- **history** – вывод истории команд (список хранится в .bash\_history);

Отдельно следует упомянуть команду **exec** , позволяющую выполнять команду за пределами текущей оболочки, сбрасывая права суперпользователя.