Всем привет) Странствующие и обычные пингвинятники... Решил написать пару уроков по программированию на языке С, в такой операционной системе как Linux Чему научимся? Напишем простую программу "Hello World", научимся собирать файлы в терминале ручками, так же автоматизируем сборку проекта с помощью make файла... На данный момент использую операционную систему Arch установленную в виртуальную машину(патамушта на работе).. Что нам нужно для этого? первым делам нам нужен компилятор языка С. Почти всегда он установлен и идет сразу с системой как жизненно важная программа.. Проверим версию компилятора набрав команду # gcc -v, и узнаем как обстоят дела у нас с компилятором... У меня получилась следующая картина: То есть видим что все нормально.. Теперь нам нужен текстовый редактор, подойдет любой.. Графический или консольный. я буду использовать nano. Для создания файла набираем команду: Код: # nano main.c Можно установить любой другой, например vim, использовать встроенный в mc, либо графические gedit, sublime, atom и т.д. начинать советую именно с консольного варианта, что бы проникнуться всей душевностью программирования под линуксом. Опыт работы в таких редакторах пригодиться когда придется настраивать какие конфиги в системе, или вдруг система упадет и придется что то править. Как выглядят такие редакторы(синий это редактор встроенный в файловый менеджер mc, далее nano и последним идет текстовый комбайн vim): Vim, или как его иногда зовут vi, является достаточно мощным средством для работы с текстовыми документами, и гибок в настройке. Для его установки набираем команду: Код: для пользователей ubuntu, debian, mint и т.д #sudo apt-get install vim для пользователей arch #pacman -S vim В комплекте идет учебник для обучению работу в редакторе vim, для его запуска набираем: Код: #vimtutor Он на русском языке, что удобно для изучения..: Далее полезно знать о системе справок в linux.. Такая полезная штука как man.. Эта система рулит всей справочной системой о всех программах, функциях ОС Linux. Более подробно о ней можно узнать набрав команду: Код: #man man И справка расскажет о самой себе... Для того что бы узнать о какой интересующей программе, набираем следующее: Код: #man что нас интересует например #man vim - расскажет о редакторе vim #man printf - расскажет о функции форматированного вывода printf Так идем дальшееее... Для быстрого просмотра текстовых файлов(и не только) можно использовать команду: Код: #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 Для начала думаю хватит) удачи в освоении.. P.S О хорошем тоне комментариев.. В языке С принято писать комментарии так: Код: /*тут комментарий*/ В языке С++: Код: //комментарий
Разработка таких программ происходит безопасно и быстрее на виртуальных машинах, которые эмулируются в среде VMware Workstation. Для новичка описанные эксперименты с разработкой и отладкой почти наверняка приведут к непредсказуемым последствиям для его системы. Перед началом работы вообще желательно сохранить всё в закрытой зоне диска программой Acronis. В VMware Workstation, в случае ошибки, всё восстанавливается в исходное состояние в течение минуты. Acronis для восстановления потребует 10-15 минут, но зато восстановит всё, включая названный VMware Workstation.
Ну @koteika и пишет, что работал в виртуальной машине, другое дело что необязательно это делать именно в ней, т.к. поломать что-то в системе на Linux не очень просто новичку, а кто знаком уже, тот не станет намеренно ломать что-то.
О виртуальных машинах, если эта тема для новичков, нужно рассказать подробнее. А для того случая, когда новичку "поломать что-то в системе Linux не очень просто" следует напомнить правило - если в системе есть возможность что-то сломать, то она будет сломана самым наихудшим способом. P.S. Бутерброд, как известно, ВСЕГДА падает маслом вниз...
Ну тут как сказать. Я почти всегда работаю под рутом, то есть сломать систему шансы велики. Но я уже пропитан линуксом... В виртуалке работаю на работе, так как нет возможности поставить линукс. Дома сижу на ubunte, без каких либо виртуалок и т.д. и все нормально. Система вылетает редко, и то из за того что я люблю копаться в ней. Хотя иногда новичками движет спешка и они непременно что нибудь да сломают.... Либо плохо прочитают мануал..
Совсем нет смысла писать мануал во виртуальной машинке, проще ссылку на вики или другой сторонний словарик... поисковые системы придумали не с проста!