Программирование для linux для начинающих

Программирование для linux для начинающих

Предполагается, что читатель этой книги должен иметь хотя бы начальные пользовательские навыки при работе с GNU/Linux (умение вводить команды в оболочку и знать основы операционной системы), а также знать язык C хотя бы на начальном уровне. Я посчитал бессмысленным писать еще одну книгу по языку C. Если вы знаете язык C на уровне книги Кернигана и Ритчи «Язык программирования Си», то у вас не будет проблем с изучением материала этой книги.

Если вы знаете язык C++, но не знаете C, ничего страшного. Эти два языка хотя и разные по своей сути, но имеют одну и ту же синтаксическую основу. C++-программисту не надо обладать феноменальной сообразительностью, чтобы разобраться в программе, написанной на C.

Большая часть материала этой книги относится и к другим современным Unix-подобным операционным системам (FreeBSD, например). Если вы еще не знаете Linux, то больших проблем не будет.

1.2. Условные обозначения

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

Примеры команд, вводимых в оболочку выделяются оранжевым цветом и начинаются с символа $ (приглашение командной строки). Вывод команд выделяется жирным шрифтом:

Примеры команд, вводимых от имени суперпользователя (root) выделяются так же, как и обычные команды, только в качестве приглашения командной строки используется символ #

Некоторые вещи в основном тексте, на которые я хотел бы обратить ваше внимание, будут выделяться жирным шрифтом. Некоторые термины, которые следует запомнить, будут выделяться курсивом. Кроме того, жирным шрифтом могут быть отделены от основного текста имена файлов, имена функций и т. п.

1.3. Что нужно иметь

То, что нам нужно иметь, называют инструментарием. Инструментарий программиста зависит от того, какие программы и на каких языках он будет писать. Наш инструментарий будет состоять из: 1) Операционной системы Linux (GNU/Linux) с текстовым редактором; 2) Компилятора с линковщиком; 3) Дополнительных утилит. Ну и конечно же из терпения и усердия.

Для начала нужно иметь Linux (здесь правильнее будет сказать GNU/Linux). Подойдет практически любой современный дистрибутив. Посмотрите, какая версия ядра Linux у вас используется. Наберите в оболочке следующую команду: У меня ядро версии 2.6.10. У вас, скорее всего, будет что-то другое. Дистрибутивы, построенные на ядрах версий 2.4.x и 2.6.x достаточно современные для того, чтобы воспроизвести все примеры в этой книге. Версии 2.0.x и 2.2.x также могут использоваться, но некоторые возможности, описанные в этой книге в этих ядрах не реализованы.

Следующий шаг — компилятор. Мы будем использовать компилятор gcc (не обсуждается!). Практически все дистрибутивы Linux поставляются вместе с компилятором языка C. Вопросы о том, какие программы установлены, как устанавливать недостающие программы выходят за рамки этой книги. Поэтому не буду объяснять, как проверить присутствие в системе компилятора. На начальном этапе обучения версия компилятора не имеет значения. Если у вас есть компилятор gcc, то и линковщик (о том, что это такое, будет рассказано позже) тоже есть (вероятность 99%).

Многие программисты используют различные оболочки для программирования (KDevelop, Glade и прочие). Мы откажемся от этого подхода по двум причинам: 1) это претит идеологии Unix; 2) за всеми этими средами разработки стоят те самые утилиты, которые мы будем использовать непосредственно. Нам на начальном этапе потребуется лишь утилита make.

И, наконец, немаловажная деталь. Текстовый редактор. Здесь на вкус и цвет товарища нет. В мире Unix-систем есть два лагеря: любители Vi и любители Emacs. В настоящее время написано много клонов редактора Vi (Vim, Elvis, GVim) и много клонов (а точнее — расширений) редактора Emacs. И для Vi и для Emacs существуют как консольные так и графические версии. Нет смысла обсуждать преимущества и недостатки этих двух «гигантов». Вам придется самостоятельно выбрать наиболее удобный для вас текстовый редактор. Возможно вам не понравится ни один из них и вы будете использовать что-нибудь наподобие kate или nedit или pico. Между прочим, редактор Pico открывает свой третий лагерь поклонников. Этот редактор, изначально разработанный в Вашингтонском университете для почтовика pine, а затем ставший самостоятельным редактором, уверенно набирает силу в сообществе Unix. Если вы полный аскет, можете попробовать редактор ed (red), который мало напоминает текстовый редактор в современном понимании. Опять же повторюсь, выбор за вами. Я использую консольную версию редактора Vim, но с большим уважением отношусь и к Emacs. Очень важно попробовать оба редактора «в полную силу», а не просто «взглянуть». Только опытный пользователь сможет за видимой неуклюжестью ощутить мощь и удобство. Это одна из важнейших граней идеологии Unix.

Читайте также:  Password last set windows

Подавляющую часть работы мы будем проводить в командной строке. «Командная строка» — общий термин, подразумевающий собой сочетание терминальной программы и командной оболочки. Терминальная программа (или программа эмуляции терминала), это то, что вы видите на экране, когда работаете с командной строкой. Терминальная программа позволяет пользователю вводить команды и видеть результаты их выполнения. Программа konsole в KDE, например, является терминальной программой. Под терминальной программой запускается командная оболочка (командный интерпретатор или просто shell). Командная оболочка через интерфейс терминальной программы общается с пользователем и выполняет всю основную работу. Bash, Csh, Ksh — это все командные оболочки или, как их еще называют, командные интерпретаторы. В Linux я рекомендую использовать оболочку Bash (Bourne Again SHell). Однако не произойдет ничего страшного, если вы будете использовать другую командную оболочку, например C-Shell (csh), у которой достаточно своих поклонников. Как вы позже узнаете, любая командная оболочка — это не просто исполнитель команд, но и полноценный интерпретатор собственного языка программирования. Чтобы узнать, какая оболочка запущена под терминальной программой, просто наберите команду ps. В одной из строк (скорее всего — в первой) будет написана ваша командная оболочка: В моем случае это bash.

1.4. Обратная связь

Если вы заметили ошибки/опечатки. Или если что-то в этой книге плохо описано, сообщайте об этом по адресу zlp@lindevel.ru или форуме на сайте Lindevel.Ru (http://www.lindevel.ru).

Книга распространяется на условиях GNU Free Documentation License. В соответствии с условиями этой лицензии вы можете свободно скачивать и распространять книгу без каких-либо разрешений, но не нарушая и не изменяя условий Лицензии. Если вы хотите поместить копию книги на своем Интернет-ресурсе или просто распечатать — делайте это свободно, как завещал великий Столлман!

Вы также можете вносить самостоятельные изменения в эту книгу. В этом случае я просто прошу сообщать мне об этом.

Источник

Linux для начинающего разработчика или как навсегда забыть о Windows

Дисклеймер

Внимание, очень много букв! Предлагаю запастись попкорном и выделить время для данного мероприятия.

Пост предназначен в первую очередь для тех, кто занимается разработкой, но так же очень сильно поможет тем, кто пытался перейти на linux, но из-за каких бы то ни было непонятных вещей и трудностей плюнул и сказал: «Да ну нафиг этот линукс, еще возиться с ним буду».

В статье рассматривается установка Ubuntu 16.04 и настройка оной исключительно для работы.

Предыстория

Ранее уже были предприняты попытки перекатиться на linux, но из-за своей чрезмерной привязанности к продукту компании Microsoft, миграция в который раз откладывалась в «долгий ящик».

Так же меня всегда останавливало большое количество вопросов, на которые я не смог найти ответы, проблемы, ошибки и.т.д.
Но после того, как я заинтересовался и начал изучение Node.js, один товарищ меня все же подбил на переезд под предлогом того, что работать в linux будет удобнее. И вот, после нескольких неудачных попыток установки и некоторого времени использования Ubuntu в качестве основной ОС, я удалили драгоценную винду и навсегда забыл о ней. Ничуть об этом не жалею.

Приступаем к установке

Первое что нам надо сделать — записать загрузочную флешку или диск. Дистрибутив Ubuntu 16.04 весит всего 1.4 гб, поэтому лучше всего нам подойдет флешка. Скачиваем программу Unetbootin -> unetbootin.github.io.

Тут все довольно просто. Ставим «Образ диска», выбираем .iso файл, который мы скачали, выбираем носитель и нажимаем ОК. Запись не заставит себя долго ждать.

Перезагружаем систему и выбираем способ загрузки -> через USB. Но тут кого-то может подстерегать проблема, заключается она в том, что в обычном режиме загрузка не произойдет.

Читайте также:  Что делать если компьютер обновился до windows 10

Чтобы все же завести флешку, пробуем загрузится с нее в UEFI режиме. Но позже, нас спросят, хотим ли мы продолжить установку в UEFI режиме. В случае если ваше решение перейти на linux является окончательным, то можете ответить утвердительно. Если же у вас есть необходимость загружаться в других ОС, то нажимаем «вернуться» (ума не приложу, почему именно так обозвали эту кнопку). Сама установка не должна вызывать каких-либо трудностей. Выбираем свой язык, и двигаемся дальше. Рекомендую в следующем окне поставить галочки:

В следующем окне выбираем пункт: «Другой вариант».

Далее нам нужно разметить диск. Если у вас 2 жестких диска и один из них не используется и на нем нет никаких данных, то просто выбираем его и нажимаем -> «Создать новую таблицу разделов».

У нас появится «свободное место», на него мы так же нажимаем и создаем первый раздел.

Размер root раздела может составлять и 4гб, но рекомендую поставить 40-50, чтобы имелся запас.
Тип — первичный
Местоположение — на всех разделах должно стоять «Начало этого пространства»
Использование — Ext4
Точка монтирования — » / «

Размер = размеру вашей оперативной памяти
Использование — раздел подкачки
Данный раздел играет роль резервной «оперативной» памяти, хранящейся на нашем жестком диске.

Размер = все оставшееся пространство
Тип — логический
точка монтирования — » /home «

Вот собственно и все, нажимаем продолжить, соглашаемся с тем что все файлы на разделах будут уничтожены. Далее — соглашаемся, вводим что просит. Теперь можно сходить попить кофе)

Настройка системы, оформление, подгонка под особенности железа

После установки мы конечно же перезагружаемся в нашу теперешнюю ОС, логинимся. Заходим в параметры системы -> программы и обновления, в первой вкладке выставляем галочки таким образом:

Сразу же выполним некоторые команды:

sudo означает выполнение с правами администратора

После первой же команды у вас попросят пароль, который вы придумали на этапе установки. Не пугайтесь, если вы вводите пароль, а буквы не отображаются — это такая мера безопасности. Если спросит про установку пакетов и приветливо будет мигать курсором — смело пишем Y и нажимаем Enter. Так что же мы только что сделали сей командой? Мы дали команду пакетному менеджеру «apt» обновить список доступных пакетов и установить их. Принцип работы основывается на GIT, вы включаете репозитории, обновляете их, устанавливаете обновления.Это дает нам преимущество — у нас всегда все самое свежее. Список репозиториев лежит в /etc/apt/sources.list, но нам это вряд ли понадобится.

Обновление завершено — перезагружаемся, хоть и в linux это обычно не требуется, но возможно обновилось ядро и данную операцию все же следует провести. Вообще если после update вы видите строчки подобного содержания:

значит обновление затрагивает наше ядро и перезагрузка обязательна.

«Железные» проблемы

Лично у меня сразу возникла проблема с мышкой. Использую игровую мышь с чувствительностью 3800DPI. Естественно, она металась по всему монитору от малейшего передвижения. И проблема с отображением мониторов. У меня стоят 2х 17inch с соотношением 4:3. Один монитор у подключен в мат.плату, а второй — в видеокарту от AMD. С первым все было хорошо, а вот тот что на встроенной графике — затухал сразу же после входа в систему. На ум пришло написать скрипт в автозагрузку для замедления мышки и переопределения мониторов (может кому пригодится).

Решение проблемы с слишком шустрой мышкой

В консоли вводим xinput и видим список подключенных устройств. Находим свою мышь и переписываем ее ID. На моей мышке вводим команду xinput list-props ’11’. Перед нами опять появляется список, но уже с набором опций, нам нужна Device Accel Constant Deceleration, смотрим ее ID (в скобочках). У меня оно равно 274. Теперь, зная id мышки и id, мы пишем следующее:

В домашнем каталоге создаем файл start.sh и открываем его, где последняя цифра (2) означает во сколько раз надо замедлить мышь. Данную команду можем сразу внести в наш скрипт.ё

Почему же мы не зашли в настройки и там не убрали чувствительность? Потому что диапазон регулировки там невелик. И скорее всего, его будет недостаточно.

Решение проблемы с некорректно отображаемыми мониторами

Заходим в настройки -> настройка экранов. Видим два мониторчика, мы можем схватить один из них и расположить так, как нам нужно, а так же выбрать, на каком располагать панель запуска. Нажимаем применить, и если после перезагрузки все останется на своих местах, значит никаких действий более не требуется.

Читайте также:  Livecd linux по русски

Но у меня при выставленном в БИОС приоритете встроенной графики, после входа второй монитор выключался и оставался тот, что подключен к видеокарте. Что примечательно — после пробуждения из спящего режима, второй снова оживал и работал нормально. Смотрим нумерацию мониторов, здесь на главном мониторе стоит метка «Primary».

Согласно номерам, выставляем как будут располагаться мониторы. Дописываем в наш скрипт:

Теперь пришло время прописать скрипт в автозагрузку, открываем меню dash (клавиша WIN) и вводим в поиске:

«Автоматически запускаемые приложения». Нажимаем добавить, вписываем имя (не важно какое, главное чтобы вам был понятен смысл назначения этого элемента), описание оставляем пустым. Теперь в поле «команда» вводим следующее:

Этим самым мы отдаем команду на запуск скрипта. Путь у вас может быть любой другой. Сохраняем и при следующей перезагрузке проверяем работоспособность.

Если все же проблема с мониторами остается — попробуйте поколдовать с их расположением и приоритетом вывода видео в БИОС
Касательно драйверов — я не стал ставить поскольку все и без них работает хорошо, в случае с AMD установка драйверов может вызвать крах системы.

Настройка системы и установка программ

Добавление шрифтов windows

После установки браузера (чуть позже), вы заметите что шрифты на некоторых сайтах режут глаза и от них хочется плакать.

После перезагрузки браузера шрифты должны отображаться правильно. Если есть желание — вы можете выставить какой-либо из них как системный (в настройках или ubuntu tweak tool). Рекомендую зайти в ubuntu tweak и во вкладке «шрифты» выставить:

Софт из уже включенных репозиториев

Программы которые уже включены в репозиторий партнеров canonical вы можете установить следующим образом:

Пакет программ, которыми пользуюсь я:

1. skype
2. ssh (для подключения и удаленного управления машиной)
3. unity-tweak-tool (Тонкая настройка оболочки unity)
4. ubuntu-tweak-tool (Расширенные настройки системы)
5. inkscape (Редактор векторной графики)
6. gimp (Использую вместо фотошопа)
7. clementine (Аудиопроигрыватель)
8. mc (файловый менеджер для терминала)
9. vlc (видеопроигрыватель, со множеством кодеков)
10. filezilla (ftp клиент)

Установка стороннего ПО

Чтобы установить стороннее ПО нам придется добавлять репозитории в систему.

Качаем с официального сайта пакет, открываем его, в менеджере нажимаем «install».
Для просмотра видео, требуется flash, установим его.

Мне нравится работать в «скобках», очень приятная и удобная вещь:

Далее установим тему, я использую numix, но вы можете найти любую другую и установить ее.

После установки запускам unity tweak tool. Тему выставляем «Numix», значки так же «Numix». По душе темные темы? Запускаем ubuntu tweak tool и во вкладке «внешний вид» ставим «Применить темную тему глобально». Пока не вышли из ubuntu tweak, лучше прописать в автозагрузку skype и telegram.

Финальным штрихом установим LAMP сервер (Linux apache mysql php) и phpmyadmin:

Пробуем зайти по адресу localhost. Если все в порядке, то двигаемся дальше. Открываем конфигурационный файл apache:

Находим там теги в них прописана информация о местоположении файлов нашего сервера, после последнего пишем такую конструкцию:

AllowOverride All
Require all granted

Путь можете указать какой вам удобно. В конце конфигурационного файла прописываем:

ServerName localhost

Внимание! Ниже описанные операции придется проделывать каждый раз при добавлении нового виртуального хоста!

Для добавления новых виртуальных хостов проделываем следующее. Создаем папку в директории /home/user/public_html/test, открываем /etc/hosts и в первую строку оного добавляем имя нашего сайта:

Далее выполним в терминале:

Тем самым мы скопировали дефолтный конфигурационный файл для нашего сайта, открываем его:

и вместо example.com впишем свое название. Далее подправим DocumentRoot который указывает на местоположение файлов нашего сайта, прописываем вместо стандартного /var/www — /home/user/public_html/test.

Теперь мы можем включить наш сайт:

Вот и все. Базовая настройка завершена, можно пользоваться!

Не бойтесь искать в интернете, если вам что-то необходимо установить и настроить! Он не кусается. В данной статье я постарался изложить как можно подробнее процесс базовой настройки Ubuntu 16.04. Уверен, что после недели использования ubuntu в качестве основной ОС вы уже вряд ли вернетесь обратно.

Источник

Оцените статью