Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
intro:cmd [2021/01/18 11:43]
127.0.0.1 внешнее изменение
intro:cmd [2023/01/10 11:21] (текущий)
root
Строка 1: Строка 1:
-====== Работа с командной строкой ======+<div slide>
  
-Консольный интерфейс против графического+====== Текстовая консоль ====== 
 + 
 +Консоль (текстовая), терминал (текстовый), командная строка, все это названия одного и того-же инструмента. Его история уходит корнями в те времена, когда мониторов еще не было и весь вывод компьютера попадал на принтер. Тем не менее даже сейчас этот инструмент остается востребованным во многих задачах. 
 + 
 +Взаимодействие пользователя с консолью происходит по следующей схеме: пользователь набирает текстовую команду, нажимает Enter и ожидает ее завершения. Программа, в свою очередь, выводит результаты работы в виде текста. Все команды делятся на две группы: команды оболочки (''cmd.exe'', ''bash'', ''shell''), и команды на запуск программ. С точки зрения пользователя они не различаются. Для того, чтобы определять режим работы программ, используется так называемые аргументы командной строки. Например при открытии файла в проводнике на самом деле запускается ассоциированная программа, а первым аргументом ей передается имя открываемого файла. 
 + 
 +</div><div slide> 
 + 
 +===== Примеры консольных команд в Windows ===== 
 + 
 +Открыть в программе Блокнот файл ''file.txt'' 
 + 
 +<code> 
 +notepad C:\file.txt 
 +</code> 
 + 
 +Отобразить в консоли информацию о сетевых подключениях: 
 + 
 +<code> 
 +ipconfig /all 
 +</code> 
 + 
 +</div><div slide> 
 + 
 +===== Консольные приложения =====
  
 Достоинства: Достоинства:
  
-  * Проще создавать приложения +  * Гораздо проще создавать приложения 
-  * Легко автоматизировать +  * Легко автоматизировать их запуск 
-  * Проще создавать переносимые приложения +  * Вывод программы можно сохранить в виде файла 
-  * Меньшее потребление ресурсов+  * Несколько консольных приложений можно соединять каналами (pipe) передавая данные от одного приложения другому без сохранения в промежуточный файл 
 +  * Легко организовать работу по сети 
 +  * Легко создавать переносимые приложения 
 +  * Очень низкое потребление ресурсов
  
 Недостатки: Недостатки:
  
-  * Никакого интерактивного взаимодействия с пользователем +  * Как правило нет интерактивного взаимодействия с пользователем 
-  * Команды, таки, надо знатьпричемкак сами команды, так и аргументы+  * Нет никакого WYSIWYG (What You See Is What You Get – «что видишь, то и получишь») 
 +  * Пользователь не может догадаться о функциях приложениянужно читать документацию 
 +  * Нужно печатать, а не кликать мышкой
  
 Полумеры: Полумеры:
  
   * Псевдографический интерфейс (Norton Commander, MC, nano, и др.)   * Псевдографический интерфейс (Norton Commander, MC, nano, и др.)
-  * Интерактивный ввод+  * Интерактивный ввод и автодополнение в консоли 
 + 
 +</div><div slide> 
 + 
 +===== Как оказаться в консоли ===== 
 + 
 +В Windows в меню найти CMD или Командную строку или нажать Win-R, ввести cmd и нажать Выполнить. 
 + 
 +Откроется окно консоли, где будет показано так называемое приглашение. Строка приглашения, как правило, включает имя текущей папки, а также может включать имя пользователя и имя компьютера. 
 + 
 +Команды оболочки можно запускать немедленно, например ''dir'' - список файлов в текущей папке или ''mkdir'' - создать папку. 
 + 
 +==== Запуск программ и аргументы командной строки ==== 
 + 
 +Предположим, что я хочу запустить программу ''hello.exe'' передав ей для обработки файл ''data.txt''. Предположим, что в документации к программе ''hello.exe'' написано, что входной файл должен передаваться с клюем ''-f'', тогда проще всего запустить эту программу в консоли с использованием абсолютных путей: 
 + 
 +<code> 
 +С:\Program Files\Hello\hello.exe -f C:\Мои документы\data.txt 
 +</code> 
 + 
 +Но это не сработает. Система интерпретировала бы эту строку как: вызвать программу ''С:\Program'' с аргументами ''Files\Hello\hello.exe'', ''-f'', ''C:\Мои'' и ''документы\data.txt''. Правильно будет так: 
 + 
 +<code> 
 +"С:\Program Files\Hello\hello.exe" -f "C:\Мои документы\data.txt" 
 +</code> 
 + 
 +</div><div slide> 
 + 
 +==== О ленивых программистах ==== 
 + 
 +Любой файл в компьютере можно адресовать по его полному пути, например ''c:\test\file.txt'', но программисты очень ленивы, с другой стороны очень любят запускать одну и ту же программу несколько раз, поэтому во времена консолей был придуман альтернативный подход: относительное имя файла: ''file.txt''. Относительное, оно относительно текущего каталога ''c:\test''. Текущий каталог обычно отображается в приглашении командной строки и может быть изменен командой ''cd''. Получаем: 
 + 
 +<code> 
 +cd "C:\Мои документы\data.txt" 
 +"С:\Program Files\Hello\hello.exe" -f data.txt 
 +</code>
  
 +Но программисты на этом не остановились и появилась идея размещать все исполняемые файлы в определенных папках, а путь к ним прописать в специальном списке (переменная окружения "PATH") и тогда вызывать "hello.exe" можно будет без указания пути:
  
-====== Открыть командную строку ======+<code> 
 +cd "C:\Мои документы\" 
 +hello.exe -f data.txt 
 +</code>
  
 +</div><div slide>
  
-абслютный и отнасительный пути текущая рабочая директория+===== Имена файлов и расширения =====
  
-Файлы, имена файлов, расширения+По историческим причинам имя файла состоит из двух частей — собственно имя и одно или несколько расширенийразделенных точкой, например ''file.txt'', ''program.exe'', ''archive.tar.gz'', где ''.txt'', ''.exe'' и ''.tar.gz'' — расширения.
  
 +Расширения используются для определения типа файлов и выбора программы для работы с ним. Хотя файл может и не иметь расширения вовсе, обычно оно присутствует. Проводник Windows имеет дурную привычку скрывать расширения для большинства типов файлов. И уж конечно смена расширения никак не повлияет на содержание самого файла.
  
 +</div>