Пр.актически любая утилита,
которую вы ожидаете найти в стандартных реализациях UNIX, имеется и в Linux.
Сюда включены и базовые команды, такие как ls
, awk
,
tr
, sed
, bc
, more
и т.д.
Назовите любую - она есть в Linux. Поэтому вы в праве ожидать знакомой рабочей
UNIX-среды. В Linux есть все стандартные команды и утилиты. (Новички могут посмотреть
Главу 3 для начального знакомства с базовыми командами UNIX).
В Linux имеются многие текстовые
редакторы, включая vi
, ex
, pico
, jove
,
также как GNU Emacs и его вариации, вроде Lucid Emacs (который содержит расширение
для использования под X Windows) и joe
. Скорее всего, любой текстовый
редактор, к которому вы привыкли, перенесен в Linux.
Выбор редактора - явление
любопытное. Многие пользователи UNIX до сих пор используют "простые" редакторы
вроде vi
(кстати, автор писал эту книгу в Linux, используя редактор
vi
) (кстати, переводчик переводил эту книгу в Linux, используя
редактор red
).
Но vi
имеет
много ограничений по причине своего преклонного возраста, сейчас завоевывают
популярность более современные и сложные редакторы вроде Emacs. Emacs поддерживает
базирующийся на LISP макроязык и интерпретатор, мощный командный синтаксис и
другие расширения. Существуют макропакеты Emacs, позволяющие читать электронную
почту и новости, редактировать содержимое каталогов и даже проводить сеансы
психотерапии с использованием искусственного интеллекта (неоценимая возможность
для измотанных Linux-ом хакеров).
Интересное замечание - большинство
утилит Linux имеют статус GNU. Эти утилиты часто поддерживают наиболее современные
черты, не содержащиеся в стандартных версиях BSD или AT&T. Например, версия
GNU редактора vi
- elvis
, содержит структурный макроязык,
который отличается от исходной реализации AT&T. Но тем не менее, утилиты
GNU сохраняют совместимость с их тезками из BSD и System V. Многие считают,
что GNU версии лучше исходных программ.
Многие пользователи самой важной утилитой считают shell. shell - это программа, которая читает и выполняет команды пользователя. Кроме того, многие оболочки (shells) имеют такие возможности, как контроль выполнения> (job control) (позволяя пользователю управлять несколькими параллельными процессами), перенаправление входа-выхода и командный язык для написания командных файлов (shell scripts). Командный файл - это программа на языке оболочки, аналогичная "batch file" в MS-DOS.
В Linux много типов оболочек.
Наиболее важное различие между ними - используемый командный язык. Например,
C Shell (csh
) использует командный язык, чем-то напоминающий
язык программирования Си. Классический <Баурновский shell (Bourne
Shell) использует иной командный язык. Обычно выбор оболочки обусловлен
выбором соответствующего командного языка. Выбранная оболочка в какой-то мере
определяет вашу рабочую среду.
Не важно, к какой оболочке
вы привыкли, та или иная ее версия есть в Linux. Наиболее популярная оболочка
- это GNU Bourne Again Shell (bash
), т.е. вариант Bourne shell,
включающий много современных свойств и возможностей, таких как управление работами,
командную историю, дописывание имен команд и имен файлов, Emacs-подобный интерфейс
редактирования командной строки и мощное расширение стандартной оболочки (Bourne
shell).
Другая популярная оболочка
- tcsh
, версия C Shell с более современными функциями по сравнению
с bash
. Другие оболочки: zsh
- небольшая баурно-подобная
оболочка; ksh
- оболочка Корна; ash
- оболочка BSD
и rc
-оболочка проекта Plan 9.
Что особенно важно сказать относительно этих оболочек? Linux дает вам уникальную возможность кроить систему под ваши личные нужды. Например, если вы единственный пользуетесь этой системой и вы предпочитаете редактор vi и bash в качестве оболочки, то нет необходимости иметь прочие редакторы и оболочки. "Сделай сам, как тебе нравится" - это позиция хакеров и пользователей Linux.