Основы работы с клавиатурой, командной строкой и оболочкой (интерпретатор команд)
Статья включает:
Так же, как и QNX4, UNIX и DOS, ЗОСРВ «Нейтрино» строится на интерфейсе командной строки. Хотя ЗОСРВ «Нейтрино» включает в себя простой в использовании графический интерфейс, иногда, особенно системному администратору, требуется ввести команды. Рекомендации по выбору подходящего режима — оконного окружения Photon или командной строки — содержатся в Управление запуском ЗОСРВ «Нейтрино».
Для использования командной строки в оконном окружении Photon следует запустить терминал pterm посредством щелчка мыши по пиктограмме «Терминал» в группе инструментов оконного окружения Photon (расположенной у правой границы рабочего пространства пользователя).
Одновременно можно запускать несколько терминалов, при этом в каждом из них могут выполняться многозадачные процессы. Терминалы оконного окружения Photon эмулируют устройства символьного ввода/вывода, поэтому сведения, изложенные в данном разделе, относятся к ним в той же мере, в какой и к физическим символьным устройствам.
После ввода команды она последовательно интерпретируется несколькими процессами:
<Backspace>
и <Ctrl> + C
;
При вводе команды поток символов в первую очередь интерпретируется драйвером символьного устройства. Какой именно драйвер работает, в каждом случае зависит от используемого оборудования.
Обработка нажатий некоторых клавиш может отличаться от описанной в этом разделе в зависимости от конфигурации системы. |
Драйверы устройств символьного ввода/вывода могут функционировать либо в режиме необрабатываемых ("сырых") входных данных (raw input mode), либо в каноническом режиме (canonical mode), или режиме редактируемых входных данных (edited input mode). В режиме "сырых" входных данных все символы передаются приложению по мере их ввода. В режиме редактируемых входных данных приложение получает символы только после завершения ввода всей строки (о чем, как правило, свидетельствует символ возврата каретки).
Некоторым программам (например, vi) требуется информация о том, какие действия может выполнять ваш терминал (возможно ли перемещение курсора, очистка экрана и т.д.). Переменная окружения TERM указывает на тип используемого терминала, а каталог /usr/lib/terminfo
представляет собой базу данных терминалов. В этом каталоге содержится набор подкаталогов (от a до z), в которых хранится информация для соответствующего терминала. Некоторые приложения вместо каталога /usr/lib/terminfo
используют каталог /etc/termcap
, представляющий собой устаревшую однофайловую модель базы данных. Терминалом по умолчанию является qansi-m (QNX-версия терминала ANSI). Более подробные сведения об установке типа терминала см. в Типы терминалов.
При использовании сетевой службы telnet связи между двумя QNX-машинами (под управлением QNX4 или ЗОСРВ «Нейтрино»), для активизации восьмибитового тракта данных следует задавать параметр -8. Если вы подключаетесь к машине с ЗОСРВ «Нейтрино» из машины, управляемой какой-либо другой ОС, и терминал при этом не работает надлежащим образом, завершите telnet и запустите эту утилиту снова с параметром -8.
При запуске telnet из ОС Windows пользуйтесь режимом ansi или vt100, в зависимости от типа терминала. |
В таблице указано, как драйверы устройств символьного ввода/вывода интерпретируют нажатия различных клавиш и их сочетаний (т.е. групп одновременно нажатых клавиш). Драйверы обрабатывают нажатия клавиш сразу после их выполнения.
Отклик системы на работу пользователя с клавиатурой может отличаться от описанного далее, если:
|
При нажатии клавиши <вверх>
или <вниз>
драйвер устройства символьного ввода/вывода передает командному интерпретатору команду "назад" или "вперед", а он, в свою очередь, выполняет предыдущую или последующую команду.
Действие | Клавиша или комбинация клавиш |
---|---|
Переместить курсор влево | <Клавиша влево> |
Переместить курсор вправо | <Клавиша вправо> |
Переместить курсор в начало строки | <Home> |
Переместить курсор в конец строки | <End> |
Удалить символ слева от курсора | <Backspace> |
Удалить символ в месте расположения курсора | <Del> |
Удалить все символы в строке | <Ctrl> + U |
Переключение между режимами вставки и замещения символов (если приложение их поддерживает) | <Ins> |
Завершить ввод строки или начать новую строку | <Enter> |
Вызвать команду повторно | <Клавиша вниз> или <Клавиша вверх> |
Приостановить отображение вывода | <Ctrl> + S |
Возобновить отображение вывода | <Ctrl> + Q |
Попытаться прекратить выполнение процесса | <Ctrl> + C или <Ctrl> + <Break> |
Указать на конец ввода (end of input, EOF) | <Ctrl> + D |
Очистить терминал | <Ctrl> + L |
Адаптер дисплея, дисплей и системная клавиатура в совокупности носят название физической консоли, управляемой драйвером консоли.
Некоторые системы не содержат драйвера консоли. Например, встраиваемые системы могут иметь только драйвер последовательного порта ( devc-ser*). Драйверы devc-con и devc-con-hid в настоящее время поддерживаются только на платформах x86. |
Для возможности взаимодействия пользователя сразу с несколькими приложениями ЗОСРВ «Нейтрино» позволяет запускать несколько сеансов одновременно посредством виртуальных консолей. Эти виртуальные консоли обычно именуются /dev/con1
, /dev/con2
и т.д. Оконное окружение Photon обеспечивает виртуальные консоли даже при отсутствии драйвера консоли в системе (см. Графическое оконное окружение Photon microGUI).
При запуске драйвера devc-con параметр -n задает количество включаемых виртуальных консолей. В настольной системе файл построения образа (buildfile) задает создание четырех консолей при запуске diskboot. Более подробные сведения см. в описании diskboot в Управление запуском ЗОСРВ «Нейтрино». Максимальное количество виртуальных консолей равно девяти.
Привилегированный пользователь (root
) может указать программу, которая должна первоначально запускаться на каждой консоли. Утилита инициализации терминала ( tinit) читает содержимое каталога /etc/config/ttys
, чтобы определить, какие программы нужно запустить на консоли. По умолчанию утилита tinit выполняет команду login только на первой консоли, но может запустить login на любой другой выбранной пользователем консоли. Это означает, что консоль 1 доступна всегда, в то время как другие консоли остаются неактивными, пока пользователь не переключится на одну из них и не нажмет какую-нибудь клавишу.
При увеличении числа виртуальных консолей не забудьте отредактировать файл /etc/config/ttys , чтобы утилита tinit получила информацию о том, какие программы должны запускаться на добавленных консолях. |
На каждой виртуальной консоли может выполняться свое приоритетное приложение, которому требуется весь экран. Клавиатура связана с той виртуальной консолью, которая является видимой (т.е. активной) в данный момент. Пользователь может переключаться с одной консоли на другую и, следовательно, с одного приложения на другое посредством нажатия комбинаций клавиш.
Действие | Комбинация клавиш |
---|---|
Перейти на следующую активную консоль | <Ctrl> + <Alt> + <Enter> или <Ctrl> + <Alt> + + |
Перейти на предыдущую активную консоль | <Ctrl> + <Alt> + - |
Для этих комбинаций клавиш используйте + (плюс) и − (минус) на цифровой клавиатуре. |
Для быстрого перехода на любую консоль можно использовать комбинации клавиш <Ctrl> + <Alt> + n
, где n — цифра, которая соответствует номеру виртуальной консоли. Например, чтобы перейти к консоли /dev/con2
(если она существует), следует нажать <Ctrl> + <Alt> + 2
. Когда пользователь завершает сеанс работы с консолью посредством ввода logout
или exit
или нажатия комбинации клавиш <Ctrl> + D
, эта консоль опять становится нерабочей; она не появляется при циклическом переключении между консолями с помощью сочетаний клавиш. Исключением является консоль 1, на которой по завершении сеанса система обычно производит перезапуск login.
После того как драйвер устройства символьного ввода/вывода обработал введенную пользователем информацию, командная строка передается командному интерпретатору (shell). По умолчанию командным интерпретатором является утилита sh, которая на самом деле в среде ЗОСРВ «Нейтрино» представляет собой ссылку на командный интерпретатор Korn ( ksh). Кроме того, могут использоваться и другие командные интерпретаторы, в том числе компактные, подходящие для встраиваемых систем.
Если описывать в общих чертах, командный интерпретатор разбивает командную строку на лексемы, интерпретирует их и затем вызывает запрошенные пользователем программы. Детали зависят от используемого командного интерпретатора. В данном разделе описывается работа ksh.
Когда пользователь вводит данные через клавиатуру, командный интерпретатор Korn Shell сразу же обрабатывает нажатия клавиш и редактирует командную строку, в том числе выполняет автоматическое завершение набора команд и имен файлов.
После нажатия клавиши <Enter>
командный интерпретатор выполняет следующие действия для обработки введенной командной строки:
Для редактирования командной строки командный интерпретатор Korn поддерживает команды в стиле редактора emacs.
Действие | Комбинация клавиш |
---|---|
Перейти в начало строки | <Ctrl> + A |
Перейти в конец строки | <Ctrl> + E |
Перейти в конец текущего слова | <Esc> F |
Перейти в начало текущего слова | <Esc> B |
Удалить символ в месте расположения курсора | <Ctrl> + D |
Удалить символ слева от курсора | <Ctrl> + H |
Удалить символы от места расположения курсора до конца текущего слова | <Esc> <D> |
Удалить символы от места расположения курсора до конца строки | <Ctrl> + K |
Вставить текст | <Ctrl> + Y |
Как и в редакторе emacs, если для ввода команды применяется клавиша <Ctrl>
, то, кроме нее, должна быть нажата и какая-то другая клавиша (что в целом образует сочетание одновременно нажатых клавиш). Если же для ввода команды применяется клавиша <Esc>
, то в этом случае остальные клавиши нажимаются последовательно, одна после другой. Более подробно см. в разделе "emacs interactive input-line editing" в документации по ksh.
Для обработки этих команд командный интерпретатор ksh использует устройство символьного ввода/вывода в режиме необрабатываемого ввода, но при этом полностью эмулирует работу драйвера по обработке нажатий клавиш. Другие командные интерпретаторы (например, esh) взаимодействуют с устройством символьного ввода/вывода в каноническом режиме (редактируемый ввод данных).
Пользователь может сократить количество нажатий клавиш благодаря механизму завершения набора команд (command completion) и имен файлов (filename completion). Для этого нужно ввести несколько символов, которые однозначно идентифицируют команду или имя файла, и затем дважды нажать клавишу <Esc>
. Система автоматически завершит набор, если это возможно. Например, если вы ввели последовательность символов appb и затем дважды нажали клавишу <Esc>
, то система завершит набор имени команды: appbuilder. Если вы хотите применять клавишу <Tab>
для автоматического завершения набора, следует изменить настройку командного интерпретатора посредством ввода следующей команды:
bind 'ˆI'=complete
либо в командной строке, либо в файле настроек ksh.
Более подробные сведения о команде bind и назначении клавиш см. в разделе emacs interactive input-line editing в документации по ksh. Более подробно о файлах настройки ksh также см. в Настройка командного интерпретатора.
Командный интерпретатор Korn Shell распознает следующие зарезервированные слова и символы. Он использует их для построения составных команд. Например, можно организовать выполнение команд в цикле:
for i in *.c; do cp $i $i.bak; done
case | else | function | then | ! |
---|---|---|---|---|
do | esac | if | time | [[ |
done | fi | in | until | { |
elif | for | select | while | } |
Пользователь может ввести сразу несколько команд, отделяя их друг от друга точкой с запятой (;). Например, для определения текущего рабочего каталога используется команда pwd, а для просмотра содержимого каталога — команда ls. Обе команды можно объединить следующим образом:
Кроме того, для объединения нескольких команд в одной командной строке можно использовать неименованные программные каналы (pwd; ls
|
).
Командный интерпретатор позволяет создавать новые команды или назначать часто применяемые ключи с помощью псевдонимов (alias). Например, ключ -F команды ls позволяет отобразить в конце имен определенные символы, указывающие на то, что файл является исполняемым или представляет собой ссылку, каталог и т.д. Если вы хотите, чтобы команда ls всегда использовалась с этим ключом, создайте псевдоним:
Если же вам понадобится выполнить команду ls этого ключа, то укажите путь к исполняемому файлу или поставьте перед ней символalias ls='ls -F'
\
(обратный слэш). Псевдонимы расширяются на месте, поэтому вы не можете установить аргумент в середину расширяемой формы; если вы хотите сделать это, используйте функцию командного интерпретатора. Например, если вы хотите, чтобы версия команды cd дополнительно сообщала вам где, какой каталог является текущим, наберите приблизительно следующее в ksh: Псевдонимы можно добавлять в файл настроек (более подробную информацию см. в Файл запуска ksh).function my_cd{cd $1pwd}
Командный интерпретатор позволяет использовать сокращенные обозначения вместо различных элементов командной строки. Обработка подстановок производится в следующем порядке:
Символ тильды (˜) интерпретируется командным интерпретатором как ссылка на личный каталог пользователя. Ряд символов (если они есть) между тильдой и следующим слэшем интерпретируется как имя пользователя. Например, строка "~mary/some_file" отсылает к файлу some_file
в личном каталоге пользователя с именем mary
. Если имя пользователя не указано, то подразумевается имя текущего пользователя. Например, строка "~/some_file" отсылает к файлу some_file
в личном каталоге текущего пользователя.
Чтобы включить значение параметра в командную строку, поставьте символ доллара ($
) перед именем параметра. Например, для вывода значения переменной окружения PATH следует ввести:
echo $PATH
Иногда может понадобиться выполнить команду и использовать результат ее выполнения для другой команды. Это можно сделать таким образом:
или в устаревшей форме, с использованием обратной кавычки (backquote):$(команда)
Например, для поиска заданной цепочки символов string во всех С-файлах введите следующее:`команда`
Команда find в заданном каталоге (в данном случае .) и во всех его подкаталогах файлы, имена которых заканчиваются символамиgrep string $(find . -name "*.c")
.c
. В результате подстановки команда grep поиск заданной цепочки символов в файлах, найденных командой find.
Арифметические выражения задаются в командной строке следующим образом:
Например:$((выражение))
echo $((5 * 7))
В арифметических выражениях допустимы только целочисленные значения. |
Фигурные скобки служат для добавления префикса, суффикса или того и другого к нескольким цепочкам символов, например:
где запятые (,) служат для разделения цепочек символов. Например,[prefix]{str1,...,strN}[suffix]
"my_file.{c,o}"
преобразуется в "my_file.c my_file.o"
.
Групповые символы позволяют применять команды не к одному, а к множеству файлов или каталогов.
Значение | Групповой символ |
---|---|
Искать совпадение с любым количеством символов | * |
Искать совпадение с любым одним символом | ? |
Искать совпадение с любым из символов, перечисленных в квадратных скобках (или из диапазона символов, заданного с помощью дефиса) | [] |
Исключить символы, заданные в скобках | ! |
Скрытые файлы, т.е. файлы, имена которых начинаются с точки (например, .profile ), не включаются в поиск по групповым символам, если символ точки не задан. Например, поиск по * не выдает .profile , в отличие от .* . Примеры в таблице ниже иллюстрируют использование групповых символов для копирования групп файлов в каталог /tmp с помощью утилиты cp. |
Если ввести | Утилита cp скопирует |
---|---|
cp f* /tmp | Все файлы, имена которых начинаются с символа f (например, frd.c, flnt) |
cp fred? /tmp | Все файлы, имена которых начинаются с fred и заканчиваются одним любым символом (например, freda, fred3) |
cp fred[123] /tmp | Все файлы, имена которых начинаются с fred и заканчиваются символами 1, 2 или 3 (т.е. fred1, fred2 и fred3) |
cp *.[ch] /tmp | Все файлы, имена которых заканчиваются символами .c или .h (например, frd.c, barn.h) |
cp *.[!o] /tmp | Все файлы, имена которых не заканчиваются символами .o (Кроме тех файлов, имена которых не совпадают с шаблоном по количеству символов (в данном случае не будут скопированы файлы с именами, в которых после точки более одного символа, например .o1, .os или .oo) |
cp *.{html,tex} | Все файлы, имена которых заканчиваются символами .html или .tex |
Большинство команд:
0
), обычно назначенного клавиатуре; 1
), обычно назначенный дисплею; 2
), обычно также назначенный дисплею. При необходимости вы можете отступить от этих правил и применить другие.
Если необходимо | Используйте символ |
---|---|
Прочитать из файла или с другого устройства (перенаправление ввода) | < |
Записать stdout в файл (перенаправление вывода) | > |
Дописать stdout в конец файла | >> |
Например, команда ls выводит список файлов каталога. Если требуется перенаправить вывод ls в файл с именем filelist, введите следующее:
ls > filelist
Также для перенаправления данных можно указать файловый дескриптор. Например, если вы не хотите выводить на экран сообщения об ошибках, перенаправьте stderr в /dev/null
(специальный файл, так называемое "нуль-устройство" (bit bucket), которое поглощает любые записываемые в него данные и при чтении возвращает символ конца файла (end-of-file)):
my_command 2> /dev/null
Также можно использовать неименованные программные каналы ( pipe) (|) для формирования составных команд, например:
Такие программы, как grep, sort и wc (утилита для подсчета символов, слов и строк), которые производят чтение из стандартного потока ввода и запись в стандартный поток вывода, носят название фильтров (filter).grep 'some term' *.html | sort -u | wc -l
Некоторые символы могут принимать особый смысл для командного интерпретатора в зависимости от контекста. Для того чтобы командный интерпретатор обработал включенные в командную строку специальные символы как обычные, скорее всего, потребуется отменить их особое значение с помощью кавычек (quote), см. также таблицу ниже. Следующие символы должны быть заключены в кавычки, если необходимо исключить их специальный смысл:
| $ ( " ) & ` ; \ ' табуляция новая_строка пробел
Следующие символы могут потребовать применения кавычек в зависимости от контекста:
* ? [ # ˜ = %
Для отмены особого значения | Действие |
---|---|
Одиночного символа | Поставить перед ним один символ обратного слэша (\ ) |
Всех специальных символов внутри цепочки символов | Заключить всю цепочку символов в одинарные кавычки |
Всех специальных символов внутри цепочки символов, кроме $ , ` и обратного слэша | Заключить всю цепочку символов в двойные кавычки |
Например, следующие команды производят поиск всех экземпляров цепочки символов "ZOSRV Neutrino" в файле chapter1.html:
grep ZOSRV\ Neutrino chapter1.htmlgrep 'ZOSRV Neutrino' chapter1.htmlgrep "ZOSRV Neutrino" chapter1.html
Однако команда:
grep ZOSRV Neutrino chapter1.html
будет выполнять поиск цепочки символов "ZOSRV" в файлах Neutrino и chapter1.html. Сложные команды могут потребовать применения вложенных кавычек. Например:
find -name "*.html" | xargs grep -l '"ZOSRV.*Neutrino"' | less
Эта команда выдает список всех HTML-файлов, содержащих символы ZOSRV, за которыми следует цепочка любых символов, завершающаяся символами Neutrino. Команда find список всех файлов с расширением html и передает его команде xargs, которая, в свою очередь, выполняет команду grep с каждым файлом из списка. Весь вывод команды xargs передается команде less, которая постранично отображает информацию на дисплее. На примере данной команды рассмотрим, как кавычки применяются различным образом для управления обработкой специальных символов:
*.html
не заключить в кавычки, то командный интерпретатор истолкует символ *
и передаст команде find список файлов с расширением html в текущем каталоге. Если цепочку символов *.html
заключить в кавычки, то командный интерпретатор передаст ее команде find "как есть" для поиска файла с заданным расширением в данном каталоге и всех его подкаталогах; xargs grep -l '"ZOSRV.*Neutrino"'
find -name "*.html" | xargs 'grep -l "ZOSRV.*Neutrino" | less'
передает команду:
grep -l "ZOSRV.*Neutrino" | less
команде xargs, которая будет давать совершенно иные результаты (если она вообще будет работать).
Более подробные сведения см. в разделе "Заключение в кавычки" в документации по ksh.
Командный интерпретатор позволяет повторно вызывать ранее введенные команды. Для перемещения по истории сохраненных команд (history buffer) используйте клавиши <↑>
и <↓>
. Вы можете отредактировать команду, если необходимо, и затем нажать клавишу <Enter>
, чтобы выполнить ее снова. Командный интерпретатор также имеет встроенную команду fc, которая предназначена для отображения и редактирования ранее введенных команд, а также псевдоним r команды fc, который служит для повторного выполнения ранее использованной команды. Например:
повторно выполняет последнюю команду, имя которой начинается сr последовательность_символов
последовательности_символов
.
Команды командного интерпретатора можно сохранить в текстовом файле (называемом сценарием (shell script)), предназначенном для исполнения в пакетном режиме (batch mode). Более подробные сведения см. в Написание сценариев командного интерпретатора.
После обработки специальных символов командным интерпретатором остается информация, которая, как правило, состоит из команд и их аргументов. Большинство команд реализуется с помощью соответствующих системных исполняемых файлов, но некоторые команды (например, cd) встроены в командный интерпретатор.
Пользователь может хранить в системе несколько исполняемых файлов с одним именем. С помощью переменной окружения PATH командный интерпретатор определяет, какую версию следует использовать.
Переменная PATH содержит список каталогов, разделенных двоеточиями (:) и расположенных в том порядке, в котором вы хотите, чтобы командный интерпретатор выполнял поиск исполняемых файлов. Для просмотра значения переменной PATH следует ввести:
echo $PATH
В переменную PATH можно включить текущий каталог (.), но это может привести к уязвимости перед вирусами типа "троянский конь". Например, если . стоит в начале списка, хранимого в PATH, то командный интерпретатор будет выполнять поиск в первую очередь в текущем каталоге. Злонамеренный пользователь может записать в каталог программу-ловушку с именем ls. Если вы хотите включить текущий каталог в переменную PATH, поместите его после каталогов, содержащих часто используемые утилиты. |
Для получения сведений о задании переменной PATH см. Типы терминалов. Чтобы определить, какую именно версию команды выберет командный интерпретатор, используйте команду which. Например:
$ which ls/bin/ls
Чтобы получить более подробные сведения, можно использовать ключи командной строки:
$ which -laf ls-rwxrwxr-x 1 root root 19272 May 03 2002 /bin/ls
Если же применить это к команде, которая встроена в интерпретатор, то which сможет найти ее:
$ which cdwhich: no cd in /bin:/usr/bin:/usr/photon/bin:/opt/bin
Команда whence (встроенная команда ksh) отображает информацию о том, как заданная команда или псевдоним интерпретируется командным интерпретатором. Например, если существует псевдоним для ls, то результат может быть, например, следующим:
$ whence ls'ls -F'
Команда сопровождается синтаксическим описанием, поясняющем, как пользоваться командой. Для большинства команд это описание состоит из следующих частей:
Для описания синтаксиса команд используются некоторые специальные символы:
Конечно, при вызове команды вам не нужно вводить эти символы. Например, команда more имеет следующее описание синтаксиса:
more [-ceisu] [-n number] [-p pattern] [-/ pattern] [-t tag] [-x tabstop] [file...]
Ключи, которые не требуют аргумента, можно объединять. Например, вышеприведенная цепочка -ceisu означает сокращение от -c -e -i -s -u. Если аргумент команды начинается с дефиса, то для обозначения конца списка ключей следует указать двойной дефис, например:
ls -l -- -my_file
Подробные описания утилит можно найти в данной документации. Однако, если вам нужно получить краткую подсказку по синтаксису и допустимым ключам команды, вы можете воспользоваться командой use (аналогична команде man в UNIX и Linux), чтобы получить справочную информацию в интерактивном режиме (online usage message) по использованию утилиты. Например, для получения сведений о команде more введите:
Если вы запрашиваете сведения об использовании программы, которая не находится ни в одном из каталогов, перечисленных в переменной PATH или не содержит в себе справочное сообщение, команда use выдаст сообщение об ошибке. Чтобы получить более подробные сведения о команде use, введитеuse more
use
use
.
Если машины работают в сети Qnet (см. Прозрачная распределенная сеть Qnet), вы можете выполнять команды на другой машине, т.е. применять удаленное выполнение. Например:
где /net/dasher означает имя узла, на котором команда должна быть выполнена. Когда вы вызываете команду на другом узле, ее стандартные потоки ввода, вывода и ошибок отображаются на экране консоли (или терминале), за исключением случаев, когда эти потоки явно перенаправлены на другое устройство. Для выполнения команды на tty-устройстве следует задать ключ -t и имя терминала. Например:on -n /net/dasher date
Более подробные сведения см. в описании команды on.on -t con3 login root
По умолчанию запускаемая пользователем утилита или другая программа получает тот же приоритет, что и родительский процесс. (В действительности приоритеты назначаются не процессам, а потокам.) Определить приоритет какого-либо потока можно с помощью команды pidin (сокр. от Process ID INformation). Чтобы задать приоритет вручную, используйте команду on с ключом -p. Чтобы задать относительный приоритет, используйте команду nice.
В таблице приведен список наиболее часто используемых команд ЗОСРВ «Нейтрино».
Действие | Команда |
---|---|
Определить текущий каталог | pwd (встроенная команда интерпретатора ksh) |
Изменить каталог | cd (встроенная команда интерпретатора ksh) |
Вывести список содержимого каталога | ls |
Переименовать (переместить) файлы и каталоги | mv |
Удалить файлы | rm |
Копировать файлы и файловые иерархии | cp или pax |
Создать каталоги | mkdir |
Удалить каталоги | rmdir |
Объединить и отобразить файлы | cat |
Отобразить вывод постранично | less more |
Найти файлы в соответствии с заданным критерием поиска | find |
Изменить права доступа/атрибуты файла | chmod |
Создать жесткую или символьную ссылку | ln |
Создать "архив на магнитной ленте" ("tape archive") | tar или pax |
Извлечь файлы из файла .tar | tar |
Извлечь файлы из файла .tar.gz или .tgz | gunzip имя_файла | pax -r или tar -xzf имя_файла |
Для изменения языковой раскладки клавиатуры в оконном окружении Photon вы можете использовать команду phlocale (которая также позволяет изменять некоторые другие настройки языковой поддержки). В каталоге /usr/photon/keyboard
находятся раскладки для разных языков (например, немецкого, французского), а также разных версий клавиатуры Дворжака (некоторые считают эту схему клавиатуры более эффективной, чем стандартная схема QWERTY). Если необходимая раскладка не поддерживается, вы можете воспользоваться командой mkkbd создания новой раскладки. Некоторые схемы клавиатур (например, для французского и немецкого языков) включают клавиши для добавления знаков акцента, которые не создают отдельных символов. В ЗОСРВ «Нейтрино» такие клавиши считаются "слепыми". При нажатии "слепой" клавиши, после которого следует нажатие другой клавиши, происходит модификация, в результате которой второй символ получает знак акцента. Например, для ввода символа Ü во французской схеме клавиатуры следует нажать <Shift> + [
и затем <Shift> + U
. Кроме того, сложные символы можно создавать путем нажатия и отпускания клавиши <Alt>
с последующим нажатием двух клавиш или сочетания клавиш. Например, для ввода символа Ü в английской (США) схеме клавиатуры вы можете нажать и отпустить клавишу <Alt>
и затем применить комбинацию клавиш <Shift> + <двойная кавычка>
и после него – <Shift> + U
.
Пользователю, знакомому с Microsoft Windows, может быть, полезно знать эквиваленты основных команд и переменных DOS, существующих в ЗОСРВ «Нейтрино».
В таблице ниже приведены некоторые основные команды MS-DOS и их эквиваленты в ЗОСРВ «Нейтрино».
Команда DOS | Команда ЗОСРВ «Нейтрино» |
---|---|
attrib | ls -l, chmod и ls -a |
Командные файлы | Сценарии командного интерпретатора (см. Написание сценариев командного интерпретатора или документацию по командному интерпретатору ksh) |
cacls | ls -l |
call сценарий | ksh сценарий Если сценарий начинается с #!/bin/sh , его можно вызывать как обычную программу; например, сценарий (без добавления префикса sh или ksh) |
chdir | cd (встроенная команда интерпретатора ksh) |
chkdsk | Для дисковой файловой системы QNX4 (Нейтрино) используется команда chkfsys; для файловой системы FAT в DOS применяется команда chkdosfs |
cls | clear |
cmd | ksh |
command | ksh |
comp | cmp или diff |
copy | cp или pax |
date | date и rtc (Для изменения даты и времени аппаратных часов следует использовать команду rtc) |
del | rm |
dir | ls |
erase | rm |
diskcomp | См. далее в этой статье |
diskpart | fdisk [команда] |
driverquery | См. Устранение неполадок |
fc | cmp или diff |
find | grep -i |
findstr | grep |
format | fdformat и dinit |
ftype | Ассоциирование типов файлов выполняется программой pfm. См. Просмотр файлов с помощью администратора файлов |
getmac | См. ifconfig, netstat; а также ls /dev/io-net |
help | use |
logman | tracelogger |
lpq | lprq |
lpr | lpr |
md | mkdir |
mode | stty |
move | mv |
path | echo $PATH, export PATH=новый путь (см. подраздел "Утилиты" ранее в этой статье и страницу ksh) |
lpr | |
query | sin(), pidin и ps |
rem | # |
rename | mv |
replace | cp -x |
runas | su |
schtasks | crontab |
shutdown | shutdown |
sort | sort |
taskkill | kill или slay |
tasklist | sin(), pidin и ps |
time | date и rtc |
tracerpt | traceprinter |
tracert | traceroute |
type | cat |
ver | uname -a |
xcopy | cp или pax |
Следующие команды ЗОСРВ «Нейтрино» являются эквивалентом команды DOS diskcomp:
cp /dev/fd0 referencecopy
cmp referencecopy /dev/fd0
cp referencecopy /dev/fd0
В таблице ниже приведены некоторые встроенные локальные переменные командного интерпретатора MS-DOS и их эквиваленты (переменные окружения и команды) в ЗОСРВ «Нейтрино».
Переменные командного интерпретатора DOS | Эквивалент в ЗОСРВ «Нейтрино» |
---|---|
CD% | Переменная окружения PWD, pwd |
COMPUTERNAME% | Переменная окружения HOSTNAME |
COMSPEC% | Переменная окружения SHELL |
DATE% | Запуск утилиты date: $(date) |
ERRORLEVEL% | $? (см. ksh) |
HOMEDRIVE% | В ЗОСРВ «Нейтрино» обозначения дисков не используются. См. HOMEPATH% |
HOMEPATH% | Переменная окружения HOME |
OS% | Запуск утилиты uname: $(uname) |
PATH% | Переменная окружения PATH |
PATHEXT% | В ЗОСРВ «Нейтрино» расширения файлов рассматриваются как часть имени файла. Разрешение на выполнение определяется правами доступа к файлу. См. chmod |
PROCESSOR_ARCHITECTURE% | Запуск утилиты uname: $(uname -p) |
PROCESSOR_IDENTIFIER% | Запуск утилиты sin: $(sin info) |
PROMPT% | Переменные окружения PS1, PS2 (см. ksh) |
RANDOM% | Переменная окружения RANDOM |
SYSTEMDRIVE% | В ЗОСРВ «Нейтрино» обозначения дисков не используются. Корнем системы всегда является / |
SYSTEMROOT% | Корнем системы всегда является / |
TEMP% | Переменная окружения TMPDIR |
TMP% | Переменная окружения TMPDIR |
TIME% | Запуск утилиты date: $(date) |
USERNAME% | Переменная окружения LOGNAME |
Далее приводятся ответы на некоторые вопросы из тех, которые могут у вас возникнуть при работе с командной строкой.
./test
). ./my_program
). Более подробные сведения см. в подразделе "Утилиты" ранее в этой статье. root
) имеет другое значение переменной окружения PATH, которое включает в себя такие каталоги, как /sbin
и /usr/sbin
. Эти каталоги содержат исполняемые модули и администраторы, которые, как правило, может использовать только root
. Если вы вошли в систему не как привилегированный пользователь, вы, тем не менее, можете запускать некоторые утилиты из каталога /sbin
, если имеете соответствующие разрешения, но при этом вы должны либо указать полный путь (например, /sbin/logger
), либо добавить каталог в переменную окружения PATH. --
) как признак "конца цепочки ключей" ("end of options"), поэтому вы можете указать его перед именем вашего файла: head -- -my_file
/usr/lib/terminfo
(или, возможно, /etc/termcap
). См. подраздел "Поддержка терминалов" ранее в этой статье.
Предыдущий раздел: перейти