Введение в командную строку (CLI) Linux

Введение
Командная строка (CLI) — это мощный инструмент в Linux, позволяющий программистам на C эффективно управлять файлами, компилировать код, отлаживать программы и автоматизировать задачи.
Основные команды для работы с файловой системой
В Linux все файлы и каталоги организованы в виде древовидной структуры, называемой файловой системой. Вот основные команды для работы с ней:
-
ls
— показывает список файлов и каталогов в текущем каталоге.*ls
cd <директория>
— перемещает вас в указанный каталог.*cd /path/to/directory
pwd
— отображает путь к текущему рабочему каталогу.*pwd
mkdir <имя>
— создает новый каталог с заданным именем.*mkdir my_directory
rm <имя>
— удаляет файл. Для удаления каталога с содержимым используйте флаг-r
.*rm file.txt rm -r my_directory # удалить каталог и все его содержимое
cp <файл1> <файл2>
— копирует файл в новое место.*cp source_file destination_file
mv <файл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_program
run
— запустить программу. *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. Освоение этих базовых команд и утилит ускорит ваш процесс разработки и повысит качество кода.