Перейти к тексту
Ресурсы
RU
ВойтиНачать бесплатно

Блоки и строка ввода

Терминал в tTerm – это лента блоков: каждая команда, которую ты запускаешь, становится блоком вместе со своим выводом. Команды ты набираешь в собственной строке ввода tTerm под лентой. Любой блок потом можно найти поиском.

На блоке видны команда и то, чем она закончилась: зелёная точка или красный крестик с кодом возврата, например «код 1». Рядом – сколько она шла, в какой папке выполнялась, ветка git и время запуска. Ниже идёт вывод. У длинного видны последние 400 строк, а кнопка над ними, «Показать 120 строк выше» или «Показать весь вывод», возвращает остальное.

Команда, которая выполняется сейчас, рисуется вживую, как в любом терминале: работают цвета, индикаторы прогресса и запросы пароля, а всё, что ты набираешь, уходит ей. Полноэкранная программа вроде vim или htop занимает всё окно, пока работает, а когда она закроется, лента вернётся. Когда команда закончится, её экран станет текстом, который можно выделить, найти и скопировать.

Чтобы остановить команду, нажми «Стоп» на её блоке или Ctrl+C. Если шелл ждёт продолжения команды, например после незакрытой кавычки или heredoc, на блоке написано «не запущена»: допиши её прямо в блоке или нажми «Стоп».

Наведи мышь на завершённый блок, и появятся его кнопки. Подсказки называют их так:

  • «Копировать команду и вывод» и «Копировать только вывод». Галочка на кнопке значит, что скопировано.
  • «Выполнить ещё раз» запускает команду снова в этом терминале. Новый блок, начинаясь, обводится янтарной рамкой.
  • «Копировать ссылку на этот блок» копирует ссылку, которая открывает ленту на этом блоке и подсвечивает его. Она работает везде, где ты вошёл, и только у тебя.
  • «Добавить заметку к этой команде» открывает поле под ней, Enter сохраняет заметку. Заметки попадают и в лог машины, остаются такими, как написаны, а ответить на них можно кнопкой «Ответить».
  • «Свернуть блок» прячет вывод. Свёрнутый блок пишет, сколько скрыто, например «Скрыто 12 строк», и разворачивается по щелчку.

Строка ввода – своя у tTerm, а не у шелла. Набранное остаётся в ней до Enter, и тогда вся команда целиком уходит в шелл.

  • Shift+Enter начинает новую строку: команда может быть из нескольких строк.
  • ↑ и ↓ листают твою историю со всех устройств: сначала команды, которые ты запускал на этой машине, потом с остальных машин проекта. Набери начало команды, и останутся только те, что с него начинаются. Ctrl+R открывает историю списком с поиском, и выбранная команда встаёт в строку.
  • Пока ты набираешь, продолжение команды из истории видно серым. Tab или → принимает его.
  • Иначе Tab спрашивает машину, чем может быть слово: командой, файлом, папкой или веткой git. Один вариант подставляется сразу, несколько открывают список. Вопрос идёт в обход терминала, поэтому ни в нём, ни в истории шелла его не видно.
  • Ctrl+L очищает ленту, как clear.

Слева от строки видны папка, где ты сейчас, и ветка git, если она есть, и обе работают как кнопки. Папка открывает список папок, где .. ведёт на уровень выше, а можно и набрать путь. Ветка открывает список веток с пометками «текущая» и «удалённая». Выбор выполняется обычной командой cd или git switch и попадает в ленту блоком.

Пока команда работает, в строке написано «Ввод идёт в работающую команду. Щёлкни здесь, чтобы набрать следующую». Следующую команду можно набрать заранее, но Enter сработает, только когда эта закончится, а до того скажет: «Команда ещё выполняется. Подожди или останови её через Ctrl+C в её блоке». В самой строке Ctrl+C стирает набранное, а в пустой строке уходит шеллу.

Несколько команд уничтожают что-то безвозвратно. Такую команду tTerm придерживает и сначала спрашивает в полосе над строкой: что она сделает, на какой машине и что не вернётся. «Эта команда собирается удалить каталог со всем содержимым на web-01. Отменить это нельзя, и в корзину ничего не попадёт». «Выполнить» запускает команду, «Отменить» возвращает её в строку.

tTerm спрашивает перед такими командами:

  • rm с -r и -f – удалить каталог со всем содержимым;
  • mkfs, fdisk, parted, wipefs – перезаписать файловую систему диска;
  • dd с of=/dev/… – записать данные прямо в устройство;
  • DROP DATABASE, DROP TABLE, TRUNCATE TABLE – удалить базу данных или таблицу;
  • shutdown, poweroff, halt, init 0 – выключить машину;
  • reboot, init 6 – перезагрузить машину;
  • systemctl stop, disable или mask для ssh или sshd – остановить службу SSH;
  • ufw deny, ufw reject, iptables с DROP – изменить правила файрвола;
  • userdel, deluser – удалить учётную запись пользователя.

К rm -rf, нацеленной на / или ~, добавляется «Команда нацелена на всю машину. На ней ничего не уцелеет». tTerm спрашивает одинаково, набрал ли ты команду сам, взял из истории или нажал «Выполнить ещё раз».

Классический режим

Раздел «Классический режим»

В классическом режиме терминал обычный. Каждая клавиша идёт прямо в шелл, со своим Tab и своей историей, а шелл рисует всё сам, и приглашение тоже. Блоков нет, и ничего не проверяется: под терминалом так и написано, «В этом режиме tTerm не переспрашивает перед опасными командами».

Переключатель «Строка» и «Классический» стоит справа от строки ввода, а в классическом режиме под терминалом. Шелл при этом работает дальше как был, а выбранный режим этот браузер помнит для всех твоих терминалов.

Шелл, который не умеет отмечать, где начинается команда, например bash старше 4.4, работает только в классическом режиме. Там «Строка» серая, а подсказка переключателя объясняет почему.

Очистка и сворачивание

Раздел «Очистка и сворачивание»

clear (или reset) и Ctrl+L убирают ленту с экрана, но не стирают её: «С экрана убрано 3 блока: показать» вверху возвращает всё обратно. Свёрнутые блоки и очищенная лента остаются такими в этом браузере и после перезагрузки страницы, и после классического режима и обратно. Блоки постарше подгружает «Показать предыдущие команды» вверху, а хранятся блоки 30 дней.

Дважды щёлкни по вкладке терминала или по самому терминалу в боковой панели или на странице проекта и введи имя: до 40 символов, и не одно только число. Enter сохраняет, Esc отменяет. Имя видно в боковой панели, во вкладках и на странице проекта.