- Запуск редактора VI
- 9. Командные интерпретаторы Linux
- Tcsh (и более раннего интерпретатора csh)-Базировался на коде командного интерпретатора шестой версии unix. Скриптовый язык не уступает bash по мощности, но отличается синтаксисом
- Типы доступных командных интерпретаторов в ос unix. Как можно узнать какой командный интерпретатор используется в данный момент?
- Как определить и изменить командную оболочку (shell) в Linux
- Оболочки Linux
- Как определить текущую командую оболочку
- Способ 1
- Способ 2
- Способ 3
- Как посмотреть список оболочек, доступных в системе
- Как временно переключиться на другую оболочку
- Как изменить оболочку
- Заключение
Запуск редактора VI
Для уяснения всех концепций редактора Vi запустим его и создадим новый файл по имени test:
Колонка символов ~ обозначает пустые строки, курсор находится в начале первой строки.
Редактор Vi сейчас находится в командном режиме. Нажмём клавишу i, и редактор перейдёт в режим ввода текста. Теперь вводим, например, следующий текст:
Многие пользователи предпочитают наделенный сказками редактор Emacs.
Введите любое количество строк, после каждой нажимая клавишу Enter. Исправлять опечатки можно с помощью клавиши Backspace. Для выхода из режима ввода и возвращения в командный режим нажмём клавишу Esc. Команда a начинает вставлять текст после текущего положения курсора, а не прямо в текущую. Для введения текста со следующей строки, используем команду o. Нажмём эту клавишу и введём одну-две строки текста.
В командном режиме каждое нажатие клавиши x удаляет символ, на который указывает курсор. Можно удалять целые строки командой dd (т. е. нажав клавишу d два раза подряд). Для удаления слова, на которое показывает курсор, можно использовать команду dw.
Команда 0 (клавиша ноль) перемещает курсор на начало текущей строки, а команда $ перемещает курсор в её конец.Для перемещения курсора в конец файла, используется команда G, а команда 10G, например, поместит курсор на строку с номером 10. Для выхода из редактора Vi без сохранения изменений, сделанных в файле, используется команда :q! Для выхода из редактора Vi с сохранением сделанных изменений используется команда :wq.Чтобы сохранить файл, но не выходить из редактора Vi, используется команда :w.
9. Командные интерпретаторы Linux
В большинстве операционных систем Linux, bash является принятым по умолчанию интерпретатором командной строки. Для определения текущего интерпретатора :
$ echo $SHELL /bin/bash
Командный интерпретатор – специальная программа, которая запрашивает у пользователя команды и выполняет их(удаление, переименование файла, печать документа и т.п.)
Bash — это командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне. Bash также может читать команды из файла, который называется скриптом. Как и все Unix-оболочки, он поддерживает автодополнение имён файлов и директорий, подстановку вывода результата команд, переменные, контроль за порядком выполнения, операторы ветвления и цикла.
Интерпретатор bash содержит возможности, интерпретаторов sh и ksh во времена ранних версий UNIX, а также ряд возможностей интерпретатора csh.( Ключевые слова, синтаксис и другие основные особенности языка)
Tcsh (и более раннего интерпретатора csh)-Базировался на коде командного интерпретатора шестой версии unix. Скриптовый язык не уступает bash по мощности, но отличается синтаксисом
Командный интерпретатор tcsh является реализацией интерпретатора Сshell (csh) с открытым исходным кодом. Многие возможности csh, например редактирование командной строки и методы управления историей команд, были реализованы в интерпретаторе tcsh и в других командных интерпретаторах..
Интерпретатор ash является облегченной версией интерпретатора Berkeley UNIX sh. Он не содержит многих базовых функций и не предоставляет таких возможностей, как история команд. Интерпретатор ash хорошо подходит для применения во встраиваемых системах с ограниченными системными ресурсами.
Интерпретатор zsh является еще одним клоном интерпретатора sh. Он соответствует требованиям стандарта POSIX (как и bash), но обладает другими возможностями, включая проверку орфографии и иной подход к редактированию командной строки
ksh — Имеет полную обратную совместимость с Sh и включает в себя возможности csh. Является стандартом де-факто и используется по умолчанию в некоторых Unix-системах. Имеет развитую систему горячих клавиш.
Типы доступных командных интерпретаторов в ос unix. Как можно узнать какой командный интерпретатор используется в данный момент?
ОС Linux использует несколько различных видов интерпретаторов. Наиболее распространенными среди них являются:
- sh. Bourne Shell. Прообраз командных интерпретаторов сегодняшнего дня. В современных Linux-системах sh представляет собой символическую ссылку на файл bash;
- bash. Bourne-Again SHell. Основной командный интерпретатор ОС Linux. Представляет собой развитие ash и sh. Поддерживает богатый язык написания скриптов, удобный интерфейс для редактирования командной строки, автопродолжение команд и множество других полезных возможностей;
- tcsh. C Shell. Расширенная версия интерпретатора C Shell, использующегося в BSD-системах. Поддерживает функцию автозавершения текста и расширенные возможности редактирования;
- zsh. Очень развитый командный интерпретатор, объединяющий в себе возможности csh, bash с дополнительными, такими как: улучшенная поддержка автопродолжения, более развитые возможности редактирования, расширенные файловые шаблоны и ряд других;
- nash. Not A SHell. Предельно облегченная оболочка, предназначенная для интерпретации сценариев в linuxrc файлах, при загрузке с виртуального диска initrd. Не позволяет работать пользователю в интерактивном режиме.
Командным интерпретатором, или командной оболочкой (shell), называется процесс, который вводит команды с экрана и выполняет их, а также соответствующий ему исполняемый файл (и программа).
Командный интерпретатор также может выполнять команды и из файла — такие файлы называют скриптами.
Есть около полудюжины распространённых командных интерпретаторов, каждый пользователь может выбрать себе по вкусу. Любимый командный интерпретатор каждого пользователя находится в файле /etc/passwd, а изменить его можно командой chsh (change shell). Список допустимых командных интерпретаторов находится в файле/etc/shells, и выбирать свой можно только из этого списка. Это сделано потому, что если пользователь сделает командным интерпретатором неправильный файл, он больше не сможет работать в системе, не сможет и изменить командный интерпретатор обратно.
Первый комадный интерпретатор назывался sh (Bourne shell — по имени своего создателя, или просто shell) и появился в районе 1978 года. Его продвинутая версия называется bash (Bourne again shell) и используется чаще, чем старая версия.
Командный интерпретатор csh (C shell) может вычислять выражения (особенно арифметические) с Си-подобным синтаксисом, отсюда название. Его продвинутая версия называется tcsh и отличается прежде всего развитыми средствами редакции командной строки.
Кроме того, существуют ksh (Korn shell) и zsh.
Командные интерпретаторы находятся в директории /bin.
Полную инструкцию к любому командному интерпретатору можно посмотреть командой man (а именно man sh, man csh и т. д.)
Терминал — это устройство ввода-вывода, его основные функции заключаются в отображении и вводе данных. Устройство со значительным объёмом обработки данных называют smart terminal или «толстый клиент» (англ. fat client). Терминал, сильно зависящий от своей хост-машины, на которой выполняются основные вычисления, называют тонким клиентом (англ. thin client).
В большинстве современных компьютеров консолью является комплект устройств интерактивного ввода-вывода, присоединённых к компьютеру непосредственно (не через сеть): дисплей, клавиатура, мышь. Консольный сеанс в многопользовательских операционных системах — это сеанс, осуществляемый человеком, сидящим непосредственно перед компьютером (в противоположность сеансу удалённого доступа, например через telnet, ssh, X Window System, RDP и т. п.). Данная трактовка термина консоль безотносительна к типу пользовательского интерфейса: текстовому (CUI) или графическому (GUI).
Оболочка операционной системы (от англ. shell — оболочка) — интерпретатор команд операционной системы, обеспечивающий интерфейс для взаимодействия пользователя с функциями системы.
В общем случае, различают оболочки с двумя типами интерфейса для взаимодействия с пользователем: текстовый пользовательский интерфейс (TUI) и графический пользовательский интерфейс (GUI).
Документации по Линукс очень много. В этом ее сила и ее слабость. На любом ресурсе в Интернете вы найдете раздел со статьями и справочными материалами. В самой системе также много информации по различным командам. Именно в этом слабость справочной системы Linux: для того чтобы что-то найти, нужно обладать умением искать.
Как определить и изменить командную оболочку (shell) в Linux
Командная оболочка или командный интерпретатор в Linux — это программа, которая в текстовой среде выступает в качестве интерфейса между пользователем и операционной системой. Она интерпретирует вводимые команды с терминала и вызывает необходимые программы.
Когда вы работаете в терминале, именно командная оболочка обрабатывает вводимые вами команды. Более того, оболочки Linux поддерживают написание программ на языке оболочки.
Оболочки Linux
Одна из самых популярных командных оболочек — это оболочка Bash (Bourne Again Shell). Она используется по умолчанию в большинстве дистрибутивов Linux.
Существуют разные оболочки Linux. Можно отметить:
Оболочки могут очень сильно отличаться друг от друга. Они отличаются функциональностью, синтаксисом команд, строкой приветствия, дружелюбностью к пользователю и другими параметрами и возможностями.
Как определить текущую командую оболочку
Есть несколько способов определить оболочку, используемую по умолчанию в вашей системе Linux. Рассмотрим несколько из них, так как в разных системах (и оболочках) какие-то способы могут не сработать.
Также нужно знать, что у разных пользователей системы могут использоваться разные оболочки.
Способ 1
Переменная окружения SHELL хранит путь до исполняемого файла оболочки. Выполним команду:
Из вывода команды, мы видим, что используется оболочка bash.
Способ 2
Также можно воспользоваться командой echo $0 . Данная команда выведет на экран имя текущего работающего процесса, внутри которого она выполнена. Так как мы выполняем команду внутри оболочки, то будет выведено имя оболочки.
Способ 3
Определим, работающий процесс оболочки командой ps.
ps -p $$ PID TTY TIME CMD 10792 pts/3 00:00:00 bash
Как посмотреть список оболочек, доступных в системе
Список оболочек, которые в данный момент установлены и доступны в системе Linux, хранится в файле /etc/shells
Выведем содержимое файла /etc/shells , для этого выполняем команду:
cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/bash /bin/rbash /bin/dash
Как временно переключиться на другую оболочку
Чтобы временно переключиться на другую оболочку, достаточно выполнить в терминале команду, соответствующую ее имени. После этого вы переключитесь на новую оболочку.
Например, переключимся на оболочку sh. Выполняем команду:
Как изменить оболочку
Для изменения командной оболочки на постоянной основе служит команда chsh (от слов change shell).
Чтобы изменить оболочку текущего пользователя нужно выполнить команду:
В качестве параметра путь_новой_оболочки необходимо указать путь до исполняемого файла оболочки, который вы можете найти в файле /etc/shells (см. выше).
Например, изменим оболочку на sh. Для этого выполняем команду (при выполнении команды нужно будет ввести пароль):
После этого нужно выйти и снова войти в систему.
Чтобы изменить оболочку, используемую по умолчанию, для другого пользователя, то команде chsh необходимо указать имя этого пользователя:
Заключение
Мы рассмотрели, как определить текущую оболочку Linux, как просмотреть список доступных оболочек, а также как изменить оболочку, используемую по умолчанию.
Чтобы получить информацию о какой-либо оболочке (доступной в системе) можно воспользоваться Man-страницами. Например:
Дополнительные оболочки можно устанавливать средствами системы (из репозиториев). Например, для установки оболочки fish в Ubuntu Linux, выполните команду