вторник, 8 января 2013 г.

Использование командного процессора (консоли)

Командный процессор или командный интерпретатор — оболочка операционной системы, обеспечивающая интерфейс командной строки и выполняющая текстовые команды пользователя.
Наиболее используемым командным процессором, применяемый в системах Linux является bash (Bourne Again Shell) - усовершенствованная и модернизированная вариация командной оболочки Bourne shell (shell). Bash, в качестве командной оболочки, входит по умолчанию практически во все дистрибутивы Linux.

Командный процессор sh является важнейшей частью системы, так как используется в основном для запуска сценариев командного процессора. Для интерактивного использования наиболее удобен bash.

Помимо bash, существуют и другие командные консоли:  csh, ksh, zsh и другие, пользователь может сам выбрать для себя наиболее удобную оболочку ОС.

При использовании графической оболочки, используют консоль не напрямую, а с помощью эмулятора терминала (xterm, GNOME — gnome-terminal, KDE — konsole, MATE — mate-terminal, другие: guake, tilda, yakuake, terminator, aterm и много других).

Некоторые консольные команды:
Команды чувствительны к регистру, то есть echo и ECHO — это разные команды.

$ echo $SHELL (вывод названия текущей консоли, $SHELL)
/bin/bash

$ whoami (вывод имени текущего пользователя)
ivanivanov

$ pwd (вывод текущей директории)
/home/ivanivanov

Стандартные сочетания клавиш, используемые в эмуляторах терминала:
[Ctrl][Alt][F1] Переключение на первый консольный терминал
[Ctrl][Alt][F#] Переключение на #ый консольный терминал (#=1..6)
[Ctrl][Alt][F7] Переключение на графический терминал (если таковой запущен)
[Tab] Дополнение текущей последовательности символов, набранной в консоли, до исполняемой команды. Эта особенность сильно облегчает жизнь при наборе команд! Это работает также и при загрузке компьютера через LILO!
[ArrowUp] Просмотр и редактирование буфера истории команд. Для исполнения команды нажмите [Enter].
[Shift][PgUp] Просмотр текста выведенного на консольный терминал и ушедшего за приделы экрана. Перемещение в вверх.
[Shift][PgDown] То же что и выше. Перемещение в вниз.
[Ctrl][Alt][+] (в X-windows) Изменение разрешения. Переключение к следующей конфигурации.
[Ctrl][Alt][-] (В X-windows) Изменение разрешения. Возврат к предыдущей конфигурации.
[Ctrl][Alt][BkSpc] (в X-windows) Убить текущий сервер X-windows (выйти из графической оболочки, уничтожив все процессы).
[Ctrl][Alt][Del] Перезагрузка компьютера.
[Ctrl]c Убить текущий процесс.
[Ctrl]d Выход из текущего терминала (обычно работает).
[Ctrl]d Посылка текущему процессу сигнала [Конец-файла] (конец файла).
[Ctrl]s Остановка вывода на терминал.
[Ctrl]q Возобновление вывода на терминал. Попробуйте эту комбинацию клавиш, если ваш терминал непонятно почему перестал отвечать на ваши запросы.
[Ctrl]z Послать текущий процесс в background.
reset Восстановление значений по умолчанию для "запорченного" терминала (терминал показывает странные символы и неадекватно реагирует на нажатие клавиш). Используйте эту команду если вы попытались вывести на экран бинарный файл. Вероятно вы не сможете увидеть эту команду в процессе ее набора.
[Средняя кнопка мыши] Вставка выделенного курсором текста (это не работает в WordPerfect).
~ Моя домашняя директория. Например cd ~/моя_поддиректория.
. (точка) Текущая директория.
.. (две точки) Родительская директория для текущего каталога.

Некоторые полезные действия с эмулятором терминала: 
$ gnome-terminal --zoom=2 (запуск терминала с увеличенным в 2 раза шрифтом)
$ gnome-terminal --geometry 100x200 (размер запущенного терминала 100 символов и 100 строк)
$ gnome-terminal --tab --tab --tab (запуск терминала с тремя вкладками)

Во время сеанса bash команды добавляются в журнал (файл .bash_history). Количество команд, сохраняемых в журнале, задается в файле $HISTSIZE, а количество команд, хранящихся в файле журнала в данный момент - $HISTFILESIZE
$ echo '$HISTFILE $HISTSIZE $HISTFILESIZE
/home/ivanivanov/.bash_history 500 500

Файл $HISTFILE показывает расположение файла истории .bash_history.

Просмотреть весь журнал, можно с помощью команды history:
$ history
просмотреть последний десять команд:
$ history 10

Некоторые способы восстановления и запуска команд из журнала bash:
$ !! (выполнение предыдущей команды)
$ !100 (выполнение команды под номером 100 в журнале)
$ !ls (выполнение предыдущей команды ls, вместо ls, можно подставить cat и др.)

В командных интерпретаторах существует функция дополнения командной строки, осуществляется он частичным вводом команды и нажатием клавиши tab, примеры:
$ sky <TAB>
$ skype

$ cd /home/iva <TAB>
$ cd /home/ivanivanov

$ echo $HOSTN <TAB>
$ echo $HOSTNAME

Комментариев нет: