Как программировать в Linux

Обновлено: 02.07.2024

Если вы новичок в Linux, особенно в командной строке, и хотите узнать, как запускать программу в Linux, вы обратились по адресу. Запуск программ в Linux ничем не отличается от того, как это делается в Windows. Легко сказать, правда? Но не беспокойтесь, вы сможете запустить любую программу в кратчайшие сроки.

В этом руководстве вы узнаете много способов запуска программ в Linux как через графический интерфейс, так и через командную строку. От новичка до опытного пользователя Linux вам будет полезно знать эти методы запуска программы.

Готовы? Начнем!

Оглавление

Предпосылки

Ubuntu Desktop 15.04 или более поздней версии: убедитесь, что у вас есть готовый хост Linux. В этом руководстве используется Ubuntu 15.04 (версия для настольных ПК) с установленным GNOME, но любой новый дистрибутив должен работать аналогично.

Запуск программ с помощью средства запуска приложений

Как правило, в Windows существует несколько способов запуска программы, и Linux ничем не отличается. Мы начнем с наиболее распространенного способа запуска программы с помощью Launcher.

Самый распространенный способ запуска программ в Linux — использование Launcher. Панель запуска — это панель, похожая на меню «Пуск» Windows, которая содержит список значков, на которые можно нажимать, чтобы запускать программы.

В Ubuntu панель запуска приложений расположена в левой части экрана, как вы можете видеть ниже, и содержит часто запускаемые приложения по умолчанию. Чтобы открыть программу, просто щелкните значок, представляющий программу.

Доступ к программам запуска через графический интерфейс

Доступ к программам запуска через графический интерфейс

Запуск программ из меню приложений (Unity Dash)

Вы также можете запускать программы в Ubuntu Linux с помощью Unity Dash. Меню приложений или Unity Dash — это удобный способ поиска и запуска программ в GNOME. Чтобы использовать меню приложений, нажмите кнопку Ubuntu в левом верхнем углу.

Выбор значка для поиска и запуска программ с помощью Unity Dash

Выбор значка для поиска и запуска программ с помощью Unity Dash

Ниже вы увидите, что в меню открывается панель поиска со всеми недавно запущенными программами.

Найдите программу, которую хотите запустить использование Unity Dash в старых версиях Ubuntu

Выполните поиск программы, которую хотите запустить, с помощью Unity Dash в старых версиях Ubuntu

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

В Ubuntu Linux v20.04+ Unity Dash был заменен на Activity в левом верхнем углу экрана, но процесс запуска программы остался прежним.

Использование команды «Выполнить» для запуска программы

Еще один способ запускать программы в Linux — использовать команду «Выполнить». Команда «Выполнить» — это удобный способ быстро запустить программу в Linux, набрав программу и выполнив ее.

Чтобы запускать программы с помощью команды «Выполнить», нажмите сочетание клавиш Alt-F2, чтобы открыть окно «Выполнить команду».

Вы также можете нажать Alt-F2 для быстрого доступа к команде запуска.

Использование команды запуска

Использование команды запуска

Далее введите имя программы, которую хотите запустить. В этом примере вы запустите приложение «Терминал», введите терминал, выберите значок «Терминал» и нажмите Enter.

При выборе значка или нажатии Enter запускается программа

Выбор значка или нажатие Enter запустит программу

Ниже вы увидите, что Linux запустит приложение Terminal.

Запуск программ с помощью горячих клавиш

Если вы больше любите клавиатуры и предпочитаете не пользоваться мышью, как мы начали в последнем примере, вы также можете запускать программы с помощью горячих клавиш. Во всех дистрибутивах Linux вы можете использовать суперклавишу (клавиша Windows) + A. Суперклавиша откроет все приложения в алфавитном порядке и текстовое поле для ввода имени программы, как показано ниже.

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

Запуск программ с помощью горячих клавиш

Запуск программ с помощью горячих клавиш

Настройка сочетаний клавиш для запуска программ в Linux

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

Чтобы настроить сочетания клавиш в Ubuntu:

<р>1. Снова выберите значок в верхнем левом углу и сочетание клавиш. Приложение «Клавиатура» должно появиться ниже. Когда это произойдет, нажмите на него.

Выбор значка и запуск сочетания клавиш

Выбор значка и запуск сочетания клавиш

<р>2. В приложении "Клавиатура" перейдите на вкладку "Ярлык".

В Ubuntu 20.04 и более поздних версиях при выборе сочетания клавиш в меню «Действия» открывается вкладка «Сочетания клавиш».

Доступ к вкладке

Доступ к вкладке ярлыков

<р>3. Нажмите на значок +, чтобы создать новое сочетание клавиш. Ubuntu направит вас в раздел «Пользовательские ярлыки».

Добавление нового ярлыка

Добавление нового ярлыка

<р>4. Затем введите описательное имя для сочетания клавиш и укажите команду (программу) для выполнения и нажмите «Применить».

Ввод имени и программы для использования Ярлык

Ввод имени и программы для ярлыка

Когда Ubuntu создаст ярлык, вы увидите, что имя отображается в разделе «Пользовательские ярлыки», но оно отключено.

Просмотр созданного, но не активного ярлыка Ключ

Отображается созданная, но не активная клавиша быстрого доступа

<р>5. Теперь щелкните текст «Отключено», как показано выше, и нажмите нужную комбинацию клавиш, например Ctrl + T. Как только вы введете нужный ярлык, он появится, как показано ниже.

Активация ярлыка

Активация ярлыка

<р>6. Наконец, запустите приложение, нажав сочетание клавиш!

Запуск программы в терминале

Хотя если вы новичок в Linux, скорее всего, вы будете запускать программы с графическим интерфейсом, но если вам по какой-либо причине нужно использовать командную строку, Терминал упрощает это. Терминал — это приложение командной строки, которое позволяет вам управлять всеми аспектами Linux с помощью клавиатуры.

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

Доступ к терминалу

Доступ к терминалу

Когда откроется Терминал, как показано ниже, просто введите название программы и нажмите Enter.

Запуск программ в Терминале будет работать не для всех программ. Некоторые программы могут отсутствовать в PATH.

Запуск конечного результата программы

Запуск конечного результата программы

Заключение

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

Попробуйте установить программы в Linux, такие как учебник, чтобы установить обычную программу, такую ​​как Docker, для практики, а затем запустить ее с помощью ярлыка, командной строки или графического интерфейса. Какой способ вы будете использовать чаще всего для запуска своих любимых программ?

Ненавидите рекламу? Хотите поддержать писателя? Получите многие из наших руководств в виде руководства по ATA.

Ещё от ATA Learning & Partners

Резервное копирование Office 365 для чайников

Лучшее руководство по защите данных Microsoft Office 365. Изучите готовые функции безопасности.

Руководства ATA

ATA известна своими высококачественными письменными учебными пособиями в виде сообщений в блогах.Поддержите ATA с помощью электронных книг ATA Guidebook PDF, доступных в автономном режиме и без рекламы!

Linux становится раем для разработчиков, поскольку это бесплатная операционная система с открытым исходным кодом. Компилятор Turbo C — это уже старый подход к компиляции программ, поэтому давайте, программисты, перейдем на Linux для новой среды программирования. В этой статье мы объясним, как написать, скомпилировать и запустить простую программу на C. Это послужит вам основой для перехода к более сложным и полезным программам на C, которые вы сможете писать и выполнять в Linux.

Мы выполнили шаги и команды, упомянутые в этой статье, в системе Ubuntu 20.04 LTS, но они будут работать и в других версиях, таких как Ubuntu 18.04, или дистрибутивах, таких как Debian 10, точно так же.

Мы будем использовать инструмент командной строки Linux, Терминал, для компиляции простой программы на C. Чтобы открыть Терминал, вы можете использовать Ubuntu Dash или сочетание клавиш Ctrl+Alt+T.

Шаг 1. Установите необходимые для сборки пакеты

Чтобы скомпилировать и выполнить программу C, в вашей системе должны быть установлены необходимые пакеты. Введите следующую команду от имени пользователя root в терминале Linux:

Установите необходимые для сборки пакеты с подходящий

Вас попросят ввести пароль для root; после этого начнется процесс установки. Убедитесь, что вы подключены к Интернету.

Шаг 2. Напишите простую программу на C

После установки необходимых пакетов давайте напишем простую программу на C.

Откройте графический текстовый редактор Ubuntu и напишите или скопируйте в него следующий пример программы:

Затем сохраните файл с расширением .c. В этом примере я называю свою программу на C как sampleProgram.c

Пример программы C

В качестве альтернативы вы можете написать программу C через Терминал в gedit следующим образом:

Это создаст файл .c, в котором вы сможете написать и сохранить программу.

Шаг 3. Скомпилируйте программу C с помощью компилятора gcc

В терминале введите следующую команду, чтобы сделать исполняемую версию написанной вами программы: Реклама

Скомпилировать исходный код с шириной gcc

Убедитесь, что ваша программа находится в вашей домашней папке. В противном случае вам нужно будет указать соответствующие пути в этой команде.

Шаг 4. Запустите программу

Последний шаг — запустить скомпилированную программу на C. Для этого используйте следующий синтаксис:

Запустить нашу скомпилированную программу

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

Из этой статьи вы узнали, как написать, скомпилировать и запустить простую программу на C в Linux. Все, что вам нужно, это необходимые пакеты и нужные навыки, чтобы стать гуру программирования в Linux!

Похожие сообщения:

Карим Буздар

Об авторе: Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов. Вы можете связаться с Каримом в LinkedIn

Linux – это операционная система, платформа, экосистема и культура. В то время как продолжающееся доминирование Windows и Mac OS для настольных компьютеров заставляет непосвященных потребителей предполагать, что Linux — это своего рода второстепенный вариант для экстремалов и тех, кто не хочет платить за операционную систему, правда в том, что Linux — самая используемая и самая важная операционная система на планете. На нем работает Интернет, на нем работает наша инфраструктура, на нем работают самые большие суперкомпьютеры в мире.

Нужен веб-хостинг?

Если вы запускаете новый сайт или просто ищете новый веб-хостинг, обратитесь к одному из наших лучших хостинг-провайдеров:

Блюхост

SiteGround

GreenGeeks


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

Разработка ядра Linux

Ядро Linux — это, пожалуй, самый амбициозный проект по разработке программного обеспечения на планете. Новые стабильные выпуски выходят примерно каждые три месяца, и в каждом выпуске участвуют тысячи разработчиков, работающих в десятках стран.

Участвовать в разработке ядра, как это ни парадоксально, проще, чем кажется, и в то же время смехотворно сложно. Это проще, чем кажется, потому что нет ни процесса найма, ни собеседования, ни бюрократии. Любой, кто знает, что он делает, может разрабатывать для ядра и отправлять исправления. С другой стороны, это также чрезвычайно сложно, потому что ядро ​​чрезвычайно сложно. Более того, сообщество разработчиков ядра, хотя и довольно приветливое в некоторых отношениях, не очень хорошо терпит любительские махинации. Хотя иметь толстую кожу полезно, ничто не заменит фактическое знание того, что вы делаете. Разработка ядра — довольно серьезное дело, требующее серьезных компьютерных наук. Если вы только начинаете разрабатывать операционную систему, это не совсем то, с чего стоит начинать.

Что вам нужно знать

Навыки разработки

Вы также должны иметь глубокое понимание теории операционных систем, особенно в том, что касается системы Linux. Подробнее об этом в следующем разделе.

  • Язык программирования C: полное руководство по языку. Также доступен в виде бесплатного PDF-файла.
  • Концепции операционных систем: подробное введение в теорию и практику разработки операционных систем.

Понимание Linux

Естественно, вам нужно разбираться в Linux и как пользователю, и как разработчику. Это включает в себя довольно глубокое понимание структуры ядра Linux и того, как различные подпроекты сочетаются друг с другом.

Процесс и культура

Наконец, вам нужно понять, как на самом деле работает процесс разработки Linux. Это включает в себя понимание сообщества в целом, его культуры и того, как различные члены сообщества разработчиков относятся друг к другу. Кроме того, это означает понимание распределенного управления версиями и цикла выпуска разработки.

    : обязательна к прочтению. Начните здесь.
  • Три способа для начинающих внести свой вклад в ядро ​​Linux: краткое и понятное руководство по участию.
  • Официальные вещи:

Разработка модулей ядра

Прежде чем приступить к основной разработке ядра Linux, хорошим способом расширить свои знания и опыт программирования для Linux является работа над модулем ядра. Это независимо разработанные части программного обеспечения, которые работают с ядром, чтобы функционировать как полноценная операционная система. Модули ядра включают в себя такие вещи, как драйверы устройств для различных аппаратных периферийных устройств, а также файловые менеджеры и другие низкоуровневые функции операционной системы.

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

Что вам нужно знать

Модули ядра, как и само ядро, обычно пишутся на C. (Существуют споры о разработке модулей ядра на C++, и есть несколько нестандартных способов сделать это, но это, конечно, не лучший вариант. нормальным способом и не рекомендуется.)

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

    : чрезвычайно тщательное руководство. : хороший пошаговый учебник.

Также см. список ресурсов выше в разделе "Разработка ядра".

Разработка приложений для операционной системы Linux

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

Что вам нужно знать

Если вы привыкли разрабатывать для Windows или Mac OS, самым большим потрясением при разработке для Linux, вероятно, является большое разнообразие сред Linux. Существуют десятки дистрибутивов Linux, и каждый пользователь Linux может многое изменить в том, как работает его конкретная среда. Это означает, среди прочего, что вы должны уделять управлению зависимостями гораздо больше внимания, чем в противном случае.

Еще одно отличие, особенно по сравнению с системой Windows, заключается в том, что многие пользователи Linux предпочитают компилировать свои приложения из исходного кода.Это происходит и в Mac OS, но с меньшей частотой. В мире Linux большое количество пользователей всегда предпочитают компилировать приложения из исходного кода, а не использовать установочный пакет. Это может повлиять на ваше отношение к разработке и распространению вашего программного обеспечения.

Большая часть разработки, ориентированной на Linux, выполняется на C, C++, Perl или Python. Хорошее изучение этих языков и погружение в ресурсы, упомянутые выше (ядро и модули) и ниже (скрипты), очень помогут.

    : подробное введение и руководство по программированию приложений Linux на языке C. : платные курсы по разработке под Linux от Linux Foundation.

Сценарии в Linux

Возможно, «самый низкий уровень» программирования в Linux — это сценарии оболочки. Однако это не меньшее «программирование», чем все остальное. Сценарии оболочки в Linux — отличный способ автоматизировать рутинные задачи и выполнять больше работы за меньшее время. Кроме того, изучение расширенных сценариев оболочки даст вам более глубокие знания и понимание операционной системы Linux. Сценарии оболочки — это то, что отличает начинающих пользователей Linux от опытных пользователей.

Что вам нужно знать

Хотя существуют и другие варианты, наиболее распространенным языком сценариев является Bash. Даже если вы планируете перейти к более продвинутым языкам сценариев, знакомство с Bash поможет вам начать работу со всеми типами сценариев операционной системы. Большинство людей, которые действительно увлекаются написанием сценариев для повышения производительности, используют для большей части своей работы либо Python, либо Perl. Как только вы упрётесь в то, что легко можете сделать в Bash, вы, вероятно, захотите перейти на один из этих языков.

Ресурсы Bash

Ресурсы Python

    : одно из самых популярных вводных в разработку Python. : отличное введение в написание сценариев (в отличие от «разработки») на Python. Также доступен бесплатно онлайн в виде видеокурса.

Ресурсы Perl

Общие ресурсы по Linux

Проект документации по Linux: гигантская библиотека руководств по Linux по всем вышеперечисленным темам, а также множество других вещей. Это одно из самых важных мест, где можно найти подробную информацию о Linux.

Обзор

Это была дикая поездка! От программирования ядра Linux до сценариев оболочки. Существует бесконечное количество способов программирования операционной системы Linux. С этим руководством вы должны быть на правильном пути.

Сравните популярные планы веб-хостинга

Нужен отличный веб-хостинг? Хотите сэкономить время? Лучше всего начать с этого короткого списка:

Потому что это

Немало колледжей и школ до сих пор преподают программирование на C/C++/Java для Windows и, что еще хуже, для DOS (с использованием Turbo C/C++)! GNU/Linux предоставляет первоклассную операционную систему с поддержкой десятков различных языков программирования, помимо выдающейся поддержки C, C++ и Java. И это не только бесплатно, но и дает свободу модифицировать, делиться и расширять IDE и наборы инструментов! Так почему же люди продолжают использовать устаревшие и до боли неэффективные операционные системы или инструменты разработки? Эта статья развеивает миф о том, что Linux «сложна», и показывает, как просто начать программировать в Linux!

В этой статье я хочу попросить людей начать программировать в операционной системе GNU/Linux (далее именуемой просто «Linux»). Студенты, которые только начинают заниматься программированием; преподаватели, которые преподают или участвуют в обучении программированию новых студентов; любители, которые программируют в Windows — я прошу всех вас, пожалуйста, прочтите и попробуйте Linux как минимум неделю. Если вы согласны с тем, что программирование на Linux действительно лучше, чем на вашей предыдущей платформе, оставайтесь с ней и наслаждайтесь свободой, которой обладают все остальные!

Просто чтобы прояснить любые недоразумения, я не ставлю целью заставить вас писать код для самого ядра Linux (хотя это вполне может произойти по мере того, как ваш комфорт и навыки программирования будут расти). Вместо этого я говорю о написании программ в пользовательском пространстве, включая упражнения, домашние задания и работу над проектами, которые входят в большинство учебных курсов по информатике. Прежде чем мы начнем, вот оговорка: эта статья содержит сильные личные мнения и убеждения; Я никоим образом не хочу вас оскорбить, но некоторые из этих идей, возможно, стоит попробовать — вам — чтобы посмотреть, согласны ли вы с тем же!

Атака на мышление

Принято считать, что Linux «сложна в использовании». Конечно, это отличается от того, к чему привыкли люди, привыкшие к Windows, но это не сложно. Как только вы приспособитесь к различиям, вы, вероятно, сами посмеетесь над этим заблуждением и расскажете другим, насколько ошибочно их восприятие!

Достаточно вспомнить многих студентов, изучающих информатику, которых вдохновила шумиха вокруг Linux. Они решительно приступили к изучению того, как использовать его по собственной инициативе — задавая вопросы в списках рассылки, на форумах и по IRC-каналам. В течение пары недель они готовы делать больше, чем просто передвигаться. Часто в течение месяца они настолько привыкают к Linux, что начинают знакомить других с этой ОС. Поразительно? Может показаться, что это так, но просто эти студенты были полны решимости исследовать и учиться и игнорировали крики «Это тяжело».

Каждый раз, когда кто-то приобретает новый навык, всегда нужно учиться, и Linux не является исключением. Если студентов научить использовать и программировать в Linux, они не только учатся, но и находят это простым. Им просто казалось бы естественным — узнать что-то, чего они раньше не знали. «Linux — это круто» — это современный миф, который необходимо развеять. Если вы педагог, пожалуйста, внесите свой вклад. Вы тот, на кого смотрят ученики, и если вы покажете им правильный путь, они последуют вашему примеру.

Подготовка и запуск Linux

Хорошо, если вы решили использовать Linux, как вы это сделаете? Возможно, вы слышали о множестве различных «дистрибутивов» Linux (также называемых дистрибутивами): Ubuntu, Fedora, Debian и других. Почему так много «Линуксов»? Позволь мне объяснить. Технически «Linux» — это название ядра (дополнительную информацию см. в этой статье в Википедии или на официальном сайте Linux). Поскольку ядро ​​само по себе малопригодно, инструменты пользовательского пространства из проекта GNU (включая наиболее распространенную реализацию библиотеки C, популярную оболочку и многие распространенные инструменты UNIX, выполняющие многие основные задачи операционной системы) были объединены. с ядром Linux, чтобы сделать пригодную для использования операционную систему. Графический пользовательский интерфейс (или GUI), используемый в большинстве систем Linux, построен на основе реализации системы X Window. Различные проекты и поставщики бесплатного программного обеспечения создают разные комбинации пакетов и функций, чтобы предоставить разные возможности Linux разным целевым аудиториям, что приводит к появлению множества дистрибутивов Linux.

Так какой же дистрибутив Linux выбрать? Ubuntu и Fedora по отдельности сделали работу с Linux очень удобной для обычных пользователей компьютера — для серфинга в Интернете, электронной почты и обработки документов. Любой из них идеально подходит для начала работы.

Однако установка Linux может быть несколько сложной, особенно если вы собираетесь настроить систему с двойной загрузкой, в которой вы можете загрузить либо Linux, либо старую Windows. В остальном все очень просто: скачайте образ компакт-диска (ISO), запишите его на диск, загрузите с него компьютер и дайте ему установиться! Лучший способ настроить двойную загрузку в первый раз — связаться с кем-нибудь в вашей школе, районе или офисе, кто знает об этом, и попросить его помочь вам.

Кроме того, есть и другие варианты, если вы хотите попробовать Linux без его установки, без замены Windows или настройки двойной загрузки. Некоторые из этих идей см. в разделе Практические аспекты в конце этой статьи.

Полное руководство для новичков в Linux — это хороший справочник, который поможет вам научиться чему-то самостоятельно. В Linux очень помогает экспериментальный подход к обучению. Итак, сделайте резервную копию своих данных и начните работу с этих установочных дисков, если вы не можете найти никого, кто мог бы вам помочь. В наши дни большинство дистрибутивов Linux поставляются с установленными только необходимыми приложениями и библиотеками, которых, вероятно, будет недостаточно для нужд программирования.

Чтобы упростить установку нового программного обеспечения, в большинстве дистрибутивов есть диспетчер пакетов (в мире Linux программное обеспечение распространяется в виде «пакетов»), который можно использовать для простой загрузки и установки нового программного обеспечения из Интернета. Ultimate Linux Newbie Guide — хороший справочник по этой теме.

Чтобы эта статья была максимально полезной, я постараюсь быть более общим и не отдавать предпочтение какому-либо конкретному дистрибутиву.

Выбор текстового редактора

Мы не будем использовать интегрированную среду разработки (IDE), по крайней мере, на начальном этапе. Мы просто сделаем это простым способом: напишем код с помощью текстового редактора, сохраним его и скомпилируем/интерпретируем с помощью соответствующего компилятора/интерпретатора. В мире Linux у вас есть множество текстовых редакторов на выбор. Один из редакторов, например gedit или kwrite, обязательно будет установлен при установке Linux — вы можете использовать любой из них. Если вы устанавливаете такой дистрибутив, как Ubuntu, в котором есть среда рабочего стола GNOME, у вас уже будет установлен gedit. Это как Блокнот, только более полезный и многофункциональный.

Программирование на C/C++ в Linux

C обычно является первым языком, который преподается многим студентам инженерных школ и колледжей Индии, поэтому давайте сначала посмотрим, как мы программируем на C в Linux.Обратите внимание, что код C, который вы будете писать в Linux, будет таким же, как и в Windows/DOS, если вы пишете код ANSI C. Некоторые библиотечные функции, такие как conio.h и graphics.h, не являются частью стандарта ANSI. Следовательно, вы не сможете использовать их в Linux.

Компилятор C, который вы используете в Linux, называется GCC. Он является частью коллекции компиляторов GNU. Откройте терминал и выполните команду: gcc. Если вы видите что-то вроде следующего вывода, это означает, что GCC уже установлен.

Однако, если вы видите что-то вроде "Команда не найдена", вам придется установить GCC с помощью диспетчера пакетов.

Помимо компилятора, вам также понадобится стандартная библиотека C, называемая glibc, для правильной компиляции ваших программ на C. Введите locate glibc и проверьте вывод. Если он показывает структуры каталогов в форме /foo/bar/glibc и т.п., то glibc у вас установлен; иначе вам нужно установить его.

Хорошо, теперь, когда мы подтвердили наличие текстового редактора, компилятора и стандартной библиотеки, давайте напишем наш первый код на C в Linux. Для целей этой статьи давайте создадим подкаталог codes в вашем «домашнем» каталоге, в котором мы будем хранить весь наш исходный код.

Запустите gedit и введите этот простой код C, чтобы напечатать факториал числа:

Сохраните этот код в подкаталоге code под именем fact.c . Запустите программу-оболочку (терминал) и запустите cd-коды, чтобы перейти в этот каталог. Оказавшись там, введите следующую команду:

После выполнения команды запустите ls, и вы увидите файл a.out в текущем каталоге. Это исполняемый файл вашей программы на C, скомпилированный и связанный с соответствующими библиотеками. Чтобы выполнить его, запустите (обратите внимание на начальный ./ , это важно!):

Поздравляем, вы только что написали свою первую программу на C для Linux! Это был обычный C, который вы пишете в DOS или Windows — никаких сюрпризов! Еще немного об этом файле a.out: это Linux-эквивалент файла .exe, который вы видите в DOS/Windows; это исполняемая форма вашего кода. Как вы уже догадались, этот файл нельзя запустить в DOS или Windows, так как он имеет другой формат.

Теперь вместо переименования исполняемого файла при каждой компиляции вы можете указать имя выходного файла для компилятора:

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

Язык программирования C – это известная книга по программированию, написанная Брайаном Керниганом и Деннисом Ритчи, которая учит программировать на языке C с ярко выраженным вкусом Linux. Было бы неплохо попробовать примеры и программы упражнений из этой книги, чтобы получить представление о программировании на C в Linux.

Теперь давайте напишем нашу первую программу на C++ для Linux. Цикл кодирования, компиляции и выполнения очень похож на цикл C, за исключением используемого нами компилятора g++. Проверьте, установлен ли он уже, запустив команду в терминале, как мы сделали для gcc. Затем используйте диспетчер пакетов, чтобы проверить, установлена ​​ли стандартная библиотека C++ libstdc++ (если нет, установите ее). После установки обоих откройте gedit и введите эту простую программу на C++:

Сохраните этот файл как string-demo.cxx в подкаталоге code.

Скомпилируйте и выполните файл:

Выполнение приведенной выше команды должно вывести на терминал следующее:

Код C++, который вы видите, представляет собой стандартный код C++, в котором в файлах заголовков отсутствует расширение .h. Исходные файлы C++ обычно используют один из суффиксов .C , .cc , .cpp , .c++ , .cp или .cxx .

Теперь напишем простую программу на C++, использующую классы:

Сохраните файл в подкаталоге code как class-demo.cxx .
Скомпилируйте и выполните его:

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

Программирование Java в Linux

Java, возможно, является вторым наиболее широко изучаемым языком в индийских школах и колледжах после C/C++. Лучшая часть программирования Java в Linux заключается в том, что вы используете те же инструменты, что и в Windows, — да, Sun Java Development Kit.

Чтобы установить JDK в Linux, загрузите установщик для Linux с официального сайта.

Выберите файл .bin, а не файл *rpm.bin, если только вы не знаете, что делаете. (Файл .bin эквивалентен .exe в Windows). После завершения загрузки в терминале перейдите в каталог, в который был загружен файл, и используйте следующие команды:

Приведенные выше имена файлов могут отличаться в зависимости от загруженной версии JDK. Первая строка делает установщик исполняемым, а вторая выполняет его. Программа установки должна запуститься, и вы должны увидеть «Лицензионное соглашение Sun Microsystems, Inc. для двоичного кода».

Примите лицензию, после чего должно начаться извлечение JDK. После выхода из программы установки вы должны увидеть новый подкаталог с именем «jdk1.6.0_18» внутри текущего каталога. Если вы знакомы с программированием на Java в Windows, это должно быть легко узнаваемо. Внутри этого каталога находится подкаталог bin, в котором находятся компилятор Java ( javac ), интерпретатор Java ( java ) и другие.

С этим все готово; давайте напишем нашу первую Java-программу в Linux. Запустите gedit и напишите следующий код Java, демонстрирующий использование массива целых чисел:

Сохраните код в файл ArrayDemo.java , затем скомпилируйте и запустите его следующим образом:

Обратите внимание на первые две команды, где я указал полный путь к местоположению исполняемых файлов javac и java. В зависимости от того, где вы извлекли JDK, ваш путь будет различаться.

Выполнение второй команды должно вывести на ваш терминал следующее:

Итак, вот как вы можете компилировать, запускать, тестировать и отлаживать свои Java-программы.

Открытый JDK

Статья о программировании на Java в журнале с открытым исходным кодом была бы неполной без упоминания OpenJDK. Хорошо, что вы знаете об этом проекте. Как вы, возможно, уже догадались, это реализация Java Standard Edition с открытым исходным кодом под лицензией GPL, т. е. исходный код JDK, с которым вы так хорошо знакомы, также теперь доступен для вашего изучения на случай, если вы не что-то не нравится в текущем JDK.

Значит, это другая Java? Нет — вы пишете один и тот же Java-код. Вы можете установить OpenJDK из менеджера пакетов вашего дистрибутива Linux (он может быть предустановлен в некоторых дистрибутивах). Инструкции по установке доступны здесь.

Работа с практическими вопросами

По разным причинам развертывание Linux в лаборатории не всегда возможно. В таких случаях хорошей идеей будет иметь в лаборатории один Linux-компьютер, выступающий в роли SSH-сервера; вы можете установить необходимое клиентское программное обеспечение SSH в других операционных системах, что позволит удаленно подключаться к машине Linux.

Эта машина должна иметь относительно хорошую конфигурацию, в зависимости от того, сколько студентов будут использовать ее для кодирования и компиляции — двух- или четырехъядерный процессор с 4 ГБ ОЗУ и жестким диском емкостью не менее 320 ГБ. это хорошая идея. Для Windows Putty является широко используемым SSH-клиентом. Если вы пишете код в Windows и копируете его на компьютер с Linux для компиляции и запуска, вам также потребуется загрузить с сайта программу pscp, которая позволяет копировать файлы с локального компьютера на SSH-сервер Linux.

Если вам нужно, чтобы сеанс GUI с сервера Linux был доступен на компьютере с Windows (например, во время программирования с графическим интерфейсом), изучите сервер OpenNX (который должен быть установлен на компьютере с сервером Linux) и клиент NoMachine NX для Окна. Машина с приведенной выше конфигурацией должна поддерживать около 10 пользовательских сеансов, прежде чем она начнет замедляться. Хорошим началом будет тонкая настройка диспетчера рабочего стола (используйте более легкий, например LXDE или XFCE) и использование более легких редакторов, таких как GVim, для написания кода.

Еще один вариант (для которого не требуется выделенный сервер с Linux) — установить Linux на виртуальной машине на рабочем столе. Это также может оказаться полезным на домашнем компьютере. VirtualBox — это программное обеспечение для виртуализации, которое при установке в вашей системе Windows позволит вам создать виртуальную машину, внутри которой вы можете установить Linux, не прерывая установку Windows. Вам, конечно, понадобится свободное место на диске (8 ГБ или более) для файла диска виртуальной машины. В этом случае вам не нужно записывать установочный ISO-образ Linux на компакт-диск — вы можете просто указать VirtualBox использовать файл образа ISO в качестве диска, вставленного в привод CD-ROM виртуальной машины.

Это также хороший способ попрактиковаться в установке Linux и посмотреть, насколько это просто. В частности, для Ubuntu существует Wubi, который позволяет устанавливать (и удалять) Ubuntu, как и любое другое приложение Windows, простым и безопасным способом «одним щелчком мыши». Файлы Ubuntu хранятся в одной папке на диске Windows, а возможность загрузки Ubuntu добавляется в меню загрузчика Windows.

Однако доступ к жесткому диску немного медленнее, чем установка в выделенный раздел. Если ваш диск Windows сильно фрагментирован, производительность еще больше снизится. Спящий режим не поддерживается в Wubi. Кроме того, файловая система Wubi более уязвима для жестких перезагрузок (отключение питания) и сбоев питания, чем обычная установка в выделенный раздел, что обеспечивает более надежную файловую систему, которая лучше переносит такие события.

В целом, программирование в Linux также требует приличного уровня знакомства с командами оболочки. Ознакомьтесь с работой с оболочкой. Старайтесь минимизировать использование мыши :-)

Использование вашей любимой IDE в Linux

Если вы использовали какие-либо IDE для своих нужд разработки, вас должно порадовать, что две очень популярные IDE — NetBeans и Eclipse — также имеют версии для Linux, и обе они поддерживают разработку на C, C++ и Java. Для дистрибутивов Linux на основе GNOME Anjuta DevStudio является еще одной мощной IDE для C, C++ и Java (а также для других языков). Все три должны быть доступны в диспетчере пакетов вашего дистрибутива.

В заключение этой статьи я хотел бы призвать вас приложить честные усилия, чтобы использовать Linux для программирования. Это намного лучший мир. Я буду рад ответить на любые ваши вопросы/проблемы/комментарии/предложения относительно этой статьи.

Ресурсы

Автор хотел бы поблагодарить Эдгара Д'Суза за «дополнение» фрагментов (во время редактирования), которые сделали статью более полной.

Linux — отличная платформа для программирования: она логична, ее исходный код легко увидеть и она очень эффективна.

Командная строка терминала на оранжевом фоне

В 2021 году людей любят Linux больше, чем когда-либо прежде. В этой серии я расскажу о 21 способе использования Linux. Здесь я объясню, почему так много программистов выбирают Linux.

Когда я впервые начал использовать Linux, это было связано с его отличной поддержкой мультимедиа, поскольку я работал в кинопроизводстве. Мы обнаружили, что типичные проприетарные приложения для редактирования видео не могут обрабатывать большую часть материалов, которые мы получаем практически с любого устройства, которое может записывать изображение. В то время я не знал, что Linux имеет репутацию операционной системы для серверов и программистов. Чем больше я занимался Linux, тем больше мне хотелось контролировать каждый его аспект. И, в конце концов, я обнаружил, что компьютер был наиболее мощным, когда его пользователь мог «говорить» на его языке. В течение нескольких лет после перехода на Linux я писал сценарии автоматического редактирования видео, связывал вместе аудиофайлы, массово редактировал фотографии и делал все, что мог вообразить, а затем изобретал решение. Мне не потребовалось много времени, чтобы понять, почему программисты любят Linux, но именно Linux научил меня любить программирование.

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

Основы логики

Дополнительные ресурсы по Linux

Linux построен на автоматизации. Мы специально сделали так, чтобы основные приложения в Linux можно было, по крайней мере, запускать с терминала с дополнительными параметрами, а часто их даже можно использовать полностью с терминала. Эта идея иногда ошибочно принимается за примитивную вычислительную модель, потому что люди ошибочно полагают, что написание программного обеспечения, работающего с терминала, — это просто минимум действий для получения работающего приложения. Это досадное непонимание того, как работает код, но время от времени многие из нас этим грешат. Мы считаем, что больше всегда лучше, поэтому приложение, содержащее 1000 строк кода, должно быть в 100 раз лучше, чем приложение с десятью строками кода, верно? Правда в том, что при прочих равных условиях предпочтительнее приложение с большей гибкостью, независимо от того, как это выражается в строках кода.

В Linux процесс, который может занять у вас час при выполнении вручную, может быть буквально сокращен до одной минуты с помощью правильной команды терминала и, возможно, меньше, если анализируется в GNU Parallel. Это явление требует изменения ваших представлений о том, что делает компьютер. Например, если ваша задача состоит в том, чтобы добавить обложку к 30 файлам PDF, вы можете подумать, что это разумный рабочий процесс:

  1. Открыть PDF-файл в редакторе PDF
  2. Откройте переднюю крышку.
  3. Добавить PDF-файл в конец файла обложки.
  4. Сохранить файл как новый PDF-файл
  5. Повторите этот процесс для каждого старого PDF-файла (но не повторяйте этот процесс для каждого нового PDF-файла)

В основном это здравый смысл, и, хотя он до боли повторяется, он выполняет свою работу. Однако в Linux вы можете работать умнее. Мыслительный процесс аналогичен: во-первых, вы разрабатываете шаги, необходимые для успешного результата. После некоторых исследований вы узнаете о команде pdftk-java и обнаружите простое решение:

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

Это немного другой способ мышления, потому что "код", который вы пишете, обрабатывает данные не так, как принудительная линейность, к которой вы привыкли.Однако отказ от прежнего линейного образа мышления важен для последующего написания фактического кода, а побочным преимуществом этого подхода является то, что вы сможете более эффективно выполнять вычисления.

Соединения кода

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

Теперь нет ничего плохого в том, чтобы доверить набору средств разработки разрешение библиотеки и пути включения. Напротив, такая абстракция — это роскошь, которой вы должны наслаждаться. Однако, если вы никогда не понимаете, что происходит, вам будет намного сложнее переопределить процесс, когда вам нужно сделать что-то, о чем не знает комплект разработчика, или устранить проблемы, когда они возникнут.

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

По общему признанию, вы не усвоите эти уроки, просто используя Linux. Вполне возможно писать код в хорошей среде IDE и никогда не думать о том, какая версия библиотеки у вас установлена ​​или где находятся заголовки для разработки. Однако Linux ничего от вас не скрывает. Легко копаться в системе, находить важные части и читать код, который они содержат.

Существующий код

Знать, где расположены заголовки и библиотеки, полезно, но наличие ссылок на них — еще один дополнительный бонус к программированию в Linux. В Linux вы можете увидеть исходный код практически всего, что вам нужно (за исключением приложений, исходный код которых не является открытым, но которые работают в Linux). Преимущество здесь невозможно переоценить. Когда вы узнаете больше о программировании в целом или о программировании чего-то нового для вас, вы сможете многое узнать, обращаясь к существующему коду в вашей системе Linux. Многие программисты научились программировать, читая открытый исходный код других людей.

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

Прямой доступ к периферийным устройствам

Что-то, что я часто считал само собой разумеющимся после разработки кода для медиа-компаний с использованием Linux, — это доступ к периферийным устройствам. Например, при подключении видеокамеры к Linux вы можете получать входящие данные из /dev/video0 или аналогичного. Все находится в /dev, и это всегда кратчайший путь между двумя точками, чтобы добраться туда.

На других платформах это не так. Подключение к системам за пределами операционной системы часто представляет собой лабиринт SDK, библиотек с ограниченным доступом, а иногда и соглашений о неразглашении. Это, конечно, зависит от того, для чего вы программируете, но трудно превзойти простой и предсказуемый интерфейс Linux.

Слои абстракции

С другой стороны, Linux также предоставляет полезный набор уровней абстракции на тот случай, когда прямой доступ или ручное кодирование в конечном итоге создают больше работы, чем вы хотите. Есть удобства, которые можно найти в Qt и Java, и есть целые стеки, такие как Pulse Audio, Pipewire и gstreamer. Linux хочет, чтобы вы могли программировать, и это видно.

Добавить в этот список

Есть и другие причины, по которым кодирование в Linux доставляет удовольствие. Некоторые из них представляют собой общие концепции, а другие — слишком конкретные детали, которые сэкономили мне часы разочарования. Linux — отличное место, независимо от того, на какую платформу вы ориентируетесь. Если вы только изучаете программирование или кодер ищете новый цифровой дом, нет лучшего рабочего пространства для программирования, чем Linux.

Читайте также: