Command-line shell (Русский)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи Command-line shell. Дата последней синхронизации: 18 января 2016. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Из Wikipedia:

Кома́ндная оболо́чка UNIX (англ. Unix shell, часто просто «шелл» или «sh») — командный интерпретатор, используемый в операционных системах семейства UNIX, в котором пользователь может либо давать команды операционной системе по отдельности, либо запускать скрипты, состоящие из списка команд. В первую очередь, под shell понимаются POSIX-совместимые оболочки, восходящие к Bourne shell (шелл Борна), появившемуся в Unix Version 7.

Список оболочек

из Wikipedia

  • Bash — (от англ. Bourne again shell, каламбур «Born again» shell — «возрождённый» shell) — усовершенствованная и модернизированная вариация командной оболочки Bourne shell. Одна из наиболее популярных современных разновидностей командной оболочки UNIX. Особенно популярна в среде Linux, где она часто используется в качестве предустановленной командной оболочки.

Bash — это командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне. Bash также может читать команды из файла, который называется скриптом (или сценарием). Как и все Unix-оболочки, он поддерживает автодополнение имён файлов и директорий, подстановку вывода результата команд, переменные, контроль за порядком выполнения, операторы ветвления и цикла. Ключевые слова, синтаксис и другие основные особенности языка были заимствованы из sh. Другие функции, например, история, были скопированы из csh и ksh. Bash в основном удовлетворяет стандарту POSIX, но с рядом расширений. Кроме того, большинство сценариев SH можно запустить в Bash без изменений.

https://www.gnu.org/software/bash/ || bash
  • C shell — C shell (csh) — командная оболочка UNIX со встроенным скриптовым языком, разработанная Биллом Джоем, активным разработчиком BSD UNIX и создателем редактора vi, в 1979 году.

Базировался на коде командного интерпретатора шестой версии UNIX. Скриптовый язык не уступает шеллу Борна по мощности, но отличается синтаксисом. В то время как Борн скопировал все основные операторы с языка Алгол 68, Билл Джой использовал в качестве макета язык Си, вероятно, руководствуясь своими предпочтениями и предпочтениями других пользователей BSD UNIX. В начале 1990-х C shell подвергся большой критике за свою двусмысленность и немногословность интерпретатора, останавливающего выполнение скрипта, но не сообщающего никаких подробностей о том, что же всё-таки произошло. Порой скрипты csh работали совсем не так, как этого ожидал пользователь. Также встречались ситуации, когда интерпретатор отбраковывал, казалось бы, непротиворечивые строки кода. C shell вошёл в поставку 4.1BSD и до сих пор остаётся базовой частью всех её потомков, в том числе FreeBSD и OpenBSD.

https://www.tcsh.org || tcsh
  • DASH — POSIX-совместимая реализация /bin/sh стремящаяся быть более компактной. Dash делает это без ущерба для быстродействия, где это возможно.

На самом деле, он значительно быстрее, чем Bash (the GNU Bourne-Again SHell) для большинства задач.

http://gondor.apana.org.au/~herbert/dash/ || dash
  • fish — Умная и удобная коммандная оболочка (развивающаяся как более дружественная к пользователю альтернатива bash и zsh). Fish делает полную цветную подсветку синтаксиса командной строки, а также подсветку завершения команд и их аргументов, существующих файлов, и истории. С автоматическим выявлением ошибок ввода, предложеним возможных вариантов ввода на основе истории прошлых операций, автодополнение ввода опций и команд с использованием их описания в man-руководствах, комфортнаю работу из коробки без необходимости дополнительной настройки, упрощённый язык написания сценариев, поддержку буфера обмена X11, удобные средства поиска в истории выполненных операций. Легкий просмотр последних команд может быть сделан с помощью Alt-Up. Демон Fish (fishd) облегчает синхронизирование истории во всех случаях использовнаия fish, а также универсальных и постоянных переменных сред.
https://fishshell.com/ || fish
  • Korn shell — Командная оболочка UNIX. Имеет полную обратную совместимость с Bourne shell и включает в себя возможности C shell. Язык KornShell представляет собой полный, мощный язык программирования высокого уровня, для написания приложений. Зачастую легче и быстрее, чем на других языках высокого уровня. Это делает его особенно подходящим для прототипирования. Ksh имеет лучшие черты оболочки Bourne и C, плюс множество самостоятельных возможностей. Таким образом Ksh может сделать многое, чтобы повысить производительность и качество вашей работы в взаимодействии с системой и в программировании. Ksh программы легче писать, они более кратки и читабельны, чем программы написанные на языке нижнего уровня, такого как C.
http://www.kornshell.com || Смотрите Ksh#Installation
  • Oh — Unix оболочка, написанная на Go. Это оболочка в духе Unix, но отличается различными деталями. Oh расширяет возможности языка программирования оболочки без ущерба интерактивных функций оболочки.
https://github.com/michaelmacinnis/oh || oh-gitAUR
  • rc — Командный интерпретатор для Plan 9, который предоставляет анологичные средства оболочки Bourne для UNIX. С небольшими дополнениями и менее своеобразным синтаксисом.
http://plan9.bell-labs.com/sys/doc/rc.html[устаревшая ссылка 2020-08-02] || 9base-gitAUR
  • Zsh — Оболочка предназначена для интерактивного использования, хотя это такойже мощный скриптовый язык. Многие из полезных особенностей Bash, Ksh и Tcsh были включены в Zsh; были добавлены многие оригинальные черты. Страничка вводный документ перечислены некоторые из уникальных особенностей Zsh
https://www.zsh.org/ || zsh

из Wikipedia Zsh Это одна из современных командных оболочек UNIX, может использоваться как интерактивная оболочка, либо как мощный скриптовой интерпретатор. Zsh является расширенным bourne shell с большим количеством улучшений. Первая версия zsh была написана Паулем Фалстадом (Paul Falstad) в 1990 году, когда он был студентом Принстонского университета. Название ZSH произошло от университетского ассистента по имени Чжун Шао (Zhong Shao). Пол подумал, что учётная запись Чжуна, «zsh», будет хорошим названием для командной оболочки[1]. Сейчас развивается энтузиастами, под руководством Петера Стефенсона (Peter Stephenson) в рамках свободного проекта. Некоторые полезные особенности:

  1. Программируемое автодополнение, которое помогает пользователям вводить как команды, так и их аргументы, со встроенной поддержкой нескольких сотен команд;
  2. Разделяет историю команд между всеми запущенными экземплярами оболочки;
  3. Расширенное дополнение названий файлов, что позволяет указать файл без необходимости запускать внешние программы, наподобие find;
  4. Расширенная поддержка переменных и массивов;
  5. Редактирование многострочных команд в едином буфере;
  6. Коррекция опечаток;
  7. Имеет различные режимы совместимости (то есть, вы можете использовать zsh вместо bourne shell при запуске, как /bin/sh);
  8. Модифицируемые приглашения (prompts), включающие возможность расположить приглашение справа и настроить автоскрытие при наборе длинных команд;

Выбор оболочки по умолчанию

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

Посмотрите все установленные оболочки:

$ chsh -l

И установить одну по умолчанию для вашего пользователя (убедитесь, что вы используете полный путь, какой выдала команда chsh -l):

$ chsh -s полный-путь-до-оболочки

Теперь, если вы выйдите из системы и войдёте снова, вас встретит установленная оболочка.

Смотрите также

  • Evolution of shells in Linux on the IBM developerWorks
  • Goosh is the unofficial Google shell, which implements a shell interface over the commonly used Google search interface.
  • >_ .bashrc генератор PS1 создайте свою строку вывода bash .bashrc/PS1 с помощью простого интерфейса.
  • terminal.sexy — Конструктор цветовых схем терминала
  • Hyperpolyglot — Hyperpolyglot entry about shell