Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
intro:cmd [2022/08/10 22:46]
root
intro:cmd [2023/01/10 11:21] (текущий)
root
Строка 5: Строка 5:
 Консоль (текстовая), терминал (текстовый), командная строка, все это названия одного и того-же инструмента. Его история уходит корнями в те времена, когда мониторов еще не было и весь вывод компьютера попадал на принтер. Тем не менее даже сейчас этот инструмент остается востребованным во многих задачах. Консоль (текстовая), терминал (текстовый), командная строка, все это названия одного и того-же инструмента. Его история уходит корнями в те времена, когда мониторов еще не было и весь вывод компьютера попадал на принтер. Тем не менее даже сейчас этот инструмент остается востребованным во многих задачах.
  
-Взаимодействие пользователя с консолью происходит по следующей схеме: пользователь набирает текстовую команду, нажимает Enter и ожидает ее завершения. Программа, в свою очередь, выводит результаты работы в виде текста. Все команды делятся на две группы: команды оболочки (cmd.exe, bash, shell), и команды на запуск программ. С точки зрения пользователя они не различаются. Для того, чтобы определять режим работы программ, используется так называемые аргументы командной строки. Например при открытии файла в проводнике на самом деле запускается ассоциированная программа, а первым аргументом ей передается имя открываемого файла.+Взаимодействие пользователя с консолью происходит по следующей схеме: пользователь набирает текстовую команду, нажимает Enter и ожидает ее завершения. Программа, в свою очередь, выводит результаты работы в виде текста. Все команды делятся на две группы: команды оболочки (''cmd.exe''''bash''''shell''), и команды на запуск программ. С точки зрения пользователя они не различаются. Для того, чтобы определять режим работы программ, используется так называемые аргументы командной строки. Например при открытии файла в проводнике на самом деле запускается ассоциированная программа, а первым аргументом ей передается имя открываемого файла.
  
 </div><div slide> </div><div slide>
Строка 51: Строка 51:
 </div><div slide> </div><div slide>
  
-===== Как работать в консоли =====+===== Как оказаться в консоли =====
  
 В Windows в меню найти CMD или Командную строку или нажать Win-R, ввести cmd и нажать Выполнить. В Windows в меню найти CMD или Командную строку или нажать Win-R, ввести cmd и нажать Выполнить.
Строка 57: Строка 57:
 Откроется окно консоли, где будет показано так называемое приглашение. Строка приглашения, как правило, включает имя текущей папки, а также может включать имя пользователя и имя компьютера. Откроется окно консоли, где будет показано так называемое приглашение. Строка приглашения, как правило, включает имя текущей папки, а также может включать имя пользователя и имя компьютера.
  
-Команды оболочки можно запускать немедленно, например "ls" - список файлов в текущей папке или "mkdir- создать папку.+Команды оболочки можно запускать немедленно, например ''dir'' - список файлов в текущей папке или ''mkdir'' - создать папку.
  
-</div><div slide>+==== Запуск программ и аргументы командной строки ====
  
-==== Аргументы командной строки ====+Предположим, что я хочу запустить программу ''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''. Правильно будет так:
  
-</div><div slide+<code
- +"С:\Program Files\Hello\hello.exe" -f "C:\Мои документы\data.txt" 
-==== Текущий каталог ==== +</code>
- +
  
 </div><div slide> </div><div slide>
  
-==== Запуск программ ====+==== О ленивых программистах ====
  
-Предположим, что я хочу запустить программу "hello.exe" передав ей для обработки файл "data.txt". Предположим, что в документации к программе "hello.exe" написано, что входной файл должен передаваться с клюем "-f", тогда проще всего запустить эту программу в консоли с использованием абсолютных путей:+Любой файл в компьютере можно адресовать по его полному пути, например ''c:\test\file.txt''но программисты очень ленивы, с другой стороны очень любят запускать одну и ту же программу несколько раз, поэтому во времена консолей был придуман альтернативный подход: относительное имя файла: ''file.txt''. Относительное, оно относительно текущего каталога ''c:\test''. Текущий каталог обычно отображается в приглашении командной строки и может быть изменен командой ''cd''. Получаем:
  
 <code> <code>
-"С:\Program Files\Hello\hello.exe" -f "C:\Мои документы\data.txt"+cd "C:\Мои документы\data.txt" 
 +"С:\Program Files\Hello\hello.exe" -f data.txt
 </code> </code>
  
-Без кавычек система интерпретировала бы эту строку как: вызвать программу "С:\Program" с аргументами "Files\Hello\hello.exe", "-f", "C:\Мои" и "документы\data.txt"+Но программисты на этом не остановились и появилась идея размещать все исполняемые файлы в определенных папках, а путь к ним прописать в специальном списке (переменная окружения "PATH") и тогда вызывать "hello.exe" можно будет без указания пути:
- +
-Но программисты очень не любят печатать, поэтому еще на заре развития информационных технологий появилась идея размещать все исполняемые файл в определенных папках, а путь к ним прописать в специальном списке (переменная окружения "PATH") и тогда вызывать "hello.exe" можно будет без указания пути +
- +
-  * Путь к папке программы "С:\Program Files\Hello\" можно добавить  +
-  * Если в папке "C:\Мои документы" лежат несколько файлов, то можно сделать эту папку текущей и тогда если у файла не задан абсолютный путь (который начинается с имени диска в Windows и с символа / в Linux и MacOS) то операционная система будет искать его в текущей папке.+
  
 <code> <code>
Строка 97: Строка 95:
 ===== Имена файлов и расширения ===== ===== Имена файлов и расширения =====
  
-По историческим причинам имя файла состоит из двух частей собственно имя и одно или несколько расширений, разделенных точкой, например "file.txt""program.exe""archive.tar.gz", где ".txt"".exeи ".tar.gz" - расширения.+По историческим причинам имя файла состоит из двух частей — собственно имя и одно или несколько расширений, разделенных точкой, например ''file.txt''''program.exe''''archive.tar.gz'', где ''.txt''''.exe'' и ''.tar.gz'' — расширения.
  
-Расширения используются для определения типа файлов и выбора программы для работы с ним. Хотя файл может и не иметь расширения вовсе, обычно оно присутствует. Проводник Windows имеет дурную привычку скрывать расширения для большинства типов файлов.+Расширения используются для определения типа файлов и выбора программы для работы с ним. Хотя файл может и не иметь расширения вовсе, обычно оно присутствует. Проводник Windows имеет дурную привычку скрывать расширения для большинства типов файлов. И уж конечно смена расширения никак не повлияет на содержание самого файла.
  
 </div> </div>