
- •История создания unix систем. Мультиплатформенность. Пперечень реализаций ос и в чем их отличие.
- •Возникновение и первая редакция ос unix
- •Исследовательский unix
- •Первый перенос ос unix
- •Седьмая редакция
- •Возникновение группы университета г. Беркли (bsd)
- •Unix System III и первые коммерческие версии системы
- •Основные понятия многопользовательской ос
- •Пользователь
- •Интерфейс пользователя
- •Привилегированный пользователь
- •Программы
- •Команды
- •Процессы
- •Перенаправление ввода/вывода
- •Основные сведения для пользователей Unix
- •Терминал
- •Состав программного обеспечения на примере System V версии 4.0
- •Базовая операционная система
- •Дополнительные пакеты программ
- •Структура ядра операционной системы и функции ядра операционной системы Ядро ос unix
- •Общая организация традиционного ядра ос unix
- •Функции операционной системы
- •Предполагаемая аппаратная среда
- •Прерывания и особые ситуации
- •Уровни прерывания процессора
- •Распределение памяти
- •Структура системы
- •Среда выполнения процессов
- •Специальные символы shell-переменных
- •Специальные символы shell-операторов
- •Команды ос unix
- •Регистрационный каталог" пользователя
- •Общее файловое дерево
- •Первый слой файловой системы
- •Второй слой
- •Символические каналы связи
- •Имя пути
- •Полное имя пути
- •Родственное имя пути
- •Правила именования справочников и файлов
- •Дополнительная информация по файловой системе
- •Перечень специальных символов
- •Минимальный набор команд
- •Организация справочника/каталога
- •Команда mkdir - создать справочник/каталог
- •Команда ls - напечатать содержимое справочника/каталога
- •Часто используемые ключи команды ls
- •Команда cd - изменить текущий справочник
- •Команда rmdir - удалить справочник
- •Доступ к файлу и работа с ним
- •Основные команды
- •Команды cat, pg, pr - распечатать содержимое файла
- •Команда cat
- •Команда pg
- •Команда pr
- •Команда cp - сделать копию файла
- •Команда mv - переименование файла
- •Команда rm - удалить файл
- •Команда wc - подсчет строк, слов и символов
- •Команда chmod - изменить статус файла
- •Как определить права
- •Как изменить существующие права
- •Альтернативный метод
- •Дополнительные команды
- •Команда diff
- •Команда grep
- •Команда sort
- •Режимы редактора
- •Создание текста в режиме Append
- •Выход из режима Append
- •Редактирование текста в командном режиме
- •Перемещение курсора
- •Удаление текста
- •Добавление текста
- •Команда перемещения: - (знак минус)
- •Позиционирование слов
- •Позиционирование в окне
- •Позиционирование курсора на неотображаемом тексте
- •Прокрутка текста
- •Удаление текста
- •Удаление текста в режиме ввода текста
- •Отменить последнюю команду
- •Команды удаления в командном режиме
- •Удаление слов
- •Удаление строк
- •Удаление текста после курсора
- •Модификация текста
- •Замена текста
- •Подстановка текста
- •Изменение текста
- •Извлечение и присоединение текста
- •Перемещение текста
- •Перемещение букв
- •Копирование текста
- •Специальные команды
- •Повторить последнюю команду
- •Объединение строк
- •Очистить окно и восстановить текст
- •Заменить нижний регистр на верхний и vice versa
- •Использование команд построчного редактора
- •Временный возврат к shell
- •Запись текста в новый файл
- •Переход к указанной строке
- •Удалить остаток буфера
- •Добавить файл в буфер
- •Провести глобальные изменения
- •Специальные опции для VI
- •Восстановление потерянного файла
- •Редактирование нескольких файлов
- •Просмотр файла
- •Интерпретатор shell последовательность действий интерпретатора shell
- •Специальные символы shell-переменных
- •Специальные символы shell-операторов
- •Встроенные операторы языка shell
- •Команды System V Bourne Shell
- •Дополнительные команды System V.2
- •Общая характеристика командных языков
- •Базовые возможности семейства командных интерпретаторов
- •1. Синтаксические
- •Связь ос unix с другими компьютерными станциями
- •Печать форматированного файла
- •Простые шаблоны
- •Простые действия
- •Встроенные переменные
- •Определенные пользователем переменные
- •Функции
- •Примеры некоторых полезных программ
- •Сообщения об ошибках
- •Шаблоны
- •Шаблоны begin и end
- •Комбинация шаблонов
- •Область шаблона
- •Поле переменных
- •Операторы управления потоком
- •Массивы
- •Функции, определенные пользователем
- •Комментарии
- •Файлы и каналы
- •Разделители ввода
- •Использование awk с другими командами и с shell
- •Функция system
- •Взаимодействие с shell
- •Примеры использования
- •Генерирование отчетов
- •Дополнительные примеры Частота использования слов
- •Накопление
- •Случайный выбор
- •Возможности shell
- •10.27.1. Ограничения
- •Запуск и остановка системы
Минимальный набор команд
Команды и основные понятия
На первый взгляд UNIX выглядит неоправданно сложной операционной системой — достаточно посмотреть на огромное количество команд. Но под кажущейся сложностью скрывается очень простая и элегантная операционная система. Отдельные детали могут быть сложными, но общие принципы — просты.
Хорошей иллюстрацией является командная строка, позволяющая вам сказать компьютеру, что же вы хотите сделать. Если вы не знакомы с UNIX, то, возможно, будете напуганы странным символом на экране:
$
Это символ называется приглашением командной строки и показывает, что система готова к приему команд. Конечно, если вы не имеете опыта работы с UNIX, вы испытаете в этот момент смущение. Но после того как вы узнаете, что символ $ является приглашением к вводу и означает, что система ожидает команд от вас и UNIX уже не будет такой пугающей. (В качестве приглашения могут использоваться различные символы, в зависимости от того, какой интерпретатор командной строки вы используете. Если вы пользуетесь Korn shell или Bourne shell, то в качестве приглашения будет использоваться символ $; в С shell используется % и т.д.)
Команды
Польза просвещения становится понятной, когда вы впервые учитесь обращаться с компьютером. Без инструкций, называемых командами, компьютер может разве что стоять на месте и потреблять электроэнергию. Все, что делает компьютер, — это точное выполнение введенных инструкций. Главное - убедиться, что инструкции, которые вы ему даете, приведут к желаемому результату.
Запомнив это, вы можете уверенно подойти к вашему терминалу и ввести команду. После символа приглашения вы вводите как команду (или несколько команд), так и необходимые для нее параметры и аргументы; вместе это называется командной строкой. В UNIX все является командой, вне зависимости от того, что вы делаете. Чтобы запустить программу, вы даете соответствующую команду. Чтобы получить список файлов в каталоге, вы вводите команду. Чтобы запустить текстовый редактор, вы используете команду.
Если вы заглянули вперед, вы знаете, что UNIX имеет сотни команд. Некоторые из этих команд используются очень часто, например, текстовые редакторы, например vi или ed удобны для создания небольших файлов или заметок. Некоторые команды встречаются только в определенной версии UNIX, в то время как другие можно найти в любой UNIX-системе. Здесь приведено описания наиболее общих команд.
Обычная командная строка выглядит примерно так:
$ ls -1
Вторая часть командной строки, -1, называется параметром.
Параметры и аргументы меняют действие команды, как правило, в достаточно узких рамках. Например, один из параметров команды ls (выводящей список файлов в каталоге) указывает команде на необходимость произвести вывод в один столбец, а не в несколько. Очень малое количество команд не использует параметров. Умение правильно использовать параметры необходимо, если вы хотите обращаться легко с UNIX.
Когда вы введете командную строку, показанную далее, на экране появится что-нибудь вроде этого:
$ ls
data financials
personnel misc
newdata
Какие именно имена файлов будут выведены — неважно, главное для нас в настоящий момент то, что они выведены в столбец.
Это очень простой пример применения параметров. Как вы увидите, когда начнете работать с UNIX, большинство параметров влияют на результат выполнения команды, а не только на формате вывода на экран.
В одной командной строке может быть введено более одной команды. Это значит, что вы можете после имени команды и ее параметров ввести инструкции, указывающие на необходимость передачи результата выполнения команды другой команде. В царстве UNIX это называется перенаправлением стандартного вывода и стандартного ввода. Давайте рассмотрим типичный пример.
Команда cat — одна из часто используемых в UNIX команд. Если вы запустите эту команду саму по себе, результат будет следующим:
$ cat
После этого каждая введенная вами строка после нажатия клавиши Enter будет дублироваться на экране. Строки не будут сохранены на диске. После того как они будут выведены на экран, они исчезнут навсегда.
Как и большинство команд, cat использует в качестве стандартного ввода клавиатуру, а в качестве стандартного вывода — экран монитора. Вот почему после запуска этой команды без параметров строки, вводимые с клавиатуры, просто выводятся на экран. Команда cat сама по себе абсолютно бесполезна, если, конечно, вы не получаете удовольствие, наблюдая, как компьютер повторяет то, что вы вводите.
При указании в командной строке имени файла команда cat становится более полезной. Она позволяет вывести на экран содержимое файла:
$ cat kevin.report
В этом примере, задав имя файла в командной строке, мы указываем cat, что данные должны быть получены не с клавиатуры, а из соответствующего файла. Поэтому на экран выводится содержимое файла, а не набираемые символы.
При помощи команд переназначения ввода/вывода можно использовать команду cat для решения различных задач. Например, если вы хотите сохранить вводимую вами с клавиатуры информацию в файле, вы можете использовать cat. В следующем примере вводимая вами с клавиатуры информация будет направлена в файл report.1997:
$ cat > report.1997
В этом примере cat выступает в роли простейшего текстового редактора. Вы можете вводить текст строка за строкой. Закончив ввод, нажмите на клавиатуре Ctrl-D. (Сочетание клавиш Ctrl-D сообщает UNIX, что ввод закончен.)
Можно использовать cat в качестве альтернативного метода копирования файлов:
$ cat report.1997 > report.1998
В этом примере указаны файлы как для стандартного ввода (report.1997), так и для стандартного вывода (report.1998). файл report.1997 не изменяется, а его содержимое копируется в новый файл report.1998. (Кстати, это способ, которым в UNIX производится печать. Принтер представлен файлом. Помните, вас предупреждали, что в UNIX все есть файл? Когда вы печатаете документ, вы направляете вывод команды на принтер, то есть в соответствующий файл.)
Наконец, вы можете дописать несколько строк в конец существующего файла или присоединить один файл к другому:
cat report.1998 » report.1997
Эта команда присоединит содержимое файла report.1998 к содержимому файла report.1997. Если вы хотите дописать несколько строк в конец файла с клавиатуры, используйте такую команду:
$ cat » report.1997
Описанные выше операции перенаправления приведены ниже:
Символ Использование Результат
> команда > файл Вывод команды записывается в файл
< команда < файл Файл используется в качестве стандартного ввода команды » команда » файл
Вывод команды дописывается в конец файла команда! [ команда2 Выполняется команда!, затем ее стандартный вывод подается на стандартный ввод команды2
Внимательный читатель может заметить, что символ <, описываемый в табл. 1, может быть использован аналогично разобранному нами ранее примеру:
$ cat kevin.report
Тот же результат даст выполнение команды
$ cat < kevin.report
Разница заключается в том, каким образом командный интерпретатор UNIX обрабатывает эти команды. В первом примере имя файла kevin.report является аргументом команды cat. Во втором случае интерпретатор командной строки производит перенаправление стандартного ввода команды cat.
Вы можете использовать несколько операций перенаправления в одной командной строке. Например, многие команды UNIX (особенно сценарии интерпретатора командной строки) вызываются следующим образом:
$ команда < файл! > файл2
При этом стандартный ввод команды берется из файла файл1, а стандартный вывод записывается в файл файл2.
Потоки
Все преимущества возможности перенаправления ввода/вывода становятся ясны при использовании еще одного мощного инструмента UNIX— потоков. Потоком называется использование стандартного вывода одной команды в качестве стандартного ввода другой. Выглядит это так:
$ команда! ¦ команда2
Например, вы можете отсортировать содержимое файла перед печатью. Вам нужно использовать команду sort и отправить ее вывод на ввод команды Ip, осуществляющей печать. Командная строка для печати отсортированного файла будет выглядеть так:
$ sort textfile | lp
В одной командной строке можно указать несколько потоков, например:
$ cat *.1994 ¦ grep profits | lp
Эта командная строка произведет поиск в текущем каталоге файлов, имена которых заканчиваются на 1994, отправит список таких файлов на ввод команды grep, которая произведет поиск в этих файлах слова profits. Затем строки, содержащие это слово, будут напечатаны.
КРАТКАЯ СПРАВКА ПО КОМАНДАМ UNIX
Эта информация поможет пользователям, знающим, что они хотят сделать, найти соответствующую команду UNIX. Левый столбец приведенной ниже таблицы содержит описания часто встречающихся задач: ключевые слова выделены полужирным шрифтом. Соответствующие задаче команды UNIX приведены в правом столбце. Многие команды встречаются несколько раз; например, команду Is вы можете найти как по ключевому слову список, так и по ключевому слову файл.
создание файлового архива |
tar, cpio |
|||
архивация файла |
compress, pack |
|||
замер времени исполнения команды |
time, timex |
|||
запуск программы в указанное время |
at |
|||
вывод файла на экран |
cat, page, dtpad, textedit. xedit |
|||
постраничный вывод файла на экран |
more |
|||
вывод на экран первых десяти строк файла |
head |
|||
вывод на экран последних десяти строк файла |
tail |
|||
вывод содержимого заархивированного файла |
peat |
|||
выполнение вычислений |
be, dc |
|||
вывод даты и времени |
date |
|||
изменение даты модификации файла на текущую |
touch |
|||
деархивация файла |
unpack, uncompress |
|||
декодирование UU-кода |
uudecode |
|||
вывод объема свободного дискового пространства |
df |
|||
вывод объема дискового пространства, занятого данным каталогом |
du |
|||
завершение работы |
exit |
|||
печать заголовка |
banner |
|||
захват изображения на экране |
xv, xwd |
|||
печать изображений |
xdpr, xpr |
|||
вывод имени системы |
uname |
|||
запуск интерпретатора командной строки |
sh, csh, ksh |
|||
запуск интерпретатора командной строки на удаленной системе |
rsh |
|||
личный календарь |
cm, dtcm |
|||
вывод календаря |
cal, cm, dtcm |
|||
калькулятор |
calctool, dtcalc, xcalc |
|||
создание каталога |
mkdir, filemgr, dtfile |
|||
вывод размера каталога |
du |
|||
вывод списка файлов и подкаталогов данного каталога |
Is |
|||
смена текущего каталога |
cd |
|||
печать заголовка |
banner |
|||
персональный календарь |
calendar, cm, dtcm |
|||
подсчет количества слов в текстовом файле |
we |
|||
выполнение повторяющихся задач |
crontab |
|||
поиск текстовых строк |
egrep, grep, fgrep |
|||
поиск и замена символов |
tr |
|||
поиск в файле |
awk, nawk |
|||
поиск файлов |
find |
|||
вывод списка пользователей |
listusers |
|||
вывод информации о других пользователях системы |
who |
|||
поиск информации о других пользователях системы |
finger |
|||
выполнение последовательности команд |
batch |
|||
запуск команды с пониженным приоритетом |
nice |
|||
проверка правописания |
spell |
|||
прерывание процесса |
kill |
|||
вывод списка процессов |
ps |
|||
присоединение содержимого файлов к существующему файлу |
cat |
|||
разбиение файла на части |
csplit, split |
|||
редактирование текстового файла |
vi, ed, dtpad, textedit, xedit |
|||
резервирование информации |
tar, cpio |
|||
поиск и замена символов |
tr |
|||
вывод списка известных систем |
uuname |
|||
вывод системного идентификатора пользователя |
id |
|||
вывод системных сообщений |
news |
|||
подсчет числа слов в файле |
we |
|||
вывод состояния службы UUCP |
uustat |
|||
создание нового текстового файла |
cat, dtpad, textedit, |
|||
|
xedit |
|||
установка соединения с удаленным терминалом |
ct |
|||
установка соединения с удаленной UNIX-системой |
cu |
|||
разрешение/запрет вывода сообщений на терминал |
mesg |
|||
вывод сообщений |
news |
|||
сортировка файла |
sort |
|||
сортировка и обработка файла |
awk, nawk |
|||
вывод состояния машин в сети |
ruptime |
|||
вывод списка файлов в каталоге |
Is |
|||
сравнение содержимого двух каталогов |
dircmp |
|||
сравнение содержимого двух отсортированных файлов |
comm |
|||
сравнение трех файлов |
diff3 |
|||
сравнение двух файлов и вывод отличающихся строк |
diff, bdiff |
|||
сравнение двух файлов |
cmp |
|||
сравнение двух файлов и вывод |
|
|||
отличающихся и совпадающих строк |
sdiff |
|||
создание ссылок |
In |
|||
печать на стандартный вывод |
echo |
|||
запись стандартного вывода в файл |
tee |
|||
вывод столбца из отсортированного файла |
cut |
|||
поиск текстовых строк в бинарном файле |
strings |
|||
поиск текстовых строк |
egrep, grep, fgrep |
|||
табличный процессор |
tbi |
|||
настройка табуляции |
tabs |
|||
смена текущего каталога |
cd |
|||
вывод имени текущего каталога |
pwd |
|||
открытие окна терминала |
xterm, dtterm, shelltool |
|||
вывод информации о терминале |
tput |
|||
настройка конфигурации терминала |
stty |
|||
вывод параметров терминала |
tty |
|||
определение типа файла |
file |
|||
удаление из очереди заданий, созданных командой at |
atrm |
|||
удаление заданий из очереди печати |
cancel |
|||
удаление каталога |
rmdir, filemgr, dtfile |
|||
удаление файла |
rm, filemgr, dtfile |
|||
удаление форматирующих символов из файла |
col |
|||
копирование файлов с удаленной системы |
rep, uucp, ftp |
|||
выполнение команды на удаленной системе |
uux |
|||
запуск интерпретатора командной строки на удаленной системе |
rsh |
|||
вход в удаленную систему |
telnet, riogin |
|||
вывод информации о соединениях с удаленными системами |
uulog |
|||
создание нового текстового файла |
cat, dtpad, textedit, xedit |
|||
изменение даты модификации файла на |
|
|||
текущую |
touch |
|||
вывод полного имени файла |
basename |
|||
вывод файла на экран |
cat, page, dtpad, textedit, xedit |
|||
постраничный вывод файла на экран |
more |
|||
вывод на экран первых десяти строк файла |
head |
|||
вывод на экран последних десяти строк файла |
tail |
|||
вывод списка файлов в каталоге |
Is |
|||
копирование файла |
cat, cp, filemgr, dtfile |
|||
определение типа файла |
file |
|||
поиск файла |
find |
|||
разбиение файла |
split |
|||
редактирование файла |
vi, ed, dtpad. textedit, xedit |
|||
удаление файла |
rm |
|||
шифрование файла |
crypt |
|||
печать формул |
eqn, neqn |
|||
отображение шрифта |
xfd, xfontsel |
|||
вывод списка доступных шрифтов |
xlsfonts, fslsfonts |
|||
отправка и чтение электронной почты |
mailx, dtmail, mailtool |
|||
уведомление о получении новых писем по электронной почте |
notify, xbiff |