Терминал
Есть два способа сделать что-то на компьютере: графический, когда у вас мышь и окошки, и текстовый, когда вы печатаете команды, используя лишь клавиатуру. Обычно текстовый ввод означает работу с терминалом, которой и посвящён этот раздел.
Освоиться в терминале довольно просто, и этот навык обязательно принесёт свои плоды: просто представьте, что у вас наконец-то появился способ переписываться с компьютером без посредников в лице пресловутых менюшек и иконок.
Многие программы, которые мы будем использовать, написаны разработчиками для разработчиков, и существуют только в таком виде. И даже не потому, что текстовые приложения проще писать — всё дело в том, что терминал — это очень мощный интерфейс, который позволяет с лёгкостью комбинировать команды и резво манипулировать любыми данными.
Скопировать и переименовать несколько тысяч файлов? Быстро найти среди них те, которые содержат определённую фразу? Сконвертировать эти файлы в другой формат? А, может, завести будильник? Любое из этих действий можно выполнить одной грамотно составленной командой.
Запуск
Терминал — это обычное приложение, у которого, как и у всего остального, есть своё окно. Давайте познакомимся с ним.
Если у вас Linux или Mac OS, поздравляем — терминал у вас уже есть. Найдите его в меню приложений и запустите.
Например, в виртуальной машине с Kali Linux это делается так: войдите в систему (логин и пароль — kali
), щёлкните по меню в левом верхнем углу и введите в поиск Terminal — искомый пункт называется Terminal Emulator.
А вот на Windows, чтобы терминал появился, сперва нужно установить WSL. После этого в любой директории можно будет нажмать правую кнопку мыши, удерживая Shift, и выберать Открыть оболочку Linux здесь.
Если вместо WSL вы поставили Cygwin, откройте его прямо через меню Пуск.
Видите полупустое окно с текстом? Отлично, двигаемся дальше.
Погружение
Посмотрите внимательно на самую последнюю строчку. То, что вы видите, называется приглашением, и выглядит примерно так (и может отличаться от системы к системе):
В терминале, как и в файловых менеджерах, у вас есть понятие текущей директории — той, с файлами которой работать в данный момент проще всего. Очень хорошо иметь её всегда перед глазами.
Пользоваться терминалом очень просто. Давайте выполним первую команду — посмотрим список всех файлов в текущей директории. Для этого введите ls
и нажмите Enter. Команда отработает, после чего вновь отобразится приглашение:
Посмотреть список файлов в другой директории можно двумя способами. Первый — передать команде аргумент, просто дописав путь после её названия: ls /
. Почти все команды принимают аргумент пути, но так делать не всегда удобно. Вместо того, чтобы указывать путь каждый раз, можно просто сменить текущую директорию. Для этого есть команда cd
. Она тоже принимает аргумент пути. Выполните её, например, вот так: cd /
и вы увидите, что текущая директория в приглашении изменилась.
Кстати, чтобы перейти из директории, скажем, ~/Documents/2020
наверх, в ~/Documents,
не обязательно писать путь целиком. Попробуйте выполнить команду cd ..
и посмотреть, что получится. Таких волшебных значков в терминале не очень много, вот они все:
Символ | Значение | Примечание |
---|---|---|
~ | Домашная папка текущего пользователя | То же, что и /home/<имя пользователя>/ |
. | Текущая директория | /a/b/./ → /b/ |
.. | Директория уровнем выше | /a/b/../ → /a/ |
/ | Разделитель директорий | Корень файловый системы — просто «/» |
Команды
У команд бывают опции. Например, если мы захотим удалить директорию, просто rm dir
сделать не выйдет: rm: cannot remove 'dir': Is a directory
. Чтобы исправить эту ошибку, добавим две опции: опция -r
(recurse) удалит все файлы внутри, а -f
(force) не будет спрашивать подтверждения для каждого файла. Получим команду rm -rf dir
, которая подходит для удаления директорий. Аналогично, флаг -r
подходит и для команды cp
, чтобы копировать целые директории.
Отдельным типом файлов в Linux являются программы — в отличие от Windows, нельзя просто взять .exe
и запустить. Здесь нужно явно указать, что вы хотите сделать файл исполняемым (при этом расширения у него может и не быть вовсе). Это делается командой chmod +x file
(chmod — change mode, +x — eXecutable). После этого для запуска необходимо явно указать, что он лежит в текущей директории: ./file
.
Качаем права и программы
Для некоторых действий, например, установки программ, вам понадобятся права администратора. Пользователь, который может всё, обычно называется root. Чтобы выполнять действия от его имени, перед командой допишите волшебное слово sudo
(англ. substitute user and do — «сменить пользователя и выполнить»).
Установкой команд чаще всего заведует утилита apt
. Чтобы apt
заработал, перед его первым использованием нужно обновить кэш: sudo apt update
. После этого вы можете установить, например утилиту cowsay (англ. что-то про корову): sudo apt install cowsay
, и сразу же воспользоваться ей: cowsay Hi!
.
Как вы уже поняли, существует много команд и флагов для них. Разумеется, запомнить их все попросту невозможно, а гуглить каждую выполняемую команду — неудобно. Однако, прямо в терминал встроена прекрасная справочная система, man (англ. manual — «инструкция»). Попробуйте выполнить команду man rm
. В открывшемся приложении вы увидите описание команды rm
и все её флаги. Чтобы выйти, нужно нажать кнопку q
. В man содержатся справочные материалы для многих команд и приложений — причем не только встроенных, но и тех, что вы установили самостоятельно.
Приложение: часто используемые команды
Команда | Функция |
---|---|
pwd | Путь к текущей директории |
ls <dir> | Список файлов в директории |
cp <afile> <bfile> | Копирование файлов |
mv <afile> <bfile> | Перемещение файлов |
rm <file> | Удаление файла |
cat <file> | Содержимое файла |
file <file> | Тип и формат файла |
chmod <file> | Модификация аттрибутов файла |
sudo <command> | От имени суперпользователя |
man <command> | Инструкция по команде |
whoami | Текущий пользователь |