Введение в командную строку (CLI) Linux
Введение
Командная строка (CLI) — это мощный инструмент в Linux, позволяющий программистам на C эффективно управлять файлами, компилировать код, отлаживать программы и автоматизировать задачи.
Основные команды для работы с файловой системой
В Linux все файлы и каталоги организованы в виде древовидной структуры, называемой файловой системой. Вот основные команды для работы с ней:
-
ls— показывает список файлов и каталогов в текущем каталоге.*lscd <директория>— перемещает вас в указанный каталог.*cd /path/to/directorypwd— отображает путь к текущему рабочему каталогу.*pwdmkdir <имя>— создает новый каталог с заданным именем.*mkdir my_directoryrm <имя>— удаляет файл. Для удаления каталога с содержимым используйте флаг-r.*rm file.txt rm -r my_directory # удалить каталог и все его содержимоеcp <файл1> <файл2>— копирует файл в новое место.*cp source_file destination_filemv <файл1> <файл2>— перемещает файл или переименовывает его.mv old_name new_name
Управление правами доступа
В Linux каждый файл и каталог имеет набор прав доступа, контролирующий, кто может читать, изменять или выполнять файл. Это позволяет защитить важные файлы и управлять доступом к ресурсам.
-
chmod— изменяет права доступа к файлу или каталогу.chmod 755 file.shЗдесь
755задает права для владельца, группы и других пользователей. *chown— изменяет владельца и/или группу файла.chown user:group file.shЭта команда полезна, если вы хотите передать владение файлом другому пользователю или группе.
Подробнее про права доступа можно прочитать тут: *жмяк*
Компиляция и запуск программ на C
Для компиляции программ на C в Linux используется компилятор GCC (GNU Compiler Collection), который поддерживает различные флаги, позволяющие настроить процесс компиляции.
-
Компиляция файла:
gcc -o my_program my_program.cФлаг
-oзадает имя выходного файла. Если его не указать, будет создан файлa.out. * Запуск программы:* Флаги для компиляции: *./my_program-Wall— включает отображение всех предупреждений компилятора. Это помогает выявить потенциальные ошибки или некорректные конструкции кода, улучшая качество кода и его безопасность.*gcc -Wall -o my_program my_program.c-lm— добавляет библиотекуmath, которая необходима для использования математических функций, таких какsqrt(),pow()и т.д. Этот флаг требуется для подключения библиотеки, так как по умолчанию компилятор ее не включает.* Компиляция с отладочной информацией: Чтобы добавить отладочную информацию для GDB, используйте флагgcc -o my_program my_program.c -lm-g.gcc -Wall -g -o my_program my_program.c -lm
Флаги -Wall и -lm позволяют создавать более качественный и надежный код, а также подключать необходимые библиотеки для работы с математическими функциями.
Основы работы с GDB для отладки
GDB — это отладчик для программ, написанных на C. Он позволяет запускать программу пошагово, ставить точки останова и отслеживать значения переменных.
-
Запуск программы в GDB:
* Основные команды: *gdb ./my_programrun— запустить программу. *break <номер_строки>— поставить точку останова. *next— выполнить текущую строку и перейти к следующей. *print <переменная>— вывести значение переменной. *quit— выход из GDB.
Автоматизация задач с помощью bash-скриптов
Bash-скрипты позволяют автоматизировать рутинные задачи. Вот пример простого скрипта для компиляции и запуска программы:
#!/bin/bash
gcc -o my_program my_program.c
if [ $? -eq 0 ]; then
echo "Compilation successful."
./my_program
else
echo "Compilation failed."
fi
Скрипт можно запустить командой:
./script.sh
Полезные утилиты
make— утилита для автоматизации сборки программ. Используя Makefile, можно упростить компиляцию больших проектов.-
valgrind— инструмент для выявления утечек памяти:valgrind ./my_program
Основы Git
Git — это система контроля версий, которая помогает отслеживать изменения в коде и работать в команде.
-
Основные команды:
git init # инициализация репозитория git add <файл> # добавление файла в область индексирования git commit -m "Сообщение" # коммит изменений (сохранение изменений с сообщением) git push # отправка изменений в удаленный репозиторий git pull # получение изменений из удаленного репозитория
Заключение
Использование командной строки Linux существенно облегчает разработку, компиляцию и отладку программ на C. Освоение этих базовых команд и утилит ускорит ваш процесс разработки и повысит качество кода.