Базовые команды и утилиты
Практически любая утилита, которую вы ожидаете найти в
стандартных реализациях 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.