Урок 1. Терминал и оболочка: первые команды
Командная строка — способ управлять компьютером текстом: вы набираете команду, нажимаете Enter, система выполняет её и печатает ответ. Окно, в котором это происходит, называют терминалом, а набранные команды читает и выполняет оболочка (по-английски shell). В большинстве систем Linux оболочка по умолчанию — bash.
Зачем это нужно, если есть мышь? У сервера обычно нет рабочего стола, и команды — единственный способ им управлять. Инструкции в интернете тоже даются командами: их можно скопировать и выполнить, а не искать нужное окно настроек. И главное — команды можно записать в файл и запускать снова и снова.
Терминал, консоль и оболочка
Эти слова часто путают, хотя означают разное:
- Терминал (точнее, эмулятор терминала) — программа с окном для текста: GNOME Terminal, Konsole, Xfce Terminal и другие. Сама она команд не понимает: только показывает текст и передаёт нажатия клавиш.
- Консоль — текстовый экран без рабочего стола. На сервере это весь экран; на компьютере с рабочим столом её открывают клавишами
Ctrl+Alt+F3. В разговоре консолью часто называют и окно терминала. - Оболочка — программа, которая читает команды, запускает их и показывает результат. Её язык и изучается в этом курсе.
Оболочек несколько:
| Оболочка | Где встречается |
|---|---|
bash | по умолчанию в Ubuntu, Debian, Linux Mint и многих других системах |
sh | самая простая оболочка по стандарту POSIX; в Ubuntu и Debian под этим именем работает dash |
zsh | по умолчанию в macOS, в Linux ставится отдельно |
Почти все команды курса работают в любой из них, отличия начинаются в скриптах. Свою оболочку можно узнать так:
$ echo $SHELL
/bin/bashКак открыть терминал
- Ubuntu и Linux Mint — клавиши
Ctrl+Alt+T. В любой системе с рабочим столом терминал есть в меню приложений: ищите «Терминал». - Сервер — команды набираются сразу после входа. С другого компьютера к серверу подключаются по SSH — об этом урок Архивы и сеть.
- Windows 10 и 11 — Linux ставится внутри Windows как подсистема WSL: команда
wsl --installв PowerShell, открытом от имени администратора, по умолчанию ставит Ubuntu. - macOS — программа «Терминал». Оболочка там zsh, а у части команд другие ключи.
Приглашение
Терминал ждёт команду после строки-приглашения:
ivan@laptop:~$ivan— имя пользователя;laptop— имя компьютера;~— текущая папка; знак~означает домашнюю папку пользователя, здесь/home/ivan;$— вы работаете обычным пользователем. У администратора root на этом месте стоит#.
В блоках «Терминал» строки, которые начинаются с $, — это команды, остальное — ответ системы. Сам знак $ набирать не нужно. В блоках «Bash» — только команды, без ответа.
Первые команды
$ whoami
ivan
$ pwd
/home/ivan
$ cd /etc
$ pwd
/etc
$ cd ..
$ pwd
/
$ cd -
/etc
$ cd
$ pwd
/home/ivanwhoami— под каким пользователем вы работаете;pwd(print working directory) — в какой папке вы сейчас;cd папка— перейти в папку;cd ..— на уровень выше;cdбез ничего — домой;cd -— в предыдущую папку;ls— показать файлы и папки;ls -l— подробно,ls -a— вместе со скрытыми;echo текст— напечатать текст;clear— очистить экран;exit— закрыть оболочку или отключиться от сервера.
Как устроена команда
Команда — это слова через пробел:
ls -l -a /etcls— имя команды (программы);-lи-a— ключи (их ещё называют опциями): они меняют поведение команды;/etc— аргумент: с чем работать.
Короткие ключи можно склеить: ls -la — то же, что ls -l -a. У многих есть и длинная форма с двумя дефисами: ls --all — то же, что ls -a. Некоторым ключам нужно значение: head -n 5 файл покажет первые пять строк файла.
Регистр букв важен: ls — команда, а LS — ошибка; Notes.txt и notes.txt — два разных файла. Если в имени есть пробел, возьмите имя в кавычки: cd "Рабочий стол". Без кавычек команда получит два аргумента — «Рабочий» и «стол».
Справка
Помнить все ключи не нужно — справка есть в самой системе:
man ls— руководство по команде (manual). Листается стрелками и пробелом,/слово— поиск,n— следующее совпадение,q— выход. Руководства в основном на английском.ls --help— краткая справка прямо в терминале. Этот ключ понимают почти все команды.help cd— справка по командам, встроенным в саму оболочку (cd,echo,history): у многих из них нет отдельной страницыman.type ls— что это за команда: встроенная в оболочку, сокращение (alias) или программа, и где она лежит.
История команд
Оболочка помнит набранные команды:
- стрелки вверх и вниз листают прежние команды — их можно поправить и выполнить снова;
historyпоказывает список с номерами,!125повторяет команду под номером 125;!!— последняя команда целиком. Забылиsudo— наберитеsudo !!;- Ctrl+R — поиск по истории: начните набирать кусок команды, повторное
Ctrl+Rищет дальше, Enter выполняет найденное.
История хранится в файле ~/.bash_history и дописывается, когда оболочка закрывается.
Tab и горячие клавиши
| Клавиши | Что делают |
|---|---|
Tab | дописывает имя команды, файла или папки; если вариантов несколько, второе нажатие показывает их все |
Ctrl+C | прерывает работающую команду. В терминале это не «копировать» |
Ctrl+D | на пустой строке закрывает оболочку, как exit |
Ctrl+L | очищает экран, как clear |
Ctrl+A и Ctrl+E | курсор в начало и в конец строки |
Ctrl+U | стирает всё от курсора до начала строки |
Ctrl+W | стирает слово перед курсором |
Ctrl+Shift+C и Ctrl+Shift+V | копировать и вставить в большинстве терминалов Linux |
Привыкайте к Tab с первого дня: он экономит время и спасает от опечаток в длинных именах.
Частые ошибки
command not found— опечатка в имени или программа не установлена: Ошибка command not found.No such file or directory— нет такого файла или папки: Ошибка No such file or directory.Permission denied— не хватает прав: Ошибка Permission denied.- Вместо приглашения появился знак
>— вы открыли кавычку и не закрыли её. Допишите кавычку и нажмите Enter или прервите вводCtrl+C. - Команда молчит и приглашение не возвращается — она ещё работает или ждёт ввода с клавиатуры (так ведёт себя, например,
catбез имени файла). Прервите еёCtrl+C.
Коротко
- Терминал — окно для текста, оболочка — программа, которая выполняет команды; в Linux это обычно bash.
- Команда — имя, ключи и аргументы через пробел; регистр букв важен, имена с пробелами — в кавычках.
pwd— где вы,ls— что здесь,cd— перейти,cd ..— вверх,cd— домой.- Справка —
man команда,команда --help, для встроенных —help команда. - Tab дописывает имена, стрелки и
Ctrl+Rищут в истории,Ctrl+Cпрерывает команду.