Современная электронная библиотека ModernLib.Net

Прикладные свободные программы и системы в школе

ModernLib.Net / Программы / Отставнов Максим / Прикладные свободные программы и системы в школе - Чтение (стр. 8)
Автор: Отставнов Максим
Жанр: Программы

 

 


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 — открыть файл только для чтения.

Важнейшие команды:

Переключение между режимами: командный режим — ; режим ввода — 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 — к началу строки; ^ — к первому непробелу; $ — к концу строки;  — к началу следующей строки; — — к началу предыдущей строки; 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. К субпрофилям стандарта относятся следующие пометы:

Помета Расшифровка

МП Среда, обеспечивающая мобильность пользователей

ПИ Среда пакетного исполнения

Р Среда разработки

РАСШ Расширенная среда исполнения

РС Среда разработки на Си

РФ Среда разработки на Фортране

СР Среда разработки

Ф Фортран

Глава 2. Графический пользовательский интерфейс

До середины девяностых существовали отдельно компьютерная графика и отдельно — настольные игры в компьютерную графику. Помнящие историю отечественной школьной информатизации читатели, возможно, сталкивались с чудом техники под названием «цифровой дисплей растровый» (ЦДР), которое удавалось подключить к первому отечественному персональному компьютеру ДВК, чтобы отображать на экране телевизора несколько тысяч пикселов в четырех цветах. В то время в Лабораториях Компьютерной Графики некоторых вузов можно было встретить Графические Рабочие Станции с векторными устройствами и X-терминалами, и даже плоттерами.

Закон Мура тем временем делал свое (в данном случае, не черное, а многоцветное) дело, и к середине девяностых на компьютере с процессором Intel 486 уже запускалась та самая система, которую пятью годами раньше наблюдать можно было лишь на X-терминалах и графических станциях, стоивших каких-то немыслимых (что по тем временам, что сегодня) денег.

Игры в самодельную графику, конечно, продолжаются и сегодня, но в целом мир воссоединился, и особой нужды в таких играх давно нет. Хотя — такова диалектика массовых рынков — именно эти игры (включая игры в буквальном смысле) породили спрос на дешевые устройства (прежде всего, графические акселераторы), которые и делают настоящую компьютерную графику доступной пользователю массовой x86— и PowerPC-техники, даже устаревшие «персоналки» — сопоставимыми с X-терминалами, а более новые и мощные — соперниками и с профессиональных графических рабочих станций начального и среднего уровня.

2.1 Оконная система «Икс» и XFree86

Оконная система «Икс» — один из самых больших и успешных проектов в истории компьютерной техники — восходит к 1984 г., когда разработчики двух систем компьютерной графики, претендующих на универсальность — проектов Athena (Массачусетский технологический институт) и W Windowing (Стэнфордский университет) — решили объединить свои усилия. С тех пор практически каждая компания, серьезно занимающаяся графикой, считала своим долгом внести какие-либо разработки в систему, формальным «хозяином» которой в 1987 г. стал вновь созданный X Consortium (ныне Open Group, www.X.org).

С тех пор «Икс» прошла через одиннадцать основных релизов и множество версий.

Дальнейшее изложение ориентировано на свободную реализацию «Икс», которая называется XFree86, поддерживается одноименным партнерством (www.xfree86.org) и воплощает на сегодня версию 4.2 текущего релиза. XFree86 — самая популярная реализация «Икс», она поставляется в составе подавляющего большинства открытых систем (как свободных, так и несвободных) для x86-совместимых компьютеров, поддерживает беспрецедентно широкий спектр оборудования и, благодаря доступности исходных текстов и пользовательской аудитории в десятки миллионов человек, достаточно «вылизана», по крайней мере, насколько это возможно для такого разнообразия «железа». Несмотря на то, что исторически цифры «86» в названии пакета относятся к соответствующему семейству процессоров от Intel, современные версии XFree86 реализованы для большинства других популярных процессоров. XFree86 доступен и для некоторых альтернативных архитектур ОС, включая «Майкрософт Уиндоуз НТ».

Большинство нижесказанного справедливо для любой реализации «Икс» на любом оборудовании и под любой ОС, список которых можно найти на www.X.org.

2.2 Цветной сэндвич

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

Непосредственно с оборудованием (видеосистемой, устройствами ввода и динамиком) работает Икс-сервер. Эта программа захватывает оборудование и предоставляет его возможности другим программам как ресурсы (собственно, именно поэтому она и называется сервером) по особому протоколу, который так и называется, Икс-протокол. Перечисленное оборудование в совокупности называется Икс-терминалом (аппаратным Икс-терминалом называется и специализированный компьютер, на котором исполняется исключительно Икс-сервер).

Здесь сразу видно отличие «Икс» от большинства самодельных систем графики, используемых в проприетарных системах: взаимодействие Икс-сервера с его многочисленной клиентурой происходит по специфицированному протоколу, который может туннелироваться через TCP/IP и, соответственно, клиенты и сервер могут исполняться на разных узлах Сети. Это означает, что одни и те же программы могут эксплуатироваться в разных топологиях, включая совокупность автономных рабочих станций («персональных компьютеров»), совокупность рабочих станций без данных или бездисковых рабочих станций («локальная сеть»), многопользовательскую систему с Икс-терминалами (или какую-либо гибридную топологию).

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

Большинство пользователей, установив систему, получают в свое распоряжение готовую графическую среду. Мы поступим иначе — будем разбираться с ней по слоям.

2.3 «Чистая» «Икс»

На Рис. 2-1 изображена «голая» оконная система «Икс» — то, с чем большинство пользователей никогда не сталкивается. Запустить ее обычно можно, подав команду: «X &».

Рис. 2-1

Мы видим традиционный серый экран с не менее традиционным курсором в виде буквы «x». Используя мышь или другое координатное устройство, курсор можно перемещать по экрану. На нажатие кнопок мыши и клавиш никакой видимой реакции не следует. И невидимой тоже — сервер готов передавать эти сигналы своим клиентам, а клиенты пока не запущены. Хотя на самом деле некоторые комбинации клавиш «Икс» перехватывает и обрабатывает. Это Zap (Control-Alt-Backspace) — завершение работы сервера (если эта возможность не запрещена при конфигурации), Zoom (Control-Alt-+ и Control-Alt—) — «горячее» переключение доступных видеорежимов. В некоторых ОС (Например, «ГНУ/Линукс») Control-Alt в сочетании с функциональной клавишей освобождает оборудование и передает его на время соответствующей виртуальной консоли.

Рис. 2-2

Воспользуемся последней возможностью, перейдем на консоль и запустим первое клиентское приложение: программу «xterm» (Рис. 2-2). На экране «Икс» появилось окно, а в окне можно видеть интерфейс клиентского приложения. В данном случае интерфейс текстовый, а приложение — эмулятор терминала, на котором запущена диалоговая оболочка системы по умолчанию. С эмулятором можно делать все то же, что и с обычным терминалом: издавать команды, получать результат и запускать другие программы. Если программы текстовые (строчные или оконные), исполняться они будут в том же окне, а если графические (как и сам «xterm») — в отдельных окнах.

Рис. 2-3

Запустим программу «xclock» (Рис. 2-3). При ее запуске мы использовали несколько параметров, задающих геометрию (местоположение и размер) вновь порождаемого окна, цвет его фона и шрифта по умолчанию, толщину и цвет рамки. Эти (и некоторые другие) параметры типичны для программ, построенных на основе графической библиотеки «X Toolkit». Значения параметров, заданные при вызове программы, могут быть перекрыты самим запускающимся приложением, кроме опции геометрии. Дело в том, что окно выделяется клиентскому приложению при запуске, и все доступные ему ресурсы этим окном и ограничены — это свойство X-протокола.


  • Страницы:
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13