К содержимому
ИС30

Поиск по сайту

Конспекты, лабы, квизы, ЧаВо и страницы

Войти
Основы программированияСеминар7 сентября 2026 г.

Семинар 7 сентября: терминал, компиляция и CMake

Навигация и работа с файлами в терминале, флаги команд, конвейеры и перенаправление вывода, установка пакетов через apt, компиляция clang++ и сборка проекта через CMake.

Неофициальный онлайн-семинар для тех, кто впервые работает в терминале. Цель — к первой лабе уверенно ходить по файловой системе, компилировать программу вручную и собирать проект через CMake, потому что именно так устроены заготовки лаб в GitHub Classroom.

Как читать команды

Команда состоит из имени, флагов и аргументов: ls -a /home. Короткие флаги пишутся через один дефис (-a), длинные — через два (--all). Полный список флагов любой команды даёт man <команда>, выход из справки — клавиша q.

1. Навигация и просмотр

КомандаЧто делает
pwdпоказать путь к текущей директории
lsсодержимое текущей директории
ls -aто же, включая скрытые файлы (имена начинаются с точки)
cd <путь>перейти в другую директорию
cd ..вернуться на уровень выше
cat <файл>показать содержимое файла
clearочистить терминал
man <команда>справка по команде и её флагам

2. Файлы и директории

КомандаЧто делает
touch <файл>создать пустой файл
mkdir <имя>создать директорию
cp <файл> <папка>скопировать файл в папку
mv <файл> <папка>переместить файл в папку
mv <файл> <новое имя>переименовать
rm <файл>удалить файл
rm -r <директория>удалить директорию со всем содержимым
echo <текст> > <файл>записать текст в файл
Удаление без корзины

rm и rm -r удаляют сразу и навсегда, подтверждения нет. Перед rm -r проверьте через pwd и ls, где вы находитесь и что собираетесь удалять.

3. Конвейеры и перенаправление

Символ | передаёт вывод одной команды на вход другой, а > записывает вывод в файл вместо экрана:

cat student.txt | sort | head -n 3 > students-processed.txt

Открыть student.txt, отсортировать строки, взять первые три и записать результат в students-processed.txt. Файл создаётся или перезаписывается целиком.

cat student.txt | grep a

Вывести только те строки файла, которые содержат букву a.

Так из маленьких команд собираются обработчики данных: каждая делает одно действие, а конвейер соединяет их в цепочку.

4. Пакеты и права

КомандаЧто делает
sudo <команда>выполнить команду от суперпользователя
sudo apt updateобновить список доступных пакетов
sudo apt install <пакеты>установить пакеты

Установка чего-либо в систему требует прав администратора, поэтому apt запускается через sudo. Перед первой установкой обновите список пакетов.

5. Компиляция и сборка

Скомпилировать один файл и запустить результат:

clang++ main.cpp            # результат — файл a.out в текущей директории
./a.out                     # запустить: ./ означает «из текущей директории»
clang++ -o hello main.cpp   # назвать исполняемый файл hello
./hello

Проект из нескольких файлов собирается через CMake, который по описанию проекта сам вызывает компилятор в нужном порядке:

cmake -B build        # подготовить сборку в папке build
cmake --build build   # собрать

Первая команда читает CMakeLists.txt и создаёт папку build с файлами сборки, вторая компилирует и линкует программу. После правок в коде достаточно повторять только вторую команду.

Частые ошибки

  1. Запуск программы по имени без ./. Терминал ищет команды в системных папках, а не в текущей; для локального файла нужен явный путь.
  2. cd в несуществующую или неправильно написанную папку. Проверяйте ls перед переходом; регистр букв в именах важен.
  3. > вместо |. Стрелка пишет в файл и перезаписывает его, вертикальная черта передаёт вывод следующей команде.
  4. apt install без sudo. Без прав администратора установка не сработает.
  5. Правка кода и запуск старого исполняемого файла. После изменений нужно пересобрать: clang++ заново или cmake --build build.

Мини-тренажёр

  1. Что выведет pwd сразу после cd .., если вы были в /home/user/lab1?
  2. Как создать папку src, а в ней пустой файл main.cpp, двумя командами?
  3. Что делает cat names.txt | sort | head -n 5?
  4. Чем отличаются clang++ main.cpp и clang++ -o app main.cpp?
  5. Какие две команды собирают проект с CMakeLists.txt с нуля?
Ответы
  1. /home/user.
  2. mkdir src и touch src/main.cpp.
  3. Читает файл, сортирует строки и печатает первые пять.
  4. Первая создаёт исполняемый файл a.out, вторая — с именем app.
  5. cmake -B build, затем cmake --build build.

Шпаргалка

ЗадачаКоманда
Где яpwd
Что здесь лежитls, ls -a
Перейтиcd <путь>, cd ..
Создатьtouch <файл>, mkdir <папка>
Скопировать, переместить, переименоватьcp, mv
Удалитьrm <файл>, rm -r <папка>
Показать файлcat <файл>
Конвейер и запись в файлcmd1 | cmd2, cmd > файл
Фильтр и сортировкаgrep <текст>, sort, head -n N
Установить пакетsudo apt update, sudo apt install <пакет>
Скомпилироватьclang++ -o hello main.cpp, запуск ./hello
Собрать через CMakecmake -B build, cmake --build build

Проверь себя

8 вопросов по материалу лекции. Результаты хранятся только в вашем браузере.

8 вопросов о командах терминала, конвейерах, компиляции clang++ и сборке через CMake.

  • 8 вопросов
  • Результат виден сразу после каждого ответа
  • Порядок вопросов случайный

Комментарии0

Пока никто ничего не написал.

Войдите, чтобы оставить комментарий