cp – копировать файлы
Синтаксис:cp [-fip] исх_файл цел_файл ; cp [-fip] исх_файл... каталог ; cp -R [-H | -L | -P][-fip] исх_файл... каталог ; cp -r [-H | -L | -P][-fip] исх_файл... каталог
Семантика:первая синтаксическая форма характеризуется двумя файлами, ни один из которых не должен быть существующим каталогом. cp копирует исх_файл в цел_файл. Если исх_файл – символическая ссылка, копируется целевой файл этой ссылки.
Вторая синтаксическая форма характеризуется двумя или более операндами, отсутствием ключей «-R» или «-r» и неприменимостью первой формы. Исходные файлы не должны быть каталогами, а каталог должен быть существующим каталогом. cp копирует исходные файлы в указанный каталог под именами, совпадающими с краткими именами исходных файлов.
Третья и четвертая форма характеризуется двумя или более операндами и ключами «-r» или «-R». cp копирует все указанные файлы, а также рекурсивно каталоги с их содержимым в каталог.
Важнейшие ключи: -i– запрашивать подтверждение перед копированием в существующие файлы; -p– сохранять по возможности времена изменения и доступа к файлу, владельца и группу, права доступа; -R, -r– рекурсивно копировать содержимое каталогов.
Операнды:исх_файл – исходный файл; цел_файл – целевой файл; каталог – целевой каталог.
Стандартный вывод ошибок:стандартный вывод ошибок используется для вывода запросов на подтверждение перезаписи существующих файлов («-i»).
mv – переместить файлы
Синтаксис:mv [-fi] исх_файл цел_файл ; mv [-fi] исх_файл... каталог
Семантика:в первой синтаксической форме, характеризующейся тем, что последний операнд не является ни каталогом, ни символической ссылкой на каталог, mv перемещает исх_файл в цел_файл.
Во второй синтаксической форме cp копирует исходные файлы в указанный каталог под именами, совпадающими с краткими именами исходных файлов.
Ключи: -f– не запрашивать подтверждения перезаписи существующих файлов; -i– запрашивать подтверждение перезаписи существующих файлов.
Операнды:исх_файл – исходный файл; цел_файл – целевой файл; каталог – целевой каталог.
Стандартный вывод ошибок:стандартный вывод ошибок используется для вывода запросов на подтверждение перезаписи существующих файлов («-i»).
echo – вывести аргументы
Синтаксис: echo [ строка...]
Семантика:echo выводит свои аргументы после раскрытия специальных символов в стандартный вывод, завершая вывод символом новой строки.
Операнды: строка – строка, подлежащая выводу. В строке после раскрытия спецсимволов оболочки раскрываются следующие символы: \a – звуковой сигнал, \b – пробел, \c – подавить вывод символа новой строки, \f – перевод страницы, \n – символ конца строки, \r – символ возврата каретки, \t – табуляция, \v – вертикальная табуляция, \\ – обратная косая черта, \0 код —символ с восьмеричным кодом «код».
Стандартный вывод: между аргументами выводятся пробелы.
cat – вывести содержимое файлов
Синтаксис:cat [-u][файл...]
Семантика:cat последовательно выводит содержимое файлов.
Ключ:-u – читать и выводить файлы побайтно (по умолчанию – построчно).
Операнды:файл – выводимый файл. Если файл не указан, читается стандартный ввод. Если в списке файлов присутствует имя «-», вместо этого файла читается стандартный ввод.
Реализация:в большинстве систем ключ «-u» не реализован.
chmod – изменить права на файл
Синтаксис:chmod [-R] режим файл ...
Семантика:chmod изменяет биты режима доступа к каждому указанному файлу в соответствии с указанным режимом. Изменить режим доступа к файлу может только процесс с действующим идентификатором пользователя, совпадающим с владельцем файла, или привилегированный процесс.
Ключ:-R – рекурсивно изменять режим доступа к файлам, расположенным в указанных каталогах.
Операнды:режим – устанавливаемый режим доступа (в rwx– или числовой нотации); файл – имя файла.
umask – вывести или установить маску прав доступа
Синтаксис:umask [-S][маска]
Семантика:umask устанавливает маску прав вновь создаваемых в окружении текущей оболочки файлов в соответствии с указанным значением. Если операнд маска не указан, umask выводит текущую маску.
Ключ:-S – вывести маску в rwx-нотации.
Операнд:маска – маска прав в rwx– или числовой нотации.
ps – вывести состояние процессов
Синтаксис:ps [-aA][-defl][-G список][-o формат]...[-p список][-t список][-U список][-g список][-n список][-u список]
Семантика:ps выводит информацию о процессах в рамках собственных привилегий. По умолчанию выводится информация о процессах с теми же действующим UID и управляющим терминалом, что и у подающего команду пользователя.
Основные ключи:-a – вывести информацию о процессах, ассоциированных с терминалами; -A – вывести информацию о всех процессах; -f – вывести «полный» список; -l – вывести «длинный» список; -o формат – вывести список в указанном формате; -p список – вывести информацию о процессах с перечисленными в списке PID; -u список – вывести информацию о процессах с перечисленными идентификаторами или именами пользователей.
bg – перевести задание на задний план
Синтаксис:bg [идентификатор ...]
Семантика:bg возобновляет выполнение приостановленных процессов на заднем плане.
Операнд: идентификатор– PID ведущего процесса задания или номер задания, предваренный знаком «%».
fg – перевести задание на передний план
Синтаксис:fg [идентификатор ...]
Семантика:fg возобновляет выполнение приостановленных процессов на переднем плане или переводит процессы заднего плана на передний.
Операнд: идентификатор– PID ведущего процесса задания или номер задания, предваренный знаком «%».
jobs – вывести состояние заданий в текущем сеансе
Синтаксис:jobs [-l| -p][идентификатор...]
Семантика:jobs выводит состояние заданий в окружении текущей оболочки.
Ключи:-l («эль») – вывести полную информацию (номер задания, текущее задание, идентификатор группы, состояние и команду) для каждого задания; -p – вывести только идентификатор ведущего процесса каждого задания.
Операнд: идентификатор– PID ведущего процесса задания или номер задания, предваренный знаком «%».Если операнд отсутствует, выводится информация о всех заданиях.
kill – прекратить исполнение процесса или передать ему сигнал
Синтаксис:kill -s сигнал идентификатор ... ; kill -l [статус_завершения] ; kill [-сигнал] идентификатор ... ; kill [-номер_сигнала] идентификатор ...
Семантика:kill посылает указанный сигнал указанным процессам.
Ключи: –l(«эль») – вывести список поддерживаемых сигналов; –s сигнал– послать сигнал с указанным именем; –сигнал– эквивалент «-s сигнал»; –номер_сигнала– послать сигнал с указанным номером.
Операнды: идентификатор– идентификатор процесса или предваренный знаком «%» номер задания; статус_завершения– код завершения, возвращаемый прекращаемым процессом.
set – установить или сбросить ключи и позиционные параметры, вывести список установленных переменных
Синтаксис:set [-abCefmnuvx][-h][-o ключ][аргумент...]; set [+abCefmnuvx][+h][+o ключ][аргумент...]; set – [аргумент...]; set -o; set +o
Семантика:будучи подана без аргументов, set выводит имена и значения всех переменных оболочки, разделенные знаком «=», по одной на каждой строке.
Будучи подана с аргументами, set устанавливает или сбрасывает ключи и позиционные параметры текущей оболочки. Эта функциональность в настоящем курсе не рассматривается.
env – установить окружение для издаваемой команды
Синтаксис:env [-i][имя=значение]... [утилита [аргумент...]]
Семантика:будучи подана без аргументов, env выводит имена и значения всех экспортированных переменных, разделенные знаком «=», по одной на каждой строке.
Будучи подана с аргументами, env модифицирует текущее окружение и запускает в нем указанную команду. Эта функциональность в настоящем курсе не рассматривается.
export – сделать переменные экспортируемыми
Синтаксис:export имя[=значение]... ; export -p
Семантика:оболочка устанавливает атрибут экспортируемости переменным, перечисленным в команде export, что включает их в окружение далее издаваемых команд. При указании ключа -p команда выводит выводит имена и значения всех экспортированных переменных, разделенные знаком «=» (если переменная установлена) или только их имена (если переменная сброшена), по одной на каждой строке, предваряя их цепочкой «export ».
Ключ:-p – вывести список экспортированных переменных и их значений.
nl – пронумеровать строки
Синтаксис:nl [-p][-b тип][-d ограничитель][-f тип][-h тип][-i приращение][-l номер][-n формат] [-s разделитель][-v нач_номер][-w ширина][файл]
Семантика:nl читает строки из указанного файла (или стандартного ввода, если файл не указан) и выводит их в стандартный вывод, предваряя номерами.
Команда интерпретирует текст как последовательность логических страниц. Нумерация строк возобновляется на каждой странице. Страница состоит из верхнего колонтитула, тела и нижнего колонтитула (каждая из этих частей может быть пустой), строки в которых могут нумероваться независимо.
Начало каждого из разделов указывается строкой, не содержащей ничего, кроме цепочки «\:\:\:» (начало верхнего колонтитула), «\:\:» (начало тела) или «\:» (начало нижнего колонтитула). При отсутствии таких строк файл считается содержащим единственную страницу.
Ключи:ключи команды nl позволяют указать различные параметры нумерации и формата вывода, и в настоящем курсе не рассматриваются.
Операнд: файл– имя файла. При отсутствии операнда строки вводятся из стандартного ввода.
sort – сортировать, слить или проверить сортировку строк в файле
Синтаксис:sort [-m][-o вывод][-bdfinru][-t символ][-k опр_ключа]... [файл...] ; sort -c [-bdfinru][-t символ][-k опр_ключа] [файл]
Семантика:sort выполнит одно из следующего: 1) отсортирует строки всех указанных файлов и выведет результат в указанный файл «вывод»; 2) сольет построчно (предварительно отсортированные) файлы и выведет результат в указанный файл «вывод» или 3) проверит единственный указанный файл на сортировку. Сравнения будут выполняться на основании указанных ключей или на основании строки в целом (вплоть до символа новой строки исключительно), с учетом порядка сортировки, определенного текущей локалью.
Ключи:ключи sort позволяют задавать параметры сортировки, слияния или проверки, и в настоящем курсе не рассматриваются. При отсутствии ключей строки ввода сортируются в прямом алфавитном порядке.
Операнд: файл– имя файла. Если файл не указан, сортируется стандартный ввод.
tee – дуплицировать стандартный ввод
Синтаксис:tee [-ai][file...]
Семантика:tee копирует стандартный ввод в стандартный вывод, дуплицируя его в один или более файлов.
Ключи: –a– добавить вывод в конец существующих файлов; –i– игнорировать сигнал SIGINT.
Операнд:файл – имя выходного файла.
vi – экранный (визуальный) текстовый редактор
Синтаксис:vi [-rR][-c команда][-t строка_тегов][-w размер][длина ...]
Семантика:vi является экранным текстовым редактором. Пользователь может переключаться между режимами vi и ex и издавать команды ex из vi.
Текущий редактируемый текст называется буфером редактирования. Все редактирование осуществляется в буфере редактирования и не затрагивает файлов до подачи команды записи. При использовании vi экран терминала представляет собой окно в буфер редактирования. Изменения в буфере редактирования отображаются на экране, а курсор отмечает позицию в буфере редактирования.
Важнейшие ключи:[[ex]]
–c команда –указать команду, которая будет исполнена после загрузки в буфер первого файла; -r – восстановить состояние буфера после ошибочного завершения; -R – открыть файл только для чтения.
Важнейшие команды:
Переключение между режимами: командный режим – <Esc>; режим ввода – a (в режим вставки (вставка после курсора)), i (в режим вставки (с вставкой перед курсором)), A (в режим вставки (вставка после конца текущей строки)), I (в режим вставки (перед первым непробелом)), R (в режим замены); режим редактирования строки команды – :, /, ?, !.
Файловые команды: ZZ, :wq – сохранить текущий буфер в файл и завершить работу; Сохраняет файл и выходит из vi; :w – сохранить текущий буфер в файл; :w имясохранить текущий буфер в файл с указанным именем; :q – выйти из редактора; :e имя – загрузить файл с указанным файлом в буфер редактирования; :n – загрузить следующий файл в списке файлов.
Команды перемещения: CTRL-d – на полстраницы вниз; CTRL-u – на полстраницы вверх; CTRL-f – на страницу вниз; CTRL-b – на страницу вверх; :0 – к началу файла; : n– к строке номер n; :$ – к концу файла ; 0 – к началу строки; ^ – к первому непробелу; $ – к концу строки; <Enter> – к началу следующей строки; – – к началу предыдущей строки; j – на следующую строку; k – на предыдущую строку.
Команды редактирования: CTRL-h – удалить символ слева; CTRL-w – удалить слово слева; CTRL-v – ввести непечатаемый символ; x – удалить текущий символ; D – удалить до конца строки; dd – удалить текущую строку.
Команды поиска и замены:/текст – искать вперед образец текст; ?текст – искать назад образец текст; n – повторить последний поиск в том же направлении; N – повторить последний поиск в обратном направлении; :s/текст/новый_текст/ – заменить первый образец текст на новый_текст; :s/текст/новый_текст/g – заменить все образцы текст на новый_текст.
1.12 Перечень стандартных команд ОС
Глава 2. Графический пользовательский интерфейс
2.1 Оконная система «Икс» и XFree86
Синтаксис:cp [-fip] исх_файл цел_файл ; cp [-fip] исх_файл... каталог ; cp -R [-H | -L | -P][-fip] исх_файл... каталог ; cp -r [-H | -L | -P][-fip] исх_файл... каталог
Семантика:первая синтаксическая форма характеризуется двумя файлами, ни один из которых не должен быть существующим каталогом. cp копирует исх_файл в цел_файл. Если исх_файл – символическая ссылка, копируется целевой файл этой ссылки.
Вторая синтаксическая форма характеризуется двумя или более операндами, отсутствием ключей «-R» или «-r» и неприменимостью первой формы. Исходные файлы не должны быть каталогами, а каталог должен быть существующим каталогом. cp копирует исходные файлы в указанный каталог под именами, совпадающими с краткими именами исходных файлов.
Третья и четвертая форма характеризуется двумя или более операндами и ключами «-r» или «-R». cp копирует все указанные файлы, а также рекурсивно каталоги с их содержимым в каталог.
Важнейшие ключи: -i– запрашивать подтверждение перед копированием в существующие файлы; -p– сохранять по возможности времена изменения и доступа к файлу, владельца и группу, права доступа; -R, -r– рекурсивно копировать содержимое каталогов.
Операнды:исх_файл – исходный файл; цел_файл – целевой файл; каталог – целевой каталог.
Стандартный вывод ошибок:стандартный вывод ошибок используется для вывода запросов на подтверждение перезаписи существующих файлов («-i»).
mv – переместить файлы
Синтаксис:mv [-fi] исх_файл цел_файл ; mv [-fi] исх_файл... каталог
Семантика:в первой синтаксической форме, характеризующейся тем, что последний операнд не является ни каталогом, ни символической ссылкой на каталог, mv перемещает исх_файл в цел_файл.
Во второй синтаксической форме cp копирует исходные файлы в указанный каталог под именами, совпадающими с краткими именами исходных файлов.
Ключи: -f– не запрашивать подтверждения перезаписи существующих файлов; -i– запрашивать подтверждение перезаписи существующих файлов.
Операнды:исх_файл – исходный файл; цел_файл – целевой файл; каталог – целевой каталог.
Стандартный вывод ошибок:стандартный вывод ошибок используется для вывода запросов на подтверждение перезаписи существующих файлов («-i»).
echo – вывести аргументы
Синтаксис: echo [ строка...]
Семантика:echo выводит свои аргументы после раскрытия специальных символов в стандартный вывод, завершая вывод символом новой строки.
Операнды: строка – строка, подлежащая выводу. В строке после раскрытия спецсимволов оболочки раскрываются следующие символы: \a – звуковой сигнал, \b – пробел, \c – подавить вывод символа новой строки, \f – перевод страницы, \n – символ конца строки, \r – символ возврата каретки, \t – табуляция, \v – вертикальная табуляция, \\ – обратная косая черта, \0 код —символ с восьмеричным кодом «код».
Стандартный вывод: между аргументами выводятся пробелы.
cat – вывести содержимое файлов
Синтаксис:cat [-u][файл...]
Семантика:cat последовательно выводит содержимое файлов.
Ключ:-u – читать и выводить файлы побайтно (по умолчанию – построчно).
Операнды:файл – выводимый файл. Если файл не указан, читается стандартный ввод. Если в списке файлов присутствует имя «-», вместо этого файла читается стандартный ввод.
Реализация:в большинстве систем ключ «-u» не реализован.
chmod – изменить права на файл
Синтаксис:chmod [-R] режим файл ...
Семантика:chmod изменяет биты режима доступа к каждому указанному файлу в соответствии с указанным режимом. Изменить режим доступа к файлу может только процесс с действующим идентификатором пользователя, совпадающим с владельцем файла, или привилегированный процесс.
Ключ:-R – рекурсивно изменять режим доступа к файлам, расположенным в указанных каталогах.
Операнды:режим – устанавливаемый режим доступа (в rwx– или числовой нотации); файл – имя файла.
umask – вывести или установить маску прав доступа
Синтаксис:umask [-S][маска]
Семантика:umask устанавливает маску прав вновь создаваемых в окружении текущей оболочки файлов в соответствии с указанным значением. Если операнд маска не указан, umask выводит текущую маску.
Ключ:-S – вывести маску в rwx-нотации.
Операнд:маска – маска прав в rwx– или числовой нотации.
ps – вывести состояние процессов
Синтаксис:ps [-aA][-defl][-G список][-o формат]...[-p список][-t список][-U список][-g список][-n список][-u список]
Семантика:ps выводит информацию о процессах в рамках собственных привилегий. По умолчанию выводится информация о процессах с теми же действующим UID и управляющим терминалом, что и у подающего команду пользователя.
Основные ключи:-a – вывести информацию о процессах, ассоциированных с терминалами; -A – вывести информацию о всех процессах; -f – вывести «полный» список; -l – вывести «длинный» список; -o формат – вывести список в указанном формате; -p список – вывести информацию о процессах с перечисленными в списке PID; -u список – вывести информацию о процессах с перечисленными идентификаторами или именами пользователей.
bg – перевести задание на задний план
Синтаксис:bg [идентификатор ...]
Семантика:bg возобновляет выполнение приостановленных процессов на заднем плане.
Операнд: идентификатор– PID ведущего процесса задания или номер задания, предваренный знаком «%».
fg – перевести задание на передний план
Синтаксис:fg [идентификатор ...]
Семантика:fg возобновляет выполнение приостановленных процессов на переднем плане или переводит процессы заднего плана на передний.
Операнд: идентификатор– PID ведущего процесса задания или номер задания, предваренный знаком «%».
jobs – вывести состояние заданий в текущем сеансе
Синтаксис:jobs [-l| -p][идентификатор...]
Семантика:jobs выводит состояние заданий в окружении текущей оболочки.
Ключи:-l («эль») – вывести полную информацию (номер задания, текущее задание, идентификатор группы, состояние и команду) для каждого задания; -p – вывести только идентификатор ведущего процесса каждого задания.
Операнд: идентификатор– PID ведущего процесса задания или номер задания, предваренный знаком «%».Если операнд отсутствует, выводится информация о всех заданиях.
kill – прекратить исполнение процесса или передать ему сигнал
Синтаксис:kill -s сигнал идентификатор ... ; kill -l [статус_завершения] ; kill [-сигнал] идентификатор ... ; kill [-номер_сигнала] идентификатор ...
Семантика:kill посылает указанный сигнал указанным процессам.
Ключи: –l(«эль») – вывести список поддерживаемых сигналов; –s сигнал– послать сигнал с указанным именем; –сигнал– эквивалент «-s сигнал»; –номер_сигнала– послать сигнал с указанным номером.
Операнды: идентификатор– идентификатор процесса или предваренный знаком «%» номер задания; статус_завершения– код завершения, возвращаемый прекращаемым процессом.
set – установить или сбросить ключи и позиционные параметры, вывести список установленных переменных
Синтаксис:set [-abCefmnuvx][-h][-o ключ][аргумент...]; set [+abCefmnuvx][+h][+o ключ][аргумент...]; set – [аргумент...]; set -o; set +o
Семантика:будучи подана без аргументов, set выводит имена и значения всех переменных оболочки, разделенные знаком «=», по одной на каждой строке.
Будучи подана с аргументами, set устанавливает или сбрасывает ключи и позиционные параметры текущей оболочки. Эта функциональность в настоящем курсе не рассматривается.
env – установить окружение для издаваемой команды
Синтаксис:env [-i][имя=значение]... [утилита [аргумент...]]
Семантика:будучи подана без аргументов, env выводит имена и значения всех экспортированных переменных, разделенные знаком «=», по одной на каждой строке.
Будучи подана с аргументами, env модифицирует текущее окружение и запускает в нем указанную команду. Эта функциональность в настоящем курсе не рассматривается.
export – сделать переменные экспортируемыми
Синтаксис:export имя[=значение]... ; export -p
Семантика:оболочка устанавливает атрибут экспортируемости переменным, перечисленным в команде export, что включает их в окружение далее издаваемых команд. При указании ключа -p команда выводит выводит имена и значения всех экспортированных переменных, разделенные знаком «=» (если переменная установлена) или только их имена (если переменная сброшена), по одной на каждой строке, предваряя их цепочкой «export ».
Ключ:-p – вывести список экспортированных переменных и их значений.
nl – пронумеровать строки
Синтаксис:nl [-p][-b тип][-d ограничитель][-f тип][-h тип][-i приращение][-l номер][-n формат] [-s разделитель][-v нач_номер][-w ширина][файл]
Семантика:nl читает строки из указанного файла (или стандартного ввода, если файл не указан) и выводит их в стандартный вывод, предваряя номерами.
Команда интерпретирует текст как последовательность логических страниц. Нумерация строк возобновляется на каждой странице. Страница состоит из верхнего колонтитула, тела и нижнего колонтитула (каждая из этих частей может быть пустой), строки в которых могут нумероваться независимо.
Начало каждого из разделов указывается строкой, не содержащей ничего, кроме цепочки «\:\:\:» (начало верхнего колонтитула), «\:\:» (начало тела) или «\:» (начало нижнего колонтитула). При отсутствии таких строк файл считается содержащим единственную страницу.
Ключи:ключи команды nl позволяют указать различные параметры нумерации и формата вывода, и в настоящем курсе не рассматриваются.
Операнд: файл– имя файла. При отсутствии операнда строки вводятся из стандартного ввода.
sort – сортировать, слить или проверить сортировку строк в файле
Синтаксис:sort [-m][-o вывод][-bdfinru][-t символ][-k опр_ключа]... [файл...] ; sort -c [-bdfinru][-t символ][-k опр_ключа] [файл]
Семантика:sort выполнит одно из следующего: 1) отсортирует строки всех указанных файлов и выведет результат в указанный файл «вывод»; 2) сольет построчно (предварительно отсортированные) файлы и выведет результат в указанный файл «вывод» или 3) проверит единственный указанный файл на сортировку. Сравнения будут выполняться на основании указанных ключей или на основании строки в целом (вплоть до символа новой строки исключительно), с учетом порядка сортировки, определенного текущей локалью.
Ключи:ключи sort позволяют задавать параметры сортировки, слияния или проверки, и в настоящем курсе не рассматриваются. При отсутствии ключей строки ввода сортируются в прямом алфавитном порядке.
Операнд: файл– имя файла. Если файл не указан, сортируется стандартный ввод.
tee – дуплицировать стандартный ввод
Синтаксис:tee [-ai][file...]
Семантика:tee копирует стандартный ввод в стандартный вывод, дуплицируя его в один или более файлов.
Ключи: –a– добавить вывод в конец существующих файлов; –i– игнорировать сигнал SIGINT.
Операнд:файл – имя выходного файла.
vi – экранный (визуальный) текстовый редактор
Синтаксис:vi [-rR][-c команда][-t строка_тегов][-w размер][длина ...]
Семантика:vi является экранным текстовым редактором. Пользователь может переключаться между режимами vi и ex и издавать команды ex из vi.
Текущий редактируемый текст называется буфером редактирования. Все редактирование осуществляется в буфере редактирования и не затрагивает файлов до подачи команды записи. При использовании vi экран терминала представляет собой окно в буфер редактирования. Изменения в буфере редактирования отображаются на экране, а курсор отмечает позицию в буфере редактирования.
Важнейшие ключи:[[ex]]
–c команда –указать команду, которая будет исполнена после загрузки в буфер первого файла; -r – восстановить состояние буфера после ошибочного завершения; -R – открыть файл только для чтения.
Важнейшие команды:
Переключение между режимами: командный режим – <Esc>; режим ввода – a (в режим вставки (вставка после курсора)), i (в режим вставки (с вставкой перед курсором)), A (в режим вставки (вставка после конца текущей строки)), I (в режим вставки (перед первым непробелом)), R (в режим замены); режим редактирования строки команды – :, /, ?, !.
Файловые команды: ZZ, :wq – сохранить текущий буфер в файл и завершить работу; Сохраняет файл и выходит из vi; :w – сохранить текущий буфер в файл; :w имясохранить текущий буфер в файл с указанным именем; :q – выйти из редактора; :e имя – загрузить файл с указанным файлом в буфер редактирования; :n – загрузить следующий файл в списке файлов.
Команды перемещения: CTRL-d – на полстраницы вниз; CTRL-u – на полстраницы вверх; CTRL-f – на страницу вниз; CTRL-b – на страницу вверх; :0 – к началу файла; : n– к строке номер n; :$ – к концу файла ; 0 – к началу строки; ^ – к первому непробелу; $ – к концу строки; <Enter> – к началу следующей строки; – – к началу предыдущей строки; j – на следующую строку; k – на предыдущую строку.
Команды редактирования: CTRL-h – удалить символ слева; CTRL-w – удалить слово слева; CTRL-v – ввести непечатаемый символ; x – удалить текущий символ; D – удалить до конца строки; dd – удалить текущую строку.
Команды поиска и замены:/текст – искать вперед образец текст; ?текст – искать назад образец текст; n – повторить последний поиск в том же направлении; N – повторить последний поиск в обратном направлении; :s/текст/новый_текст/ – заменить первый образец текст на новый_текст; :s/текст/новый_текст/g – заменить все образцы текст на новый_текст.
1.12 Перечень стандартных команд ОС
Команда
ПримечанияОпределение
alias МПОпределить или вывести синонимы
ar СР или РАСШСоздать или изменить библиотечные архивы
asa ПФПеревести символы управления кареткой
at МПИсполнить команды в указанное время
awkСканировать и обработать файл в соответствии с инструкциями
basenameВывести часть полного имени файла, не относящуюся к имени каталога
batch МППоставить команды в очередь на пакетное исполнение
bcВычислить арифметическое выражение с заданной точностью
bg МПЗапустить задачи в фоновом режиме
breakВыйти из цикла for, while или until
c99 РССкомпилировать программу на стандартном Си
cal РАСШВывести календарь
catОбъединить и вывести файлы
cdИзменить текущий каталог
cflow Р РАСШПостроить блок-схему программы на Си
chgrpИзменить группу-хозяина файла
chmodИзменить атрибуты доступа к файлу
chownИзменить хозяина файла
cksumВывести контрольные суммы и размеры файлов
cmpСравнить два файла
colon (:)Ничего не делать
commВыбрать или отбросить совпадающие строки в двух файлах
commandИсполнить простую команду
compress РАСШСжать данные
continueПродолжить выполнение цикла for, while или until
cpКопировать файлы
crontab МППоставить задачу в расписание периодического исполнения
csplit МПРазделить файлы на контекстной основе
ctags Р Ф МППостроить файл меток
cutУдалить указанные поля из каждой строки файла
cxref Р РАСШПостроить таблицу перекрестных ссылок программы на Си
dateВывести или установить дату и время
ddПреобразовать и скопировать файл
delta Р РАСШВнести дельту (изменения) в файл SCCS
df МП РАСШВывести количество свободного места на диске
diffСравнить два файла
dirnameВывести часть полного имени файла, относящуюся к имени каталога
dot (.)Исполнить команду в текущем окружении
du МПВывести информацию об использовании файлового пространства
echoВывести аргументы
edРедактировать текст
envУстановить окружение для запуска команды
evalСоставить команду из аргументов и исполнить ее
ex МПРедактировать текст
execИсполнить команду и открыть, закрыть или скопировать дескрипторы файлов
exitЗавершить исполнение оболочки
expand МППеревести табуляции в пробелы
exportСделать переменную экспортируемой
exprВычислить аргумент как выражение
falseВернуть значение «ложно»
fcОбработать историю команд
fg МПЗапустить задачи на переднем плане
file МПОпределить тип файлов
findНайти файлы
foldСвернуть строки
fort77 Ф РФСкомпилировать программу на Фортране
fuser РАСШВывести идентификаторы процессов, имеющих открытые файлы
gencat РАСШПостроить каталог форматированных сообщений
get Р РАСШВывести версию файла SCCS
getconfВывести значения конфигурации
getoptsРазделить ключи утилиты
grepИскать в файле образец
hash РАСШЗапомнить или вывести путь к утилите
headВывести начало файла
iconvПреобразовать код файла
idВывести информацию о пользователе
ipcrm РАСШУдалить очередь сообщений XSI, установки семафора или идентификатор разделяемой памяти
ipcs РАСШВывести состояние механизма межпроцессного обмена XSI
jobsМП Вывести состояние задач в текущем сеансе
joinОбъединить базы данных
killЗавершить процесс или передать ему сигнал
lex Р РСПостроить программу для лексического анализа
link РАСШВызвать системную функцию link
lnСвязать файлы
localeВывести информацию о локали
localedefОпределить переменные локали
loggerЗанести сообщения в журнал
lognameВывести регистрационное имя пользователя
lpПослать файлы в печать
lsВывести содержимое каталога
m4 Р РАСШОбработать макросы
mailxОтправить сообщения
make Р СРПостроить, обновить или перестроить группы программ
manВывести системную документацию
mesg МПРазрешить или запретить вывод сообщений
mkdirСоздать каталоги
mkfifoСоздать специальные файлы очередей
more МПВывести файлы постранично
mvПереместить файлы
newgrp МППерейти в другую группу
nice МПЗапустить утилиту с указанным приоритетом
nl РАСШПронумеровать строки
nm Р МП СР РАСШВывести список имен, содержащихся в объектном файле
nohupЗапустить утилиту, не завершающуюся по сигналу HUP
odВывести дамп файла в указанных форматах
pasteСлить соответствующие или последующие строки файлов
patch МПИзменить файлы на основе патча
pathchkПроверить пути
paxОбработать переносимый архив
prВывести файлы, подготовленные для печати
printfВывести форматированный текст
prs РНапечатать файл SCCS
ps МП РАСШВывести состояние процесса
pwdВывести имя текущего каталога
qalter ПИИзменить пакетную задачу
qdel ПИУдалить пакетные задачи
qhold ПИЗадержать пакетные задачи
qmove ПИПереместить пакетные задачи
qmsg ПИПослать сообщение пакетным задачам
qrerun ПИПерезапустить пакетные задачи
qrls ПИОтпустить пакетные задачи
qselect ПИВыбрать пакетные задачи
qsig ПИОтправить сигнал пакетным задачам
qstat ПИВывести статус пакетных задач
qsub ПИПоставить сценарий в очередь на пакетное исполнение
readВвести строку
readonlyЗащитить переменные от переустановки
renice МПИзменить приоритеты исполняемых процессов
returnВернуться из функции
rmУдалить файлы из каталогов
rmdel Р РАСШУдалить дельту из файла SCCS
rmdirУдалить каталоги
sccs Р РАСШВыполнить действия с файлами SCCS
sact РВывести текущую активность по редактированию файлов SCCS
sedРедактировать файл поточно
setУстановить или сбросить ключи или позиционные параметры
shЗапустить оболочку
shiftСдвинуть список параметров
sleepЗадержать исполнение на указанный интервал времени
sortОтсортировать, слить файлы или проверить сортировку файлов
split МПРазделить файлы на части
strings МПНайти в файлах символьные строки
strip Р СРУдалить из исполняемых файлов лишнюю информацию
sttyУстановить параметры терминала
tabsУстановить позиции табуляции на терминале
tailВывести конец файла
talk МПСвязаться с другим пользователем
teeДублировать стандартный ввод
testВычислить выражение
time МПХронометрировать простую команду
timesВывести время исполнения процессов
touchИзменить временные атрибуты доступа и модификации файлов
tput МПИзменить характеристики терминала
trПодставить символы
trapПерехватывать сигналы
trueВернуть значение «истинно»
tsort РАСШСортировать топологически
ttyВывести имя терминала пользователя
type РАСШВывести описание типа команды
ulimit РАСШУстановить или вывести ограничение размера файла
umaskУстановить или вывести маску прав на создаваемые файлы
unaliasУдалить определение синонима
unameВывести имя системы
uncompress РАСШРазжать сжатые данные
unexpand МППреобразовать пробелы в табуляции
unget Р РАСШОткатить ранее выполненное взятие файла SCCS
uniqВывести или подавить вывод повторяющихся строк в файле
unlink РАСШВызвать функцию ulink
unsetСбросить значения и атрибуты переменных и функций
uucp РАСШКопировать из системы в систему
uudecode МПДекодировать двоичный файл
uuencode МПЗакодировать двоичный файл
uustat РАСШВывести или изменить состояние uucp
uux РАСШВыполнить команду удаленно
val Р РАСШПроверить валидность файла SCCS
vi МПРедактировать файл в экранном режиме
waitОжидать завершение процесса
wcСосчитать слова, строки или символы в файле
what Р РАСШИдентифицировать файлы SCCS
who МПВывести имена пользователей, зарегистрированных в системе
write МПВывести сообщение на терминал другого пользователя
xargs РАСШСоставить из аргументов списки и запустить утилиту
yacc Р РАСШКомпилировать компилятор
zcat РАСШРазжать и объединить данные
Примечания
1.Команды даны согласно ISO/IEC 9945-2001.
2. К субпрофилям стандарта относятся следующие пометы:
ПометаРасшифровка
МПСреда, обеспечивающая мобильность пользователей
ПИСреда пакетного исполнения
РСреда разработки
РАСШРасширенная среда исполнения
РССреда разработки на Си
РФСреда разработки на Фортране
СРСреда разработки
ФФортран
alias МПОпределить или вывести синонимы
ar СР или РАСШСоздать или изменить библиотечные архивы
asa ПФПеревести символы управления кареткой
at МПИсполнить команды в указанное время
awkСканировать и обработать файл в соответствии с инструкциями
basenameВывести часть полного имени файла, не относящуюся к имени каталога
batch МППоставить команды в очередь на пакетное исполнение
bcВычислить арифметическое выражение с заданной точностью
bg МПЗапустить задачи в фоновом режиме
breakВыйти из цикла for, while или until
c99 РССкомпилировать программу на стандартном Си
cal РАСШВывести календарь
catОбъединить и вывести файлы
cdИзменить текущий каталог
cflow Р РАСШПостроить блок-схему программы на Си
chgrpИзменить группу-хозяина файла
chmodИзменить атрибуты доступа к файлу
chownИзменить хозяина файла
cksumВывести контрольные суммы и размеры файлов
cmpСравнить два файла
colon (:)Ничего не делать
commВыбрать или отбросить совпадающие строки в двух файлах
commandИсполнить простую команду
compress РАСШСжать данные
continueПродолжить выполнение цикла for, while или until
cpКопировать файлы
crontab МППоставить задачу в расписание периодического исполнения
csplit МПРазделить файлы на контекстной основе
ctags Р Ф МППостроить файл меток
cutУдалить указанные поля из каждой строки файла
cxref Р РАСШПостроить таблицу перекрестных ссылок программы на Си
dateВывести или установить дату и время
ddПреобразовать и скопировать файл
delta Р РАСШВнести дельту (изменения) в файл SCCS
df МП РАСШВывести количество свободного места на диске
diffСравнить два файла
dirnameВывести часть полного имени файла, относящуюся к имени каталога
dot (.)Исполнить команду в текущем окружении
du МПВывести информацию об использовании файлового пространства
echoВывести аргументы
edРедактировать текст
envУстановить окружение для запуска команды
evalСоставить команду из аргументов и исполнить ее
ex МПРедактировать текст
execИсполнить команду и открыть, закрыть или скопировать дескрипторы файлов
exitЗавершить исполнение оболочки
expand МППеревести табуляции в пробелы
exportСделать переменную экспортируемой
exprВычислить аргумент как выражение
falseВернуть значение «ложно»
fcОбработать историю команд
fg МПЗапустить задачи на переднем плане
file МПОпределить тип файлов
findНайти файлы
foldСвернуть строки
fort77 Ф РФСкомпилировать программу на Фортране
fuser РАСШВывести идентификаторы процессов, имеющих открытые файлы
gencat РАСШПостроить каталог форматированных сообщений
get Р РАСШВывести версию файла SCCS
getconfВывести значения конфигурации
getoptsРазделить ключи утилиты
grepИскать в файле образец
hash РАСШЗапомнить или вывести путь к утилите
headВывести начало файла
iconvПреобразовать код файла
idВывести информацию о пользователе
ipcrm РАСШУдалить очередь сообщений XSI, установки семафора или идентификатор разделяемой памяти
ipcs РАСШВывести состояние механизма межпроцессного обмена XSI
jobsМП Вывести состояние задач в текущем сеансе
joinОбъединить базы данных
killЗавершить процесс или передать ему сигнал
lex Р РСПостроить программу для лексического анализа
link РАСШВызвать системную функцию link
lnСвязать файлы
localeВывести информацию о локали
localedefОпределить переменные локали
loggerЗанести сообщения в журнал
lognameВывести регистрационное имя пользователя
lpПослать файлы в печать
lsВывести содержимое каталога
m4 Р РАСШОбработать макросы
mailxОтправить сообщения
make Р СРПостроить, обновить или перестроить группы программ
manВывести системную документацию
mesg МПРазрешить или запретить вывод сообщений
mkdirСоздать каталоги
mkfifoСоздать специальные файлы очередей
more МПВывести файлы постранично
mvПереместить файлы
newgrp МППерейти в другую группу
nice МПЗапустить утилиту с указанным приоритетом
nl РАСШПронумеровать строки
nm Р МП СР РАСШВывести список имен, содержащихся в объектном файле
nohupЗапустить утилиту, не завершающуюся по сигналу HUP
odВывести дамп файла в указанных форматах
pasteСлить соответствующие или последующие строки файлов
patch МПИзменить файлы на основе патча
pathchkПроверить пути
paxОбработать переносимый архив
prВывести файлы, подготовленные для печати
printfВывести форматированный текст
prs РНапечатать файл SCCS
ps МП РАСШВывести состояние процесса
pwdВывести имя текущего каталога
qalter ПИИзменить пакетную задачу
qdel ПИУдалить пакетные задачи
qhold ПИЗадержать пакетные задачи
qmove ПИПереместить пакетные задачи
qmsg ПИПослать сообщение пакетным задачам
qrerun ПИПерезапустить пакетные задачи
qrls ПИОтпустить пакетные задачи
qselect ПИВыбрать пакетные задачи
qsig ПИОтправить сигнал пакетным задачам
qstat ПИВывести статус пакетных задач
qsub ПИПоставить сценарий в очередь на пакетное исполнение
readВвести строку
readonlyЗащитить переменные от переустановки
renice МПИзменить приоритеты исполняемых процессов
returnВернуться из функции
rmУдалить файлы из каталогов
rmdel Р РАСШУдалить дельту из файла SCCS
rmdirУдалить каталоги
sccs Р РАСШВыполнить действия с файлами SCCS
sact РВывести текущую активность по редактированию файлов SCCS
sedРедактировать файл поточно
setУстановить или сбросить ключи или позиционные параметры
shЗапустить оболочку
shiftСдвинуть список параметров
sleepЗадержать исполнение на указанный интервал времени
sortОтсортировать, слить файлы или проверить сортировку файлов
split МПРазделить файлы на части
strings МПНайти в файлах символьные строки
strip Р СРУдалить из исполняемых файлов лишнюю информацию
sttyУстановить параметры терминала
tabsУстановить позиции табуляции на терминале
tailВывести конец файла
talk МПСвязаться с другим пользователем
teeДублировать стандартный ввод
testВычислить выражение
time МПХронометрировать простую команду
timesВывести время исполнения процессов
touchИзменить временные атрибуты доступа и модификации файлов
tput МПИзменить характеристики терминала
trПодставить символы
trapПерехватывать сигналы
trueВернуть значение «истинно»
tsort РАСШСортировать топологически
ttyВывести имя терминала пользователя
type РАСШВывести описание типа команды
ulimit РАСШУстановить или вывести ограничение размера файла
umaskУстановить или вывести маску прав на создаваемые файлы
unaliasУдалить определение синонима
unameВывести имя системы
uncompress РАСШРазжать сжатые данные
unexpand МППреобразовать пробелы в табуляции
unget Р РАСШОткатить ранее выполненное взятие файла SCCS
uniqВывести или подавить вывод повторяющихся строк в файле
unlink РАСШВызвать функцию ulink
unsetСбросить значения и атрибуты переменных и функций
uucp РАСШКопировать из системы в систему
uudecode МПДекодировать двоичный файл
uuencode МПЗакодировать двоичный файл
uustat РАСШВывести или изменить состояние uucp
uux РАСШВыполнить команду удаленно
val Р РАСШПроверить валидность файла SCCS
vi МПРедактировать файл в экранном режиме
waitОжидать завершение процесса
wcСосчитать слова, строки или символы в файле
what Р РАСШИдентифицировать файлы SCCS
who МПВывести имена пользователей, зарегистрированных в системе
write МПВывести сообщение на терминал другого пользователя
xargs РАСШСоставить из аргументов списки и запустить утилиту
yacc Р РАСШКомпилировать компилятор
zcat РАСШРазжать и объединить данные
Примечания
1.Команды даны согласно ISO/IEC 9945-2001.
2. К субпрофилям стандарта относятся следующие пометы:
ПометаРасшифровка
МПСреда, обеспечивающая мобильность пользователей
ПИСреда пакетного исполнения
РСреда разработки
РАСШРасширенная среда исполнения
РССреда разработки на Си
РФСреда разработки на Фортране
СРСреда разработки
ФФортран
Глава 2. Графический пользовательский интерфейс
До середины девяностых существовали отдельно компьютерная графика и отдельно – настольные игры в компьютерную графику. Помнящие историю отечественной школьной информатизации читатели, возможно, сталкивались с чудом техники под названием «цифровой дисплей растровый» (ЦДР), которое удавалось подключить к первому отечественному персональному компьютеру ДВК, чтобы отображать на экране телевизора несколько тысяч пикселов в четырех цветах. В то время в Лабораториях Компьютерной Графики некоторых вузов можно было встретить Графические Рабочие Станции с векторными устройствами и X-терминалами, и даже плоттерами.
Закон Мура тем временем делал свое (в данном случае, не черное, а многоцветное) дело, и к середине девяностых на компьютере с процессором Intel 486 уже запускалась та самая система, которую пятью годами раньше наблюдать можно было лишь на X-терминалах и графических станциях, стоивших каких-то немыслимых (что по тем временам, что сегодня) денег.
Игры в самодельную графику, конечно, продолжаются и сегодня, но в целом мир воссоединился, и особой нужды в таких играх давно нет. Хотя – такова диалектика массовых рынков – именно эти игры (включая игры в буквальном смысле) породили спрос на дешевые устройства (прежде всего, графические акселераторы), которые и делают настоящую компьютерную графику доступной пользователю массовой x86– и PowerPC-техники, даже устаревшие «персоналки» – сопоставимыми с X-терминалами, а более новые и мощные – соперниками и с профессиональных графических рабочих станций начального и среднего уровня.
Закон Мура тем временем делал свое (в данном случае, не черное, а многоцветное) дело, и к середине девяностых на компьютере с процессором Intel 486 уже запускалась та самая система, которую пятью годами раньше наблюдать можно было лишь на X-терминалах и графических станциях, стоивших каких-то немыслимых (что по тем временам, что сегодня) денег.
Игры в самодельную графику, конечно, продолжаются и сегодня, но в целом мир воссоединился, и особой нужды в таких играх давно нет. Хотя – такова диалектика массовых рынков – именно эти игры (включая игры в буквальном смысле) породили спрос на дешевые устройства (прежде всего, графические акселераторы), которые и делают настоящую компьютерную графику доступной пользователю массовой x86– и PowerPC-техники, даже устаревшие «персоналки» – сопоставимыми с X-терминалами, а более новые и мощные – соперниками и с профессиональных графических рабочих станций начального и среднего уровня.
2.1 Оконная система «Икс» и XFree86
Оконная система «Икс» – один из самых больших и успешных проектов в истории компьютерной техники – восходит к 1984 г., когда разработчики двух систем компьютерной графики, претендующих на универсальность – проектов Athena (Массачусетский технологический институт) и W Windowing (Стэнфордский университет) – решили объединить свои усилия. С тех пор практически каждая компания, серьезно занимающаяся графикой, считала своим долгом внести какие-либо разработки в систему, формальным «хозяином» которой в 1987 г. стал вновь созданный X Consortium (ныне Open Group, www.X.org).