Командная строка - с чего начать?

Роман

8-й уровень

Командная строка - с чего начать?

Для начала разберемся что такое командная строка. Коротко, это программа, которая обеспечивает процесс взаимодействия между пользователем и операционной системой посредством текстового интерфейса. Для взаимодействия с командной строкой мы будем использовать консольный эмулятор, он же "Терминал".

Где находится Терминал?

Mac OS X

Заходим в каталог «Программы>Служебные программы» (Applications>Utilities) и запускаем приложение Терминал (Terminal), либо открываем строку поиска Spotlight и набираем слово terminal.

Linux

Заходим в «Приложения>Стандартные>Терминал». По-другому эмулятор можно запустить через окно запуска приложений (в Ubuntu Alt+F2), либо комбинацией клавиш (Ctrl+Alt+T для Ubuntu)

Windows

Тут ситуация несколько сложнее. У вас есть два варианта. Первый (правильный) - установить Linux и забыть обо всех проблемах. Второй - установить свой терминал. Так как эта операционная система по умолчанию предоставляет эмулятор командной строки, непригодный для использования, нам потребуется другой. Мы остановимся на универсальном варианте - Babun. Git, пакетный менеджер, unix инструменты - все это сразу есть внутри и понадобится тебе при разработке.

Основы интерфейса

Запускаем терминал и видим следующую строку. Если ты на ubuntu, то увидишь следущее:

имя_пользователя@имя_машины:~$

Перед вами строка приглашения ввода от (command prompt). Она говорит о том, что командная строка готова к вводу команд. После : указана текущая директория. В Unix-подобных системах домашняя директория отображается как символ тильда ~. И в конце строки — знак доллара $. Это первичный ввод текущего пользователя. Он бывает нескольких видов: - $ - команда запущена от имени текущего пользователя - # - командная строка запущена от суперпользователя (он же root) - > - была введена команда, для выполнения которой необходимо указать какие-либо параметры, и сейчас ожидается ввод этих параметров

Синатксис

Исполняемая комманда имеет определенный синтаксис:

команда -опции аргументы

Для понимания работы рассмотрим пример комманды:

ls -l имя_папки

Что она делает? В данном примере команда ls показывает нам список всех файлов директории. Имя директории передается с помощью аргумента имя_папки. -l это флаг (опция), котороая сообщает команде ls то, что вывод файлов будет происходить в расширенном формате (права, размер, автор, дата изменения). Опции могут иметь 1 или 2 дефиса. При 1 дефисе опция задает односимвольные опции (флаги), например -abc означает три отдельных флага - a, b, c. При 2-х опция задает одну многосимвольную опцию, например --check-permission.

Базовые команды, которые ты должен знать

ls имя_директории 

list. Отображает содержание директории имя_директории

cd путь_директории 

change directory. Меняет текущую директорию на путь_директории. Путь .. возвратит тебя в родительскую папку, ~ - в корневой каталог

pwd

print working directory. Показывает директорию, в которой ты сейчас находишься.

less

Выводит в консоль содержание файла.

cp файл имя_каталога

сopy. Копирует файл в имя_каталога

mv файл имя_каталога

move. Перемещает файл в имя_каталога

rm файл

remove. Удаляет файл

man имя_команды

mannual. Отображает руководство любой команды

sudo имя_команды

super user do. исполняет команду имя_команды от имени суперпользователя

mkdir имя_директории

makedirectory. создает папку имя_директории

Используй Табы

Табы в консоли это очень полезная и удобная штука, избавляющая тебя от необходимости набирать длинную команду или полное имя папки. Как это работает? Набери несколько символов нужной тебе команды и нажми Tab. Если введеных тобой символов будет достаточно для однозначного определения команды, то её недостающие буквы будут автоматически добавлены. Если подходящих по символам команд больше одной, то двойное нажатие Tab выведет список всех доступных. Точно таким же образом это работает с файлами/папками, что просто шикарно.

Используй историю

При разработке ты будешь использовать много разных консольных команд. Все эти команды записываются в историю (файл .bash_history в корневом каталоге). С ее помощью тебе больше не придется вручную набирать длинные или часто повторяющиеся команды, что позволит сэкономить твое время. Самый простой способ перемещения по истории - стрелки вверх и вниз. Чтобы отобразить всю историю введи в консоли:

history

Вот так:

history|grep cd

В консоль выведется список всех команд, где была употреблена команда cd. Пример одной строки из истории

114 cd folder

114 это номер команды. Чтобы вызвать эту команду нужно набрать в терминале !номер_команды

При вводе !! исполнится последняя введеная тобой команда. Ввод команды:

!имя_команды

исполнит последнюю выполненную команду имя_команды.

Перенаправление Ввода/Вывода

Стандартный вывод

По умолчанию стандартный вывод данных показывает их в терминале. Чтобы отправить стандартный вывод в файл сделаем следующее:

history > текстовый_файл.txt

В данном примере результат работы команды ls записан в файл текстовый_файл.txt. При использовании > файл полностью перезаписывается. Чтобы не перезаписывать весь файл и добавить результат в конец используй >>.

Стандартный ввод

Множество команд могут принимать данные с помощью стандартного ввода. Обычно это ввод с клавиатуры, но мы это можем изменить, перенаправив ввод на файл с помощью <:

grep cd < текстовый_файл.txt

Конвеер

С его помощью мы можем передавать стандартный ввод-вывод по целой цепочке команд, т.е. то, что выводит на поток стандартного вывода предыдущий процесс, попадает в поток стандартного ввода следующего процесса. Это мы уже делали примере выше:

history|grep cd

Ссылки для дальнейшего чтения