Перейти к содержанию

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

CLI

Введение

Командная строка (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() и т.д. Этот флаг требуется для подключения библиотеки, так как по умолчанию компилятор ее не включает.

    gcc -o my_program my_program.c -lm
    
    * Компиляция с отладочной информацией: Чтобы добавить отладочную информацию для GDB, используйте флаг -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. Освоение этих базовых команд и утилит ускорит ваш процесс разработки и повысит качество кода.