1. Форумный чат переехал в Telegram.
  2. В сообществе нашего форума Вконтакте создан раздел по продаже электронных компонентов.
    Каждый может продать в нем свои залежавшиеся детали. Подробности здесь.

Туториал Начало программирования в системе Linux - Hello World...

Тема в разделе "Linux", создана пользователем koteika, 17 июл 2015.

  1. koteika

    koteika В доску свой

    Сообщения:
    769
    Симпатии:
    120
    Род занятий:
    программирование
    Всем привет) Странствующие и обычные пингвинятники... Решил написать пару уроков по программированию на языке С, в такой операционной системе как Linux:penguin:
    Чему научимся? Напишем простую программу "Hello World", научимся собирать файлы в терминале ручками, так же автоматизируем сборку проекта с помощью make файла...

    На данный момент использую операционную систему Arch установленную в виртуальную машину(патамушта на работе)..

    Что нам нужно для этого? первым делам нам нужен компилятор языка С. Почти всегда он установлен и идет сразу с системой как жизненно важная программа..

    Проверим версию компилятора набрав команду # gcc -v, и узнаем как обстоят дела у нас с компилятором... У меня получилась следующая картина:
    [​IMG]

    То есть видим что все нормально..

    Теперь нам нужен текстовый редактор, подойдет любой.. Графический или консольный. я буду использовать nano.
    Для создания файла набираем команду:
    Код:
    # nano main.c
    Можно установить любой другой, например vim, использовать встроенный в mc, либо графические gedit, sublime, atom и т.д. начинать советую именно с консольного варианта, что бы проникнуться всей душевностью программирования под линуксом. Опыт работы в таких редакторах пригодиться когда придется настраивать какие конфиги в системе, или вдруг система упадет и придется что то править.

    Как выглядят такие редакторы(синий это редактор встроенный в файловый менеджер mc, далее nano и последним идет текстовый комбайн vim):

    mc.JPG nano.JPG vim.JPG

    Vim, или как его иногда зовут vi, является достаточно мощным средством для работы с текстовыми документами, и гибок в настройке.

    Для его установки набираем команду:

    Код:
    для пользователей ubuntu, debian, mint и т.д
    #sudo apt-get install  vim
    
    для пользователей arch
    #pacman -S vim
    В комплекте идет учебник для обучению работу в редакторе vim, для его запуска набираем:
    Код:
    #vimtutor
    Он на русском языке, что удобно для изучения..:
    vimtutor.JPG

    Далее полезно знать о системе справок в linux.. Такая полезная штука как man.. Эта система рулит всей справочной системой о всех программах, функциях ОС Linux.

    Более подробно о ней можно узнать набрав команду:
    Код:
    #man man
    И справка расскажет о самой себе...

    Для того что бы узнать о какой интересующей программе, набираем следующее:
    Код:
    #man что нас интересует
    
    например
    #man vim - расскажет о редакторе vim
    #man printf - расскажет о функции форматированного вывода printf
    man vim.JPG man printf.JPG

    Так идем дальшееее... Для быстрого просмотра текстовых файлов(и не только) можно использовать команду:
    Код:
    #cat имя файла
    
    например
    #cat main.c - выведет содержимое файла main.c в консоль 
    Ну для начала думаю хватит...

    Начнем как говориться с первой программы всех программистов - Hello World, Скажем привет Мир) Привет Тукс)

    Создадим файл main.c, наберем в редакторе следующий код:

    Код:
    /*подключаем стандартную библиотеку ввода-вывода*/
    #include <stdio.h>
    /*главная функция main*/
    int main(void){
    /*выводим в консоль фразу Hello Linux! */     
    printf("Hello Linux\n");
    }
    Поздравляю! вы только что написали свою первую программу... Но дело еще на пол пути.. Теперь ее нужно скомпилировать. Для этого набираем команду:
    Код:
    # gcc -o hello main.c
    Получаем исполняемый файл hello, для его запуска набираем:
    Код:
    #./hello
    Для сборки программы из нескольких файлов удобнее использовать make файл. Давайте напишем такой файл для нашей программы:

    Создаем файл с именем Makefile, с таким содержимым:
    Код:
    hello: main.o
           gcc -o hello main.o
    main.o:main.c
           gcc -c main.c
    Теперь сборка проекта, осуществляется командой:
    Код:
    #make
    Для сборки много файловой программы Makefile следует изменить.. Например программа состоит из двух файлов main.c и setting.c, и нам их нужно собрать в одну программу с именем main. Makefile будет выглядеть следующим образом:
    Код:
    hello: main.o setting.o
           gcc -o hello main.o
    main.o:main.c
           gcc -c main.c
    setting.o:setting.c
           gcc -c setting.c
    
    Для начала думаю хватит) удачи в освоении..;):penguin:

    P.S О хорошем тоне комментариев..
    В языке С принято писать комментарии так:
    Код:
    /*тут комментарий*/
    В языке С++:
    Код:
    //комментарий
    Последнее редактирование: 17 июл 2015
    _VN_ и radioengineer нравится это.
     
  2. _VN_

    _VN_ В доску свой

    Сообщения:
    483
    Симпатии:
    64
    Род занятий:
    Инженер
    Адрес:
    Алматы
    Разработка таких программ происходит безопасно и быстрее на виртуальных машинах, которые эмулируются в среде VMware Workstation. Для новичка описанные эксперименты с разработкой и отладкой почти наверняка приведут к непредсказуемым последствиям для его системы.
    Перед началом работы вообще желательно сохранить всё в закрытой зоне диска программой Acronis.
    В VMware Workstation, в случае ошибки, всё восстанавливается в исходное состояние в течение минуты. Acronis для восстановления потребует 10-15 минут, но зато восстановит всё, включая названный VMware Workstation.
  3. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.535
    Симпатии:
    351
    Адрес:
    Алматы
    Ну @koteika и пишет, что работал в виртуальной машине, другое дело что необязательно это делать именно в ней, т.к. поломать что-то в системе на Linux не очень просто новичку, а кто знаком уже, тот не станет намеренно ломать что-то.
  4. _VN_

    _VN_ В доску свой

    Сообщения:
    483
    Симпатии:
    64
    Род занятий:
    Инженер
    Адрес:
    Алматы
    О виртуальных машинах, если эта тема для новичков, нужно рассказать подробнее. А для того случая, когда новичку "поломать что-то в системе Linux не очень просто" следует напомнить правило - если в системе есть возможность что-то сломать, то она будет сломана самым наихудшим способом.
    P.S. Бутерброд, как известно, ВСЕГДА падает маслом вниз...
  5. koteika

    koteika В доску свой

    Сообщения:
    769
    Симпатии:
    120
    Род занятий:
    программирование
    Ну тут как сказать. Я почти всегда работаю под рутом, то есть сломать систему шансы велики. Но я уже пропитан линуксом...

    В виртуалке работаю на работе, так как нет возможности поставить линукс. Дома сижу на ubunte, без каких либо виртуалок и т.д. и все нормально. Система вылетает редко, и то из за того что я люблю копаться в ней.

    Хотя иногда новичками движет спешка и они непременно что нибудь да сломают.... Либо плохо прочитают мануал..
  6. gbroman

    gbroman В доску свой

    Сообщения:
    89
    Симпатии:
    3
    Род занятий:
    ИТ специалист
    Адрес:
    forum.sys-adm.in
    Совсем нет смысла писать мануал во виртуальной машинке, проще ссылку на вики или другой сторонний словарик...
    поисковые системы придумали не с проста!

Поделиться этой страницей