Лучшие текстовые редакторы linux

Виды программ в Linux

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

Все программы можно поделить на несколько типов:

  • Бинарные программы — содержат инструкции процессору уже готовые к выполнению, большинство программ находятся в таком формате, они быстрые и выполняются сразу же системой;
  • Программы на байт-коде — это уже не процессорные инструкции, а инструкции определенной виртуальной машины, которая может их выполнять, без виртуальной машины такие команды не могут быть выполнены. Такие программы потребляют больше ресурсов, но тоже достаточно быстрые, их преимущество в том, что они могут выполняться без изменения везде где может работать виртуальная машина. К таким программам можно отнести программы на Java.
  • Скриптовые программы — эти программы состоят из набора команд в виде обычного текста, которые выполняет специальный интерпретатор. Такие программы более медленные, но зато они проще в разработке и их код можно легко и быстро изменить.

А теперь перейдем к запуску программ.

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

Все, что нужно для разрешения проблем, связанных с правами в Linux.

  • sudo — выдает права суперпользователя. Используется перед любой другой командой в терминале, если нужно выполнить ее от имени администратора. Многие программы и операции запускаются исключительно при наличии этих прав, так что sudo используется часто. Например, чтобы обновить список пакетов в Ubuntu, введем: sudo apt-get update. При этом система запросит пароль администратора.
  • sudo su — переводит терминал в режим суперпользователя. В нем каждая введенная команда будет восприниматься системой так, будто перед ней ввели sudo. Помогает запускать несколько скриптов и утилит, требующих права администратора, без необходимости постоянно корректировать их или вводить пароль от учетной записи.
  • sudo gksudo — используется для запуска графических утилит от имени администратора. В Windows для этого есть специальная кнопка в контекстном меню, а в Linux — префикс. Синтаксис такой:
​sudo gksudo название приложения, нуждающееся в запуске от имени администратора
  • sudo !! — запускает предыдущую команду от имени администратора. Используется, если до этого была неудачная попытка запустить программу. Помогает не тратить время на повторный ввод большого количества символов.
  • chmod — корректирует права доступа к выбранному файлу. Применяется исключительно с набором аргументов, обозначающих список прав. Допустим, я хочу выдать права на чтение и запись файла Timeweb.html на рабочем столе. Для этого введу в терминал: chmod 777 ~/Desktop/timeweb.html. Теперь его можно открывать и редактировать. Аналогичным образом пользователи поступают с системными файлами, когда приходит время что-то в них менять. По умолчанию большая их часть защищена от записи.
  • chown — назначает владельца для выбранной директории, документа, картинки или любого другого элемента в файловой системе. Синтаксис следующий:
chown имя учетной записи, которому надо передать права путь до файла, права на который нужно передать

Дополнительные команды компилятора и линкера

Заголовочные файлы стали видны и компиляция прошла успешно. Но вот слинковаться проекту не удалось. Дело в том, что я использую потоки и заголовочный файл «pthread.h». Для того, чтобы линкер увидел библиотеку pthread, нужно использовать опцию -pthread или -lpthread.

Для этих целей в Visual C++ for Linux Development есть специальная настройка:

Но у меня почему то она не работает. Проблема эта временная (разработчики уже знают об этом), но решать ее нужно здесь и сейчас. Обойти это ошибку можно используя другую опцию:

Если в место g++ написать g++ -pthread, то получится правильная строка линкера:

Тот же трюк срабатывает и для компилятора.

Черный экран

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

Черный экран с мигающим курсором

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

Сложный выбор дистрибутива

Дистрибутивов Linux очень много. Есть базовые, есть основанные на базовых, есть основанные на основанных, есть… Их действительно очень и очень много. Причем многие из них очень разные и имеют свои специфические особенности.

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

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

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

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

Как запустить скрипт в Linux

Мы уже говорили, что программы делятся на бинарные и интерпретируемые. Раньше мы говорили только про бинарные программы. Для запуска интерпретируемых нужен непосредственно интерпретатор, к таким программам относятся написанные на таких языках, как Java, Python, Perl, Ruby, PHP, NodeJS и многих других. Синтаксис запуска такой программы отличается:

интерпретатор /путь/к/файлу/программы параметры

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

А Java программы нужно запускать так:

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

Или же просто набрать путь к скрипту:

Оболочка сама определяет свои скрипты по флагу исполняемости и выполняет их. Если флаг исполняемости не установлен, то его стоит добавить:

Поэтому то и для большинства интерпретируемых программ созданы простые sh скрипты которыми их можно быстро запустить.

Установка, удаление и обновление пакетов

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

Debian/Ubuntu

  • sudo apt-get install название пакета — устанавливает программу на выбор. Главное знать, как она называется.
  • sudo apt remove название пакета — стирает с жесткого диска имеющийся в системе пакет.
  • sudo apt-get update — обновляет информацию о пакетах, имеющихся в системе, и тех, что хранятся в подключенных репозиториях.
  • sudo apt-upgrade — обновляет установленные пакеты до самых свежих версий, доступных в подключенных репозиториях.

Red Hat Linux/CentOS

  • sudo dnf install название пакета — устанавливает программу на выбор.
  • sudo dnf upgrade — обновляет установленные пакеты до самых свежих версий.
  • sudo dnf remove название пакета — стирает с жесткого диска имеющийся в системе пакет.

Компиляция программ Linux

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

Получение исходников

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

Давайте загрузим сами исходники нашей программы с помощью утилиты git:

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

Настройка configure

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

Если configure нет в папке с исходниками, вы можете попытаться выполнить такие скрипты чтобы его создать:

Также для создания этого скрипта можно воспользоваться утилитой automake:

Утилита automake и другие из ее набора генерируют необходимые файлы на основе файла Mackefile.am. Этот файл обязательно есть в большинстве проектов.

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

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

  • —prefix=PREFIX — папка для установки программы, вместо /, например, может быть /usr/local/, тогда все файлы будут распространены не по основной файловой системе, а в /usr/local;
  • —bindir=DIR — папка для размещения исполняемых файлов, должна находится в PREFIX;
  • —libdir=DIR — папка для размещения и поиска библиотек по умолчанию, тоже в PREFIX;
  • —includedir=DIR — папка для размещения man страниц;
  • —disable-возможность — отключить указанную возможность;
  • —enable-возможность — включить возможность;
  • —with-библиотека — подобно enable активирует указанную библиотеку или заголовочный файл;
  • —without-библиотека — подобное disable отключает использование библиотеки.

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

Во время настройки утилита будет проверять, есть ли все необходимые библиотеки в системе, и если нет, вам придется их установить или отключить эту функцию, если это возможно. Например, может возникнуть такая ошибка: no terminal library found checking for tgetent()… configure: error: NOT FOUND!

В таком случае нам необходимо установить требуемую библиотеку. Например, программа предлагает ncurses, поэтому ставим:

Приставка lib всегда добавляется перед библиотеками, а -dev — означает, что нам нужна библиотека со всеми заголовочными файлами. После удовлетворения всех зависимостей настройка пройдет успешно.

Сборка программы

Когда настройка будет завершена и Makefile будет готов, вы сможете перейти непосредственно к сборке программы. На этом этапе выполняется непосредственно преобразование исходного кода в машинный. Утилита make на основе Makefile сделает все необходимые действия:

Дальше осталось установить саму программу, если вы использовали опцию prefix, чтобы не устанавливать программу в основную файловую систему, то можно применить стандартную опцию make:

После этого программа будет установлена в указанную вами папку, и вы сможете ее использовать. Но более правильный путь — создавать пакет для установки программы, это делается с помощью утилиты checkinstall, она позволяет создавать как deb, так и rpm пакеты, поэтому может использоваться не только в Ubuntu. Вместо make install выполните:

Затем просто установите получившийся пакет с помощью dpkg:

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

Если вы устанавливали программу с помощью make install, то удалить ее можно выполнив в той же папке обратную команду:

Команда удалит все файлы, которые были скопированы в файловую систему.

Немного про системный вызов fork()

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

Рассмотрим пример:

Что же произошло? Системный вызов создал клон процесса, т. е. теперь мы имеем родительский и дочерний процесс.

Чтобы отличить дочерний процесс от родительского в коде достаточно сделать проверку. Если результат функции равен — мы имеем дело с дочерним процессом, если нет — с родительским. Это не означает, что в операционной системе дочернего процесса равен .

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

Openhours #7: Cross compiling on x86 Linux systems for ARM (96Boards)

Openhours #7: Cross compiling on x86 Linux systems for ARM (96Boards)

Коллекция компиляторов GNU (GCC) — это коллекция компиляторов и библиотек для языков программирования C, C ++, Objective-C, Fortran, Ada, Go и D. Многие проекты с открытым исходным кодом, включая инструменты GNU и ядро ​​Linux, скомпилированы с GCC.

В этом руководстве рассматриваются шаги, необходимые для установки компилятора GCC в Ubuntu 18.04. Мы покажем вам, как установить стабильную версию дистрибутива и последнюю версию GCC.

Те же инструкции применимы для Ubuntu 16.04 и любого дистрибутива на основе Ubuntu, включая Kubuntu, Linux Mint и Elementary OS.

Предпосылки

Чтобы иметь возможность добавлять новые репозитории и устанавливать пакеты в вашей системе Ubuntu, вы должны войти в систему как пользователь root или пользователь с привилегиями sudo.

Установка GCC на Ubuntu

Репозитории Ubuntu по умолчанию содержат метапакет с именем который содержит компилятор GCC и множество библиотек и других утилит, необходимых для компиляции программного обеспечения.

Выполните следующие шаги для установки компилятора GCC Ubuntu 18.04:

  1. Начните с обновления списка пакетов:

    Установите пакет , набрав:

    Команда устанавливает несколько новых пакетов, включая , и .

    Вы также можете установить страницы руководства по использованию GNU / Linux для разработки:

    Чтобы проверить, что компилятор GCC успешно установлен, используйте команду которая печатает версию GCC:

    Версия GCC по умолчанию, доступная в репозиториях Ubuntu 18.04, — :

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

Компиляция примера Hello World

Компиляция базовой программы на C или C ++ с использованием GCC довольно проста. Откройте ваш текстовый редактор и создайте следующий файл:

Привет

Сохраните файл и скомпилируйте его в исполняемый файл с помощью следующей команды:

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

Выполните программу с:

Программа должна напечатать:

Установка нескольких версий GCC

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

На момент написания этой статьи стандартные репозитории Ubuntu включали несколько версий GCC, от до Последняя версия GCC, которая является , доступна из Ubuntu Toolchain PPA.

В следующем примере мы установим последние три версии GCC и G ++.

Во-первых, добавьте PPA в вашу систему с помощью:

Установите нужные версии GCC и G ++, набрав:

Команды ниже настроят альтернативу для каждой версии и свяжут с ней приоритет. По умолчанию используется версия с наивысшим приоритетом, в нашем случае это .

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

Вам будет представлен список всех установленных версий GCC в вашей системе Ubuntu. Введите номер версии, которую вы хотите использовать по умолчанию, и нажмите .

Команда создаст символические ссылки на конкретные версии GCC и G ++.

Вывод

Вы успешно установили GCC на Ubuntu 18.04. Теперь вы можете посетить официальную страницу документации GCC и узнать, как использовать GCC и G ++ для компиляции ваших программ на C и C ++.

GCC Ubuntu

Batch Compiler — это бесплатное программное обеспечение, которое позволяет скомпилировать пакет сценариев файлы в файл .exe installe.

Коллекция компиляторов GNU (GCC) — это коллекция компиляторов и библиотек с открытым исходным кодом, поддерживающая C, C ++ и другие языки программирования. Из этого туториала Вы узнаете, как установить компилятор GCC на Debian 10 Buster.

Коллекция компиляторов GNU (GCC) — это коллекция компиляторов и библиотек для языков программирования C, C ++, Objective-C, Fortran, Ada, Go и D. В этом руководстве рассматриваются шаги, необходимые для установки компилятора GCC в CentOS 7.

Запуск программ от имени другого пользователя

Вы уже знаете как запустить программу в терминале linux, а что насчет других пользователей? В Windows достаточно часто используется запуск программ от имени администратора чтобы программа могла получить больше прав доступа в системе. В Linux для этого используется утилита sudo. Ее имя можно расшифровать как switchuserdo — изменить пользователя и выполнить. По умолчанию утилита выполняет команду от имени суперпользователя root:

Но с помощью опции -u можно выполнить программу от имени любого пользователя, зарегистрированного в системе:

Команда whoami (кто я) выводит имя текущего пользователя.

Почему стоит выбрать свежую Ubuntu?

Ubuntu стала самым популярным «линуксом»: именно она максимально адаптирована к рядовому пользователю и реже других требует общения с командной строкой.

Разработчики оптимизировали систему настолько, что переход с других распространенных домашних ОС идеальный, будто ничего особенного и не поменял. Как внешне, так и во время работы. Чего, впрочем, нельзя сказать о её настройке — внутри это все тот же NIX и соответствующая идеология

Итак, Ubuntu 19.10. О её фишках в сравнении с другими системами можно говорить довольно долго. Мне важны эти:

  • удобный дизайн (где-то между macOS и Windows)
  • адекватная работа drag’n’drop
  • наличие в дистрибутиве стартового набора офисных программ и драйверов
  • поддержка разнообразных аппаратных решений — лэптопы в почете
  • поддержка файловых систем других ОС
  • настройка всех системных параметров в графических меню.

Подготовка системы

Мы будем компилировать программы, написанные на Си или С++, так как это наиболее используемый язык для программ, которые требуют компиляции. Мы уже немного рассматривали эту тему в статье установка из tar.gz в Linux, но та статья ориентирована больше на новичков, которым нужно не столько разобраться, сколько получить готовую программу.

В этой же статье тема рассмотрена более детально. Как вы понимаете, для превращения исходного кода в команды процессора нужно специальное программное обеспечение. Мы будем использовать компилятор GCC. Для установки его и всех необходимых инструментов в Ubuntu выполните:

Затем вы можете проверить правильность установки и версию компилятора:

Но перед тем как переходить к самой компиляции программ рассмотрим более подробно составляющие этого процесса.

Проблемы в программах

Если ни с того ни с сего закрывается или не так, как требуется работает, какая-нибудь графическая программа, решение проблем linux начинается из запуска ее через терминал. Для этого просто введите исполняемый файл программы и нажмите Enter. Обычно достаточно начать вводить имя программы с маленькой буквы и использовать автодополнение для завершения ввода названия.

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

Многие ошибки системы linux, связанные с графической оболочкой вы можете найти в файле ~/.xsession-errors в вашей домашней директории. Если оболочка работает медленно, зависает или не работают другие программы, но в других логах причин этому нет, возможно, ответ находится именно в этом файле.

Также ошибки linux могут возникать не только в обычных программах но и в работающих в фоне сервисах.  Но их тоже можно решить, чтобы посмотреть сообщения, генерируемые сервисом, запущенным с помощью systemd, просто наберите команду просмотра состояния сервиса:

$ sudo systemctl status имя_сервиса

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

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

Интерфейс системы и визуальные эффекты

Чаще всего Linux-дистрибутивы для визуализации используют одну из популярных оболочек, таких как GNOME, Mate и KDE.

Deepin использует оболочку собственной разработки под названием Deepin Desktop Environment на основе библиотек Qt и Go, с полной поддержкой HTML5 и Chromium.

За счет этого достигается максимально близкое внешнее сходство с macOS. Однако логика работы контекстных меню, системные функции копируют Windows.

Многим так привычнее.

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

Стоит выбрать улучшенное оформление: панель программ находится в нижней части экрана; меню — слева; кнопки быстрого запуска, переключатель задач и системный трей — справа.

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

А вот предлагаемые к выбору наборы иконок почти не отличаются друг от друга. Впрочем, для NIX-владельцев и это выглядит неплохо.

Стоит упомянуть: выбор не окончательный. Смена оформления на лету доступна через соответствующее меню в настройках системы.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: