Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2026

Приглашение командной строки

Приглашение командной строки – это текст, который печатается в командной строке перед курсором для ввода команды. По приглашению вам нужно научиться определять:

  1. на каком компьютере будут выполняться команды;
  2. чего от вас ждет интерпретатор команд;
  3. какая папка в данный момент является текущей.

1. На каком компьютере выполняются команды?

На компьютерах классов и на сервере kodomo интерпретатором команд является bash. Его приглашение по умолчанию начинается с имени пользователя и короткого имени компьютера, на котором он запушен. Именно на этом компьютере будут выполняться все вводимые команды.

На ваших домашних компьютерах, скорее всего, будет другой интерпретатор команд. В Windows это cmd или powershell. В приглашениях этих интерпретаторов обычно не указано имя компьютера, и заканчивается оно символом >, а не долларом. В MacOS команды обычно интерпретирует zsh, приглашение в котором заканчивается на %.

-- bash на сервере kodomo ждет команду от пользователя test26
test26@kodomo:~$

-- тоже bash, но на компьютере class12
test26@class12:~$

-- а это не bash, точно не kodomo (даже подсветка синтаксиса такого приглашения не понимает)
PS C:\Windows>

-- и это точно не kodomo
user@MacBook ~ %

2. Что происходит в терминале

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

Кроме обычного приглашения командной строки в каждом интерпретаторе предусмотрено "вторичное" приглашение. Оно отличается от основного (в bash это одиночный символ > в начале строки) и означает, что интерпретатор ожидает не ввод новой команды, а продолжение ввода предыдущей. С вами такое может случиться, если вы ошиблись с экранированием специальных символов (про это в практикуме 4) или опечатались при вводе команды. В таком случае проще всего прервать ввод комбинацией Ctrl+C и ввести команду без ошибок.

-- здесь bash ждет продолжения команды из-за специального символа |
test26@kodomo:~$ ls |
>

Полное отсутствие приглашения (когда курсор мигает в самом начале строки) означает, что в данный момент терминал использует не bash, а программа, которую он запустил. Эта программа может либо просто долго работать, либо ждать от пользователя ввода текста в терминал. В первом случае нужно просто подождать. Если вы не ожидаете, что программа может так долго работать, и считаете, что она зависла, или вы вообще случайно запустили что-то не то, используйте комбинацию клавиш Ctrl+C для аварийного прерывания работы программы. В случае успешного прерывания перед вами снова появится приглашение от bash.

-- программа sleep просто ждет указанное число секунд перед завершением
test26@kodomo:~$ sleep 10
<< долгие десять секунд спустя появляется новое приглашение >>
test26@kodomo:~$

-- или можно экстренно прервать sleep с помощью Ctrl+C, если запустили случайно
test26@kodomo:~$ sleep 10
^C
test26@kodomo:~$

Во втором случае программе нужно ввести входные данные с клавиатуры. Для завершения ввода используйте комбинацию Ctrl+D. Если еще не освоили потоки ввода/вывода (практикум 5) и не ожидаете, что программе потребуется ввод данных с клавиатуры, прерывайте выполнение программы с помощью Ctrl+C.

-- если не передать wc имя файла, она будет ждать ввода с клавиатуры
test26@kodomo:~$ wc
какой-то текст
и еще строка
<< нажатие Ctrl+D >>
      2       5      50
test26@kodomo:~$

-- и не только wc
test26@kodomo:~$ head
ls
cd
<< эм.. что происходит? почему не выполняются команды? где приглашение? >>
<< ааа, забыл имя файла для head указать, прерываю на Ctrl+C >>
^C
test26@kodomo:~$

3. Какая папка является текущей?

Умолчательное приглашение командной строки в bash после : и до $ содержит абсолютный путь до текущей папки. Если текущая папка является домашней папкой пользователя или находится где-то внутри нее, то первая часть пути, являющаяся абсолютным путем к домашней папке, заменяется на символ ~ (тильда) для краткости.

test26@kodomo:~$ pwd # текущей папкой является домашняя (~)
/home/students/y26/test26
test26@kodomo:~$ cd term1
test26@kodomo:~/term1$ pwd # текущей является подпапка term1 в домашней директории (~/term1)
/home/students/y26/test26/term1
test26@kodomo:~/term1$ cd /usr/local
test26@kodomo:/usr/local$ pwd # теперь текущая папка не внутри домашней, в приглашении нет тильды (/usr/local)
/usr/local
test26@kodomo:/usr/local$

2026/1/prompt (последним исправлял пользователь is_rusinov 2026-09-17 20:52:30)