+--------------------------+
|.------------------------.|
|| kee_reel@blog:~$ cd    ||
|| си python терминал     ||
|| opengl sql             ||
||                        ||
||                обо_мне ||
|.------------------------.|
+-::--------------------::-+
.--------------------------.
 // /ooooooooooooooooooooo\\ \\ 
 // /ooooooooooooooooooooooo\\ \\ 
//------------------------------\\
\\------------------------------//

Основы работы с командной строкой

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

50 лет назад все пользователи компьютера видели перед собой примерно такую картину:

Старый компьютер с коммандной строкой

Представь, например, что даже какая-нибудь Евлампия Сергеевна из отдела бухгалтерии работала через командную строку, чтобы сформировать квартальный отчёт. Сейчас же в командной строке сидят бородатые сисадмины, красноглазые линуксоиды или хитрые хакеры – по крайней мере такой стереотип сложился в обществе.

Давай с тобой развеем этот стереотип, и ты попробуешь поработать в командной строке. Это даст тебе новую перспективу на то, как работает твой компьютер, и ты научишься:

  • Переходить по директориям
  • Смотреть содержимое текущей директории
  • Переименовывать файлы
  • Копировать файлы
  • Удалять файлы

Будет не сложно, я обещаю :)

Открываем командную строку

В английском языке есть устоявшиеся сокращения:

  • Графическая оболочка – GUI (Graphic User Interface), графический пользовательский интерфейс
  • Командная строка – CLI (Command Line Interface), интерфейс командной строки

Также, командную строку называют “Терминал” (“Terminal”) и “Консоль” (“Console”).

Независимо от того, сидишь ты на MacOS, Windows или Linux, “под капотом” графическая оболочка и командная строка делают одно и то же – взаимодействуют с операционной системой.

Графическая оболочка и командная строка делают одно и то же

Окей, как двигать курсор и нажимать на кнопки ты уже знаешь, а вот какие команды надо в этой консоли писать совершенно не ясно. Тут никакого волшебства – придётся запоминать команды. Это не так сложно как может показаться на первый взгляд, и через пару-десятков повторений ты будешь писать их на автомате.

Чтобы открыть командную строку нужно:

  • MacOS: нажми комбинацию ⌘+Пробел, и введи в окно поиска “Terminal”
  • Windows: нажми комбинацию Windows+R, откроется окно запуска программ, введи в нём “cmd”
  • Linux: нажми комбинацию Ctrl+Alt+T

Появится окно командной строки, в котором ты увидишь надпись:

  • MacOS: имя-компьютера:текущая-директория имя-пользователя$
  • Windows: текущая-директория>
  • Linux: имя-пользователя@имя-компьютера:текущая-директория$

Эта надпись называется Prompt (на русский можно перевести как “приглашение”, но такой термин не используется, а просто говорят “промт”). Самой важной информацией тут является текущая-директория – так как нам необходимо как-то понимать где мы находимся в файловой системе.

Вот, например, как текущая директория выглядит на MacOS в графической оболочке:

Explorer на MacOS

А в командной строке это выглядело бы так:

ML:/users/darwin/downloads/blog darwin$
  • ML – название компьютера
  • /users/darwin/downloads/blog – текущая директория
  • darwin – имя пользователя
  • Все остальные символы нужны только для разделения

По-умолчанию, когда ты открываешь командную строку, ты находишься в своей “домашней” директории. В Linux и macOS это выглядит так:

ML:~ darwin$

В Windows это выглядит так:

C:\Users\darwin>

В ней ещё лежат всякие папки, вроде “Documents”, “Downloads” и прочее.

В Linux и macOS, чтобы сократить запись в Prompt’е, домашняя директория обозначается символом “~” (тильда). То есть в Prompt’e директории “/users/darwin” и “~” значат одно и то же.

Перемещаемся по директориям

Если ты захочешь написать какую-то команду, то она будет дописываться после Prompt’а:

ML:~ darwin$ твоя-команда

В Linux и macOS, чтобы узнать какие папки/файлы у нас есть в текущей директории надо написать:

ls

ls – сокращённо от “list” (список)

Результат будет выглядеть так:

ls на MacOS

В Windows надо написать:

dir

dir – сокращённо от “directory” (директория, папка)

Результат будет выглядеть так:

dir на Windows

Чтобы сменить директорию в графической оболочке мы щёлкали на папки. В командной строке для этого надо написать:

cd directory_name

cd – сокращённо от “change directory” (сменить директорию)

Можно указывать переход сразу через несколько папок: cd Documents/MyFolder/Programming

Чтобы вернуться на предыдующую директорию, надо написать:

cd ..

В Linux и macOS, чтобы перейти в домашнюю директорию, надо написать только “cd”:

cd

В Windows надо написать:

cd %homepath%

Задание на закрепление

  • Вызови ls (или dir, если ты на Windows)
  • Тебе выведется список папок
  • Вызови cd с названием одной из папок (например “cd Downloads”)
  • Посмотри что текущая директория в Prompt’е изменилась
  • Вернись назад (“cd ..”)
  • Посмотри как изменилась текущая директория

Знаешь что сейчас произошло?

  • Ты вызвал команды ls и cd
  • Передал параметр directory_name в команду cd

Теперь официально, ты пользователь командной строки. Дальше ты будешь только узнавать больше команд и параметров.

Перемещаем, копируем и удаляем файлы

Перемещаем

В Linux и macOS, чтобы переместить файл, надо написать:

mv file_name.txt new_path/new_file_name.txt

В Windows надо написать:

move file_name.txt new_path/new_file_name.txt

file_name.txt - это просто пример названия файла. Там может быть что угодно (что у вас есть лежит на компе), например: list_of_best_anime.txt

Можно указать имя файла в текущей директории. Можно ещё указывать абсолютный путь, например: C:\Users\darwin\Documents\file_name.txt

Таким образом можно как перемещать файлы, так и просто переименовывать их. Чтобы переименовать файл, надо не указывать какой-то путь, а просто указать новое имя:

mv file_name.txt new_file_name.txt

Копируем

В Linux и macOS, чтобы копировать файл, надо написать:

cp file_name.txt new_path/copied_file_name.txt

В Windows надо написать:

copy file_name.txt new_path/copied_file_name.txt

Удаляем

В Linux и macOS, чтобы удалить файл, надо написать:

rm file_name.txt

В Windows надо написать:

del file_name.txt

Можно удалять сразу несколько файлов, если указать их через пробел:

rm file_name1.txt file_name2.txt file_name3.txt

Задание на закрепление

  • Создай в блокноте пустой файл и сохрани где-то
  • Перейди через cd в папку, где он сохранён
  • Переименуй файл
  • Проверь через ls (или dir, если ты на Windows), что файл переименовался (можешь даже через проводник проверить)
  • Скопируй через cp (или copy, если ты на Windows) этот файл с новым именем в этой же папке
  • Проверь что он появился
  • Удали оба файла через rm (или del, если ты на Windows)
  • Проверь что они удалились

Вывод

У тебя может возникнуть справедливый вопрос – а зачем это нужно? Отвечаю: для своей первой программы ты не будешь заморачиваться с графическим интерфейсом, и вообще, командная строка это идеальный вариант если:

  • программа слишком простая, чтобы тратить время на графический интерфейс
  • программа слишком сложная, чтобы вместить всю доступную функциональность

В каждом курсе по конкретному языку программирования, который есть на этом сайте, ты будешь начинать со сборки и запуска своей программы через командную строку. Это нужно для того, чтобы ты понимал что происходит “под капотом”, когда IDE выполняет твою программу – это знание очень ценится в разработчиках.

Если что – пиши, я помогу и постараюсь объяснить лучше.