Текстовая консоль

Консоль (текстовая), терминал (текстовый), командная строка, все это названия одного и того-же инструмента. Его история уходит корнями в те времена, когда мониторов еще не было и весь вывод компьютера попадал на принтер. Тем не менее даже сейчас этот инструмент остается востребованным во многих задачах.

Взаимодействие пользователя с консолью происходит по следующей схеме: пользователь набирает текстовую команду, нажимает Enter и ожидает ее завершения. Программа, в свою очередь, выводит результаты работы в виде текста. Все команды делятся на две группы: команды оболочки (cmd.exe, bash, shell), и команды на запуск программ. С точки зрения пользователя они не различаются. Для того, чтобы определять режим работы программ, используется так называемые аргументы командной строки. Например при открытии файла в проводнике на самом деле запускается ассоциированная программа, а первым аргументом ей передается имя открываемого файла.

Примеры консольных команд в Windows

Открыть в программе Блокнот файл file.txt

notepad C:\file.txt

Отобразить в консоли информацию о сетевых подключениях:

ipconfig /all

Консольные приложения

Достоинства:

  • Гораздо проще создавать приложения
  • Легко автоматизировать их запуск
  • Вывод программы можно сохранить в виде файла
  • Несколько консольных приложений можно соединять каналами (pipe) передавая данные от одного приложения другому без сохранения в промежуточный файл
  • Легко организовать работу по сети
  • Легко создавать переносимые приложения
  • Очень низкое потребление ресурсов

Недостатки:

  • Как правило нет интерактивного взаимодействия с пользователем
  • Нет никакого WYSIWYG (What You See Is What You Get – «что видишь, то и получишь»)
  • Пользователь не может догадаться о функциях приложения, нужно читать документацию
  • Нужно печатать, а не кликать мышкой

Полумеры:

  • Псевдографический интерфейс (Norton Commander, MC, nano, и др.)
  • Интерактивный ввод и автодополнение в консоли

Как оказаться в консоли

В Windows в меню найти CMD или Командную строку или нажать Win-R, ввести cmd и нажать Выполнить.

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

Команды оболочки можно запускать немедленно, например dir - список файлов в текущей папке или mkdir - создать папку.

Запуск программ и аргументы командной строки

Предположим, что я хочу запустить программу hello.exe передав ей для обработки файл data.txt. Предположим, что в документации к программе hello.exe написано, что входной файл должен передаваться с клюем -f, тогда проще всего запустить эту программу в консоли с использованием абсолютных путей:

С:\Program Files\Hello\hello.exe -f C:\Мои документы\data.txt

Но это не сработает. Система интерпретировала бы эту строку как: вызвать программу С:\Program с аргументами Files\Hello\hello.exe, -f, C:\Мои и документы\data.txt. Правильно будет так:

"С:\Program Files\Hello\hello.exe" -f "C:\Мои документы\data.txt"

О ленивых программистах

Любой файл в компьютере можно адресовать по его полному пути, например c:\test\file.txt, но программисты очень ленивы, с другой стороны очень любят запускать одну и ту же программу несколько раз, поэтому во времена консолей был придуман альтернативный подход: относительное имя файла: file.txt. Относительное, оно относительно текущего каталога c:\test. Текущий каталог обычно отображается в приглашении командной строки и может быть изменен командой cd. Получаем:

cd "C:\Мои документы\data.txt"
"С:\Program Files\Hello\hello.exe" -f data.txt

Но программисты на этом не остановились и появилась идея размещать все исполняемые файлы в определенных папках, а путь к ним прописать в специальном списке (переменная окружения «PATH») и тогда вызывать «hello.exe» можно будет без указания пути:

cd "C:\Мои документы\"
hello.exe -f data.txt

Имена файлов и расширения

По историческим причинам имя файла состоит из двух частей — собственно имя и одно или несколько расширений, разделенных точкой, например file.txt, program.exe, archive.tar.gz, где .txt, .exe и .tar.gz — расширения.

Расширения используются для определения типа файлов и выбора программы для работы с ним. Хотя файл может и не иметь расширения вовсе, обычно оно присутствует. Проводник Windows имеет дурную привычку скрывать расширения для большинства типов файлов. И уж конечно смена расширения никак не повлияет на содержание самого файла.